Ir para conteúdo
  • Cadastre-se
  • 0

Bug Teleport Block Healers In PvPZone


admFirewall

Pergunta

Bom dia pessoal, eu consegui um código que ao HEALER teleportar para a area FlagZone ele é teleportado altomaticamente para a cidade de novo, porém quando ele volta pra cidade está dando esse bug;;

 

Video:

 

Minha FlagZone:

 

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <
O conteúdo está oculto, favor efetuar login ou se cadastrar!
*/
package net.l2jpx.gameserver.model.zone.type;
import java.util.concurrent.Future;
import net.l2jpx.gameserver.datatables.SkillTable;
import net.l2jpx.gameserver.model.L2Character;
import net.l2jpx.gameserver.model.L2Skill;
import net.l2jpx.gameserver.model.actor.instance.L2MonsterInstance;
import net.l2jpx.gameserver.model.actor.instance.L2PcInstance;
import net.l2jpx.gameserver.model.actor.instance.L2PlayableInstance;
import net.l2jpx.gameserver.model.zone.L2ZoneType;
import net.l2jpx.gameserver.thread.ThreadPoolManager;
import net.l2jpx.util.random.Rnd;
/**
* @author Strato
+ * @author Elfocrash (for the correction)
*/
public class L2BsZone extends L2ZoneType
{
private int _skillId;
private int _chance;
private int _initialDelay;
private int _skillLvl;
private int _reuse;
private boolean _enabled;
private String _target;
private Future<?> _task;
public L2BsZone(int id)
{
super(id);
_skillId = 1323;
_skillLvl = 1;
_chance = 100;
_initialDelay = 0;
_reuse = 30000;
_enabled = true;
_target = "pc";
}
@Override
public void setParameter(String name, String value)
{
if(name.equals("skillId"))
{
_skillId = Integer.parseInt(value);
}
else if(name.equals("skillLvl"))
{
_skillLvl = Integer.parseInt(value);
}
else if(name.equals("chance"))
{
_chance = Integer.parseInt(value);
}
else if(name.equals("initialDelay"))
{
_initialDelay = Integer.parseInt(value);
}
else if(name.equals("default_enabled"))
{
_enabled = Boolean.parseBoolean(value);
}
else if(name.equals("target"))
{
_target = String.valueOf(value);
}
else if(name.equals("reuse"))
{
_reuse = Integer.parseInt(value);
}
else
{
super.setParameter(name, value);
}
}
@Override
protected void onEnter(L2Character character)
{
if (character instanceof L2PcInstance)
if (character instanceof L2PcInstance)
{
L2PcInstance _player = (L2PcInstance)character;
final int[] supporters = {15,16,29,30,42,43,97,105,112,115,136,116}; // support classes ID's
for (int act : supporters)
if (_player.getActiveClass() == act)
{
_player.sendMessage("You can't enter in flag zone with a support class.");
_player.teleToLocation(83417 + Rnd.get(-100, 100), 149028 + Rnd.get(-100, 100), -3408);
}
// Set pvp flag
((L2PcInstance) character).setPvpFlag(1);
((L2PcInstance) character).sendMessage("You entered a Pvp Flag zone.Have fun!!!");
((L2PcInstance) character).broadcastUserInfo();
if((character instanceof L2PlayableInstance && _target.equalsIgnoreCase("pc") || character instanceof L2PcInstance && _target.equalsIgnoreCase("pc_only") || character instanceof L2MonsterInstance && _target.equalsIgnoreCase("npc")) && _task == null)
{
_task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new ApplySkill(/*this*/), _initialDelay, _reuse);
}
}
}
@Override
protected void onExit(L2Character character)
{
if (character instanceof L2PcInstance)
{
((L2PcInstance) character).setPvpFlag(0);
((L2PcInstance) character).sendMessage("You left the Pvp Flag zone.BAAAAD!!");
((L2PcInstance) character).broadcastUserInfo();
}
if(_characterList.isEmpty() && _task != null)
{
_task.cancel(true);
_task = null;
}
}
public L2Skill getSkill()
{
return SkillTable.getInstance().getInfo(_skillId, _skillLvl);
}
public String getTargetType()
{
return _target;
}
public boolean isEnabled()
{
return _enabled;
}
public int getChance()
{
return _chance;
}
public void setZoneEnabled(boolean val)
{
_enabled = val;
}
class ApplySkill implements Runnable
{
@Override
public void run()
{
if(isEnabled())
{
for(L2Character temp : _characterList.values())
{
if(temp != null && !temp.isDead())
{
if((temp instanceof L2PlayableInstance && getTargetType().equalsIgnoreCase("pc") || temp instanceof L2PcInstance && getTargetType().equalsIgnoreCase("pc_only") || temp instanceof L2MonsterInstance && getTargetType().equalsIgnoreCase("npc")) && Rnd.get(100) < getChance())
{
L2Skill skill = null;
if((skill=getSkill())==null){
System.out.println("ATTENTION: error on zone with id "+getId());
System.out.println("Skill "+_skillId+","+_skillLvl+" not present between skills");
}else
skill.getEffects(temp, temp);
}
}
}
}
}
}
@Override
public void onDieInside(L2Character character)
{
}
@Override
public void onReviveInside(L2Character character)
{
onEnter(character);
}
}

Alguém sabe como resolver?

2ym840g.png

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts recomendados


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.