### Eclipse Workspace Patch 1.0#P trunk3Index: gameserver/head-src/com/l2jfrozen/gameserver/model/zone/type/L2FlagZone.java
===================================================================--- gameserver/head-src/com/l2jfrozen/gameserver/model/zone/type/L2FlagZone.java (revision 0)+++ gameserver/head-src/com/l2jfrozen/gameserver/model/zone/type/L2FlagZone.java (revision 0)@@-0,0+1,185@@+/*
+ * 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 <[url="http://www.gnu.org/licenses/>."]http://www.gnu.org/licenses/>.[/url]
+ */+package com.l2jfrozen.gameserver.model.zone.type;++import java.util.concurrent.Future;++import com.l2jfrozen.gameserver.datatables.SkillTable;+import com.l2jfrozen.gameserver.model.L2Character;+import com.l2jfrozen.gameserver.model.L2Skill;+import com.l2jfrozen.gameserver.model.actor.instance.L2MonsterInstance;+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;+import com.l2jfrozen.gameserver.model.zone.L2ZoneType;+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;+import com.l2jfrozen.util.random.Rnd;++/**
+ * @author Strato
+ * @author Elfocrash (for the correction)
+ */+publicclass L2FlagZone extends L2ZoneType
+{+privateint _skillId;+privateint _chance;+privateint _initialDelay;+privateint _skillLvl;+privateint _reuse;+privateboolean _enabled;+privateString _target;+privateFuture<?> _task;+public L2FlagZone(int id)+{+super(id);+ _skillId =1323;+ _skillLvl =1;+ _chance =100;+ _initialDelay =0;+ _reuse =30000;+ _enabled =true;+ _target ="pc";+}++@Override+publicvoid setParameter(String name,Stringvalue)+{+if(name.equals("skillId"))+{+ _skillId =Integer.parseInt(value);+}+elseif(name.equals("skillLvl"))+{+ _skillLvl =Integer.parseInt(value);+}+elseif(name.equals("chance"))+{+ _chance =Integer.parseInt(value);+}+elseif(name.equals("initialDelay"))+{+ _initialDelay =Integer.parseInt(value);+}+elseif(name.equals("default_enabled"))+{+ _enabled =Boolean.parseBoolean(value);+}+elseif(name.equals("target"))+{+ _target =String.valueOf(value);+}+elseif(name.equals("reuse"))+{+ _reuse =Integer.parseInt(value);+}+else+{+super.setParameter(name,value);+}+}++@Override+protectedvoid onEnter(L2Character character)+{+if(character instanceof L2PcInstance)+{+// 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(newApplySkill(/*this*/), _initialDelay, _reuse);+}+}+}++@Override+protectedvoid 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()+{+returnSkillTable.getInstance().getInfo(_skillId, _skillLvl);+}++publicString getTargetType()+{+return _target;+}++publicboolean isEnabled()+{+return _enabled;+}++publicint getChance()+{+return _chance;+}++publicvoid setZoneEnabled(boolean val)+{+ _enabled = val;+}+classApplySkillimplementsRunnable+{+@Override+publicvoid 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+publicvoid onDieInside(L2Character character)+{++}++@Override+publicvoid onReviveInside(L2Character character)+{+ onEnter(character);+}+}
\ No newline at endof file
Index: gameserver/head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java
===================================================================--- gameserver/head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java (revision 909)+++ gameserver/head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java (working copy)@@-63,6+63,7@@import com.l2jfrozen.gameserver.model.zone.type.L2OlympiadStadiumZone;import com.l2jfrozen.gameserver.model.zone.type.L2PeaceZone;import com.l2jfrozen.gameserver.model.zone.type.L2PoisonZone;+import com.l2jfrozen.gameserver.model.zone.type.L2FlagZone;import com.l2jfrozen.gameserver.model.zone.type.L2SwampZone;import com.l2jfrozen.gameserver.model.zone.type.L2TownZone;import com.l2jfrozen.gameserver.model.zone.type.L2WaterZone;@@-278,6+279,10@@{
temp =new L2SwampZone(zoneId);}+elseif(zoneType.equals("FlagZone"))+{+ temp =new L2FlagZone(zoneId);+}// Check for unknown typeif(temp ==null)
and i wonder how can i change the onexit option to keep pvpflag for some seconds because everytime i exit the zone pvpflag goes off immediately.
@Override+protectedvoid onExit(L2Character character)+{+if(character instanceof L2PcInstance)+{+((L2PcInstance) character).setPvpFlag(0);+((L2PcInstance) character).sendMessage("You left the Pvp Flag zone.BAAAAD!!");+((L2PcInstance) character).broadcastUserInfo();+}
I saw Mobius was working on a Lindvior back in 2014 and the project was said to be stable enough for a live server but all of the links are dead and it's missing from their current repository. This was my favorite time in L2 and I'd really love to relive it before the game was ruined with Ertheia. Even willing to pay if I have to for some private files but I can't seem to find any leads.
Question
Rio
Hi guys im using elfo's flagzone
and i wonder how can i change the onexit option to keep pvpflag for some seconds because everytime i exit the zone pvpflag goes off immediately.
12 answers to this question
Recommended Posts