### 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();+}
2 new events have been added.
🚩 Capture The Flag
- Two teams battle to steal the enemy's flag and return it to their base!
- Team coordination and defense are key!
- The team with the most successful captures when time runs out wins!
✨ Master of Enchanting
- Receive a Master Yogi Staff and unlimited Master Yogi Scrolls!
- Compete to reach the highest enchant level before time runs out!
- Top 3 players with the highest enchanted staffs win awesome rewards!
Price has been increased to 80 euro including the new update.
Special Offer Until 32 May
Complete Server Pack + Source Files:
C4 Scions Of Destiny: P656
Retail X1 L2OFF Server Pack + Source: Price: 150EUR
C4 Scions Of Destiny: P656
ESL2 Athena x45 L2OFF Server Pack + Source: Price: 200EUR
Screenshots: https://imgur.com/a/eternal-sin-l2-athena-x45-c4-WYCpbjl
C6 Interlude: P746
ESL2 Athena x45 L2OFF Server Pack + Source: Price: 200EUR
The same as C4 but in C6 Client so the Screenshots is the same: https://imgur.com/a/eternal-sin-l2-athena-x45-c4-WYCpbjl
C6 Interlude: P746
ESL2 Athena x45 Java Server Pack + Source: Price: 100EUR
The same as C4 but in C6 Client so the Screenshots is the same: https://imgur.com/a/eternal-sin-l2-athena-x45-c4-WYCpbjl
C6 Interlude: P746
L2Gold L2OFF Server Pack + Source: Price: 200EUR
Screenshots: https://imgur.com/a/9kB3oA9
C6 - Classic Interlude: P110
ESL2 Athena x45 L2OFF Server Pack + Source: Price: 300EUR
Screenshots: https://imgur.com/a/Z2kZxuv
Contact me here via PM (only serious buyers).
Payments via:
- Paypal (Friends and Family)
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