janiko Posted August 18, 2012 Posted August 18, 2012 How to execute script, when character enters on the peace zone to start smthing? i made this kind script and isn't working, when char is in peacefull zone not pauses timer, can someone help me? ____________________ /* * 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 <http://www.gnu.org/licenses/>. */ package com.l2jserver.gameserver.model.zone.type; import com.l2jserver.Config; import com.l2jserver.gameserver.instancemanager.TerritoryWarManager; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.zone.L2ZoneType; /** * A Peace Zone * @author durgus */ public class L2PeaceZone extends L2ZoneType { +private L2PcInstance activeChar; public L2PeaceZone(int id) { super(id); } @Override protected void onEnter(L2Character character) { if (character.isPlayer()) { L2PcInstance player = character.getActingPlayer(); if (player.isCombatFlagEquipped() && TerritoryWarManager.getInstance().isTWInProgress()) { TerritoryWarManager.getInstance().dropCombatFlag(player, false, true); } // PVP possible during siege, now for siege participants only // Could also check if this town is in siege, or if any siege is going on if (player.getSiegeState() != 0 && (Config.PEACE_ZONE_MODE == 1)) { return; } } if (Config.PEACE_ZONE_MODE != 2) { character.setInsideZone(L2Character.ZONE_PEACE, true); +if(activeChar != null) +{ + activeChar.pauseAdventTime() +} } if (!getAllowStore()) { character.setInsideZone(L2Character.ZONE_NOSTORE, true); } } @Override protected void onExit(L2Character character) { if (Config.PEACE_ZONE_MODE != 2) { character.setInsideZone(L2Character.ZONE_PEACE, false); } if (!getAllowStore()) { character.setInsideZone(L2Character.ZONE_NOSTORE, false); } } @Override public void onDieInside(L2Character character) { } @Override public void onReviveInside(L2Character character) { } }
Question
janiko
How to execute script,
when character enters on the peace zone to start smthing?
i made this kind script and isn't working, when char is in peacefull zone not pauses timer, can someone help me?
____________________
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.model.zone.type;
import com.l2jserver.Config;
import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
/**
* A Peace Zone
* @author durgus
*/
public class L2PeaceZone extends L2ZoneType
{
+private L2PcInstance activeChar;
public L2PeaceZone(int id)
{
super(id);
}
@Override
protected void onEnter(L2Character character)
{
if (character.isPlayer())
{
L2PcInstance player = character.getActingPlayer();
if (player.isCombatFlagEquipped() && TerritoryWarManager.getInstance().isTWInProgress())
{
TerritoryWarManager.getInstance().dropCombatFlag(player, false, true);
}
// PVP possible during siege, now for siege participants only
// Could also check if this town is in siege, or if any siege is going on
if (player.getSiegeState() != 0 && (Config.PEACE_ZONE_MODE == 1))
{
return;
}
}
if (Config.PEACE_ZONE_MODE != 2)
{
character.setInsideZone(L2Character.ZONE_PEACE, true);
+if(activeChar != null)
+{
+ activeChar.pauseAdventTime()
+}
}
if (!getAllowStore())
{
character.setInsideZone(L2Character.ZONE_NOSTORE, true);
}
}
@Override
protected void onExit(L2Character character)
{
if (Config.PEACE_ZONE_MODE != 2)
{
character.setInsideZone(L2Character.ZONE_PEACE, false);
}
if (!getAllowStore())
{
character.setInsideZone(L2Character.ZONE_NOSTORE, false);
}
}
@Override
public void onDieInside(L2Character character)
{
}
@Override
public void onReviveInside(L2Character character)
{
}
}
1 answer to this question
Recommended Posts