Código:
Index: java/com/it/roberto/Config.java
===================================================================
--- java/com/it/roberto/Config.java (revision 57)
+++ java/com/it/roberto/Config.java (working copy)
@@ -73,11 +73,7 @@
public static boolean CTF_ALLOW_SUMMON;
public static boolean CTF_ON_START_REMOVE_ALL_EFFECTS;
public static boolean CTF_ON_START_UNSUMMON_PET;
+ public static boolean CTF_REVIVE_RECOVERY;
+ public static String CTF_DOORS_IDS_TO_OPEN_STRING;
+ public static List<Integer> CTF_DOORS_IDS_TO_OPEN = new FastList<Integer>();
+ public static String CTF_DOORS_IDS_TO_CLOSE_STRING;
+ public static List<Integer> CTF_DOORS_IDS_TO_CLOSE = new FastList<Integer>();
public static boolean ENABLE_MODIFY_SKILL_DURATION;
public static Map<Integer, Integer> SKILL_DURATION_LIST;
public static boolean MOVE_BASED_KNOWNLIST;
@@ -2087,20 +2083,6 @@
CTF_ON_START_REMOVE_ALL_EFFECTS = Boolean.parseBoolean(additionsSettings.getProperty("CTFOnStartRemoveAllEffects", "true"));
CTF_ON_START_UNSUMMON_PET = Boolean.parseBoolean(additionsSettings.getProperty("CTFOnStartUnsummonPet", "true"));
CTF_REVIVE_RECOVERY = Boolean.parseBoolean(additionsSettings.getProperty("CTFReviveRecovery", "false"));
+ CTF_DOORS_IDS_TO_OPEN_STRING = additionsSettings.getProperty("CTFDoorsToOpen", "");
+ CTF_DOORS_IDS_TO_OPEN = new FastList<Integer>();
+ for (String door : CTF_DOORS_IDS_TO_OPEN_STRING.split(";"))
+ {
+ if (!door.equals(""))
+ CTF_DOORS_IDS_TO_OPEN.add(Integer.parseInt(door));
+ }
+ CTF_DOORS_IDS_TO_CLOSE_STRING = additionsSettings.getProperty("CTFDoorsToClose", "");
+ CTF_DOORS_IDS_TO_CLOSE = new FastList<Integer>();
+ for (String door : CTF_DOORS_IDS_TO_CLOSE_STRING.split(";"))
+ {
+ if (!door.equals(""))
+ CTF_DOORS_IDS_TO_CLOSE.add(Integer.parseInt(door));
+ }
}
catch (Exception e)
{
Index: java/com/it/roberto/gameserver/model/entity/events/CTF.java
===================================================================
--- java/com/it/roberto/gameserver/model/entity/events/CTF.java (revision 57)
+++ java/com/it/roberto/gameserver/model/entity/events/CTF.java (working copy)
@@ -10,7 +10,6 @@
import com.it.roberto.Config;
import com.it.roberto.L2DatabaseFactory;
import com.it.roberto.gameserver.ThreadPoolManager;
+import com.it.roberto.gameserver.datatables.DoorTable;
import com.it.roberto.gameserver.datatables.ItemTable;
import com.it.roberto.gameserver.datatables.NpcTable;
import com.it.roberto.gameserver.datatables.SpawnTable;
@@ -22,7 +21,6 @@
import com.it.roberto.gameserver.model.L2Summon;
import com.it.roberto.gameserver.model.L2World;
import com.it.roberto.gameserver.model.L2Radar;
+import com.it.roberto.gameserver.model.actor.instance.L2DoorInstance;
import com.it.roberto.gameserver.model.actor.instance.L2PcInstance;
import com.it.roberto.gameserver.model.actor.instance.L2PetInstance;
import com.it.roberto.gameserver.serverpackets.ActionFailed;
@@ -722,7 +720,7 @@
_joining = true;
spawnEventNpc(activeChar);
Announcements(_eventName + "(CTF): Joinable in " + _joiningLocationName + "!");
- closeDoors();
+ // Closes all doors specified in configs for tvt
}
public static void startJoin()
@@ -736,7 +734,7 @@
_joining = true;
spawnEventNpc();
Announcements(_eventName + "(CTF): Joinable in " + _joiningLocationName + "!");
+ // Closes all doors specified in configs for CTF
+ closeDoors();
}
public static boolean startAutoJoin()
@@ -1272,7 +1270,7 @@
unspawnAllFlags();
Announcements(_eventName + "(CTF): Match aborted!");
teleportFinish();
+ // Opens all doors specified in configs for CTF
+ openDoors();
}
public static void sit()
@@ -1955,7 +1953,7 @@
public static void teleportFinish()
{
+ // Opens all doors specified in configs for CTF
+ openDoors();
Announcements(_eventName + "(CTF): Teleport back to participation NPC!");
ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
@@ -1972,6 +1970,10 @@
}, 3000);
}
+
+ /**
+ * Close doors specified in configs
+ */
+ private static void closeDoors()
+ {
+ for ( int doorId : Config.CTF_DOORS_IDS_TO_CLOSE )
+ {
+ L2DoorInstance doorInstance = DoorTable.getInstance().getDoor( doorId );
+
+ if ( doorInstance != null )
+ {
+ doorInstance.closeMe();
+ }
+ }
+ }
+
@@ -1984,7 +1986,10 @@
}
}
}
-
+
+ /**
+ * author : Mazokista
+ * Open doors specified in configs
+ */
+ private static void openDoors()
+ {
+ for (int doorId : Config.CTF_DOORS_IDS_TO_OPEN )
+ {
+ L2DoorInstance doorInstance = DoorTable.getInstance().getDoor( doorId );
+
+ if ( doorInstance != null )
+ {
+ doorInstance.openMe();
+ }
+ }
+ }
+
Index: java/config/additions.ini
===================================================================
--- java/config/additions.ini (revision 57)
+++ java/config/additions.ini (working copy)
@@ -377,9 +377,3 @@
# on revive participants regain full hp/mp/cp ?
CTFReviveRecovery = False
+
+# Installation of doors in the closed / open in early / late
+# ex.: 1;2;3;4;5;6
+# no ";" at the start or end
+CTFDoorsToOpen =
+CTFDoorsToClose =
\ No newline at end of file
Creditos : Mazokista