Advertisement
WallisTeer

{ aCis } ChaoticZone

Jul 14th, 2016
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.90 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2UFS
  3. Index: dist/config/players.properties
  4. ===================================================================
  5. --- dist/config/players.properties (revision 174)
  6. +++ dist/config/players.properties (working copy)
  7. @@ -75,6 +75,22 @@
  8. # Default : False
  9. AnnounceKillPLayers = true
  10.  
  11. +#==================================================
  12. +# L2ChaoticZone
  13. +#==================================================
  14. +# If set to false, zone will be no-restart zone
  15. +NoRestartZone = True
  16. +# If set to false, zone will be no-logout zone
  17. +NoLogoutZone = True
  18. +# If set to false, zone will be no-store zone
  19. +NoStoreZone = True
  20. +# Give noblesse after revive?
  21. +ReviveNoblesse = True
  22. +# Heal after revive?
  23. +ReviveHeal = True
  24. +# If set to true, players will take noblesse blessing when entering
  25. +GiveNoblesse = True
  26. +
  27. #=============================================================
  28. # Misc
  29. #=============================================================
  30. Index: java/net/sf/l2j/gameserver/network/serverpackets/ExSetCompassZoneCode.java
  31. ===================================================================
  32. --- java/net/sf/l2j/gameserver/network/serverpackets/ExSetCompassZoneCode.java (revision 173)
  33. +++ java/net/sf/l2j/gameserver/network/serverpackets/ExSetCompassZoneCode.java (working copy)
  34. @@ -20,12 +20,13 @@
  35. */
  36. public class ExSetCompassZoneCode extends L2GameServerPacket
  37. {
  38. - public static final int SIEGEWARZONE1 = 0x0A;
  39. - public static final int SIEGEWARZONE2 = 0x0B;
  40. - public static final int PEACEZONE = 0x0C;
  41. - public static final int SEVENSIGNSZONE = 0x0D;
  42. - public static final int PVPZONE = 0x0E;
  43. - public static final int GENERALZONE = 0x0F;
  44. + public static final int SIEGEWARZONE1 = 10;
  45. + public static final int SIEGEWARZONE2 = 11;
  46. + public static final int PEACEZONE = 12;
  47. + public static final int SEVENSIGNSZONE = 13;
  48. + public static final int PVPZONE = 14;
  49. + public static final int GENERALZONE = 15;
  50. + public static final int CHAOTIC = 16;
  51.  
  52. private final int _zoneType;
  53.  
  54. @@ -37,8 +38,8 @@
  55. @Override
  56. protected void writeImpl()
  57. {
  58. - writeC(0xFE);
  59. - writeH(0x32);
  60. + writeC(254);
  61. + writeH(50);
  62. writeD(_zoneType);
  63. }
  64. }
  65. \ No newline at end of file
  66. Index: java/net/sf/l2j/gameserver/model/actor/L2Character.java
  67. ===================================================================
  68. --- java/net/sf/l2j/gameserver/model/actor/L2Character.java (revision 173)
  69. +++ java/net/sf/l2j/gameserver/model/actor/L2Character.java (working copy)
  70. @@ -1587,8 +1587,17 @@
  71.  
  72. setIsDead(false);
  73.  
  74. + if (isInsideZone(ZoneId.CHAOTIC))
  75. + {
  76. + _status.setCurrentCp(getMaxCp());
  77. + _status.setCurrentHp(getMaxHp());
  78. + _status.setCurrentMp(getMaxMp());
  79. + }
  80. + else
  81. + {
  82. _status.setCurrentHp(getMaxHp() * Config.RESPAWN_RESTORE_HP);
  83. -
  84. + }
  85. +
  86. // Start broadcast status
  87. broadcastPacket(new Revive(this));
  88.  
  89. Index: java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
  90. ===================================================================
  91. --- java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java (revision 173)
  92. +++ java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java (working copy)
  93. @@ -84,6 +84,15 @@
  94. return;
  95. }
  96.  
  97. + if (Config.NOSTORE_ZONE)
  98. + {
  99. + if (player.isInsideZone(ZoneId.CHAOTIC))
  100. + {
  101. + player.sendMessage("You cannot craft while inside Chaotic zone.");
  102. + return;
  103. + }
  104. + }
  105. +
  106. if (player.isInsideZone(ZoneId.NO_STORE))
  107. {
  108. player.sendPacket(SystemMessageId.NO_PRIVATE_STORE_HERE);
  109. Index: java/net/sf/l2j/gameserver/model/zone/type/L2ChaoticZone.java
  110. ===================================================================
  111. --- java/net/sf/l2j/gameserver/model/zone/type/L2ChaoticZone.java (nonexistent)
  112. +++ java/net/sf/l2j/gameserver/model/zone/type/L2ChaoticZone.java (working copy)
  113. @@ -0,0 +1,88 @@
  114. +package net.sf.l2j.gameserver.model.zone.type;
  115. +
  116. +import net.sf.l2j.Config;
  117. +import net.sf.l2j.gameserver.datatables.SkillTable;
  118. +import net.sf.l2j.gameserver.model.L2Skill;
  119. +import net.sf.l2j.gameserver.model.actor.L2Character;
  120. +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  121. +import net.sf.l2j.gameserver.model.zone.L2SpawnZone;
  122. +import net.sf.l2j.gameserver.model.zone.ZoneId;
  123. +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  124. +
  125. +/**
  126. + * by : Wallister
  127. + */
  128. +
  129. +public class L2ChaoticZone extends L2SpawnZone
  130. +{
  131. + private static final boolean give_noblesse = Config.GIVE_NOBLESSE;
  132. + private static final boolean revive_noblesse = Config.REVIVE_NOBLESSE;
  133. + private static final boolean revive_heal = Config.REVIVE_HEAL;
  134. +
  135. + public L2ChaoticZone(int id)
  136. + {
  137. + super(id);
  138. + }
  139. +
  140. + L2Skill noblesse = SkillTable.getInstance().getInfo(1323, 1);
  141. +
  142. + @Override
  143. + protected void onEnter(L2Character character)
  144. + {
  145. + character.setInsideZone(ZoneId.CHAOTIC, true);
  146. + character.setInsideZone(ZoneId.DANGER_AREA, true);
  147. +
  148. + if ((character instanceof L2PcInstance))
  149. + {
  150. + if (((L2PcInstance) character).getPvpFlag() == 0)
  151. + ((L2PcInstance) character).updatePvPFlag(1);
  152. +
  153. + L2PcInstance activeChar = ((L2PcInstance) character);
  154. + if (give_noblesse)
  155. + noblesse.getEffects(activeChar, activeChar);
  156. +
  157. + ((L2PcInstance) character).sendPacket(new ExShowScreenMessage("You entered a Chaotic Zone", 10000));
  158. + ((L2PcInstance) character).sendMessage("You entered a Chaotic Zone");
  159. + }
  160. + }
  161. +
  162. + @Override
  163. + protected void onExit(L2Character character)
  164. + {
  165. + character.setInsideZone(ZoneId.CHAOTIC, false);
  166. + character.setInsideZone(ZoneId.DANGER_AREA, false);
  167. +
  168. + if ((character instanceof L2PcInstance))
  169. + {
  170. + if (((L2PcInstance) character).getPvpFlag() == 1)
  171. + ((L2PcInstance) character).updatePvPFlag(0);
  172. + ((L2PcInstance) character).sendPacket(new ExShowScreenMessage("You left a Chaotic Zone", 10000));
  173. + ((L2PcInstance) character).sendMessage("You left a Chaotic Zone");
  174. + }
  175. + }
  176. +
  177. + @Override
  178. + public void onDieInside(L2Character character)
  179. + {
  180. + }
  181. +
  182. + @Override
  183. + public void onReviveInside(L2Character character)
  184. + {
  185. + if (character instanceof L2PcInstance)
  186. + {
  187. + L2PcInstance activeChar = ((L2PcInstance) character);
  188. + if (revive_noblesse)
  189. + noblesse.getEffects(activeChar, activeChar);
  190. + if (revive_heal)
  191. + heal(activeChar);
  192. + }
  193. + }
  194. +
  195. + static void heal(L2PcInstance activeChar)
  196. + {
  197. + activeChar.setCurrentHp(activeChar.getMaxHp());
  198. + activeChar.setCurrentCp(activeChar.getMaxCp());
  199. + activeChar.setCurrentMp(activeChar.getMaxMp());
  200. + }
  201. +}
  202. Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java
  203. ===================================================================
  204. --- java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java (revision 173)
  205. +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java (working copy)
  206. @@ -14,6 +14,7 @@
  207. */
  208. package net.sf.l2j.gameserver.network.clientpackets;
  209.  
  210. +import net.sf.l2j.Config;
  211. import net.sf.l2j.gameserver.instancemanager.SevenSignsFestival;
  212. import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  213. import net.sf.l2j.gameserver.model.zone.ZoneId;
  214. @@ -47,7 +48,15 @@
  215. sendPacket(RestartResponse.valueOf(false));
  216. return;
  217. }
  218. -
  219. + if (Config.NORESTART_ZONE)
  220. + {
  221. + if (player.isInsideZone(ZoneId.CHAOTIC))
  222. + {
  223. + player.sendMessage("You cannot restart while inside a Chaotic zone.");
  224. + sendPacket(RestartResponse.valueOf(false));
  225. + return;
  226. + }
  227. + }
  228. if (player.isInsideZone(ZoneId.NO_RESTART))
  229. {
  230. player.sendPacket(SystemMessageId.NO_RESTART_HERE);
  231. @@ -64,7 +73,7 @@
  232. return;
  233. }
  234.  
  235. - if(NexusEvents.isInEvent(player))
  236. + if (NexusEvents.isInEvent(player))
  237. {
  238. player.sendMessage("A superior power doesn't allow you to leave the event");
  239. player.sendPacket(ActionFailed.STATIC_PACKET);
  240. Index: java/net/sf/l2j/Config.java
  241. ===================================================================
  242. --- java/net/sf/l2j/Config.java (revision 175)
  243. +++ java/net/sf/l2j/Config.java (working copy)
  244. @@ -419,6 +419,12 @@
  245. public static boolean ENABLE_MODIFY_SKILL_DURATION;
  246. public static Map<Integer, Integer> SKILL_DURATION_LIST;
  247. public static boolean ANNOUNCE_KILL;
  248. + public static boolean NORESTART_ZONE;
  249. + public static boolean NOSTORE_ZONE;
  250. + public static boolean NOLOGOUT_ZONE;
  251. + public static boolean GIVE_NOBLESSE;
  252. + public static boolean REVIVE_NOBLESSE;
  253. + public static boolean REVIVE_HEAL;
  254. public static boolean EFFECT_CANCELING;
  255. public static double HP_REGEN_MULTIPLIER;
  256. public static double MP_REGEN_MULTIPLIER;
  257. @@ -1211,6 +1217,12 @@
  258. }
  259. }
  260. ANNOUNCE_KILL = players.getProperty("AnnounceKillPLayers", false);
  261. + NORESTART_ZONE = players.getProperty("NoRestartZone", false);
  262. + NOSTORE_ZONE = players.getProperty("NoStoreZone", false);
  263. + NOLOGOUT_ZONE = players.getProperty("NoLogoutZone", false);
  264. + GIVE_NOBLESSE = players.getProperty("GiveNoblesse", false);
  265. + REVIVE_NOBLESSE = players.getProperty("ReviveNoblesse", false);
  266. + REVIVE_HEAL = players.getProperty("ReviveHeal", false);
  267.  
  268. EFFECT_CANCELING = players.getProperty("CancelLesserEffect", true);
  269. HP_REGEN_MULTIPLIER = players.getProperty("HpRegenMultiplier", 1.);
  270. Index: java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
  271. ===================================================================
  272. --- java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java (revision 173)
  273. +++ java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java (working copy)
  274. @@ -83,6 +83,15 @@
  275. return;
  276. }
  277.  
  278. + if (Config.NOSTORE_ZONE)
  279. + {
  280. + if (player.isInsideZone(ZoneId.CHAOTIC))
  281. + {
  282. + player.sendMessage("You cannot craft while inside Chaotic zone.");
  283. + return;
  284. + }
  285. + }
  286. +
  287. if (player.isInsideZone(ZoneId.NO_STORE))
  288. {
  289. player.sendPacket(SystemMessageId.NO_PRIVATE_STORE_HERE);
  290. Index: java/net/sf/l2j/gameserver/network/clientpackets/Logout.java
  291. ===================================================================
  292. --- java/net/sf/l2j/gameserver/network/clientpackets/Logout.java (revision 173)
  293. +++ java/net/sf/l2j/gameserver/network/clientpackets/Logout.java (working copy)
  294. @@ -14,6 +14,7 @@
  295. */
  296. package net.sf.l2j.gameserver.network.clientpackets;
  297.  
  298. +import net.sf.l2j.Config;
  299. import net.sf.l2j.gameserver.instancemanager.SevenSignsFestival;
  300. import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  301. import net.sf.l2j.gameserver.model.zone.ZoneId;
  302. @@ -51,6 +52,15 @@
  303. return;
  304. }
  305.  
  306. + if (Config.NOLOGOUT_ZONE)
  307. + {
  308. + if (player.isInsideZone(ZoneId.CHAOTIC))
  309. + {
  310. + player.sendMessage("You cannot logout while inside a Chaotic zone.");
  311. + player.sendPacket(ActionFailed.STATIC_PACKET);
  312. + return;
  313. + }
  314. + }
  315. if (!player.isGM())
  316. {
  317. if (AttackStanceTaskManager.getInstance().isInAttackStance(player))
  318. @@ -67,7 +77,7 @@
  319. return;
  320. }
  321.  
  322. - if(NexusEvents.isInEvent(player))
  323. + if (NexusEvents.isInEvent(player))
  324. {
  325. player.sendMessage("A superior power doesn't allow you to leave the event");
  326. sendPacket(ActionFailed.STATIC_PACKET);
  327. Index: java/net/sf/l2j/gameserver/model/zone/ZoneId.java
  328. ===================================================================
  329. --- java/net/sf/l2j/gameserver/model/zone/ZoneId.java (revision 173)
  330. +++ java/net/sf/l2j/gameserver/model/zone/ZoneId.java (working copy)
  331. @@ -38,7 +38,8 @@
  332. DANGER_AREA(15),
  333. CAST_ON_ARTIFACT(16),
  334. NO_RESTART(17),
  335. - SCRIPT(18);
  336. + SCRIPT(18),
  337. + CHAOTIC(19);
  338.  
  339. private final int _id;
  340.  
  341. Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
  342. ===================================================================
  343. --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 174)
  344. +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
  345. @@ -1285,6 +1285,14 @@
  346. _lastCompassZone = ExSetCompassZoneCode.PEACEZONE;
  347. sendPacket(new ExSetCompassZoneCode(ExSetCompassZoneCode.PEACEZONE));
  348. }
  349. + else if (isInsideZone(ZoneId.CHAOTIC))
  350. + {
  351. + if (_lastCompassZone == ExSetCompassZoneCode.CHAOTIC)
  352. + return;
  353. +
  354. + _lastCompassZone = ExSetCompassZoneCode.CHAOTIC;
  355. + sendPacket(new ExSetCompassZoneCode(ExSetCompassZoneCode.CHAOTIC));
  356. + }
  357. else
  358. {
  359. if (_lastCompassZone == ExSetCompassZoneCode.GENERALZONE)
  360. @@ -3975,7 +3983,7 @@
  361. }
  362.  
  363. // Reduce player's xp and karma.
  364. - if (Config.ALT_GAME_DELEVEL && (getSkillLevel(L2Skill.SKILL_LUCKY) < 0 || getStat().getLevel() > 9))
  365. + if (Config.ALT_GAME_DELEVEL && (!isInsideZone(ZoneId.CHAOTIC)) && (getSkillLevel(L2Skill.SKILL_LUCKY) < 0 || getStat().getLevel() > 9))
  366. deathPenalty(pk != null && getClan() != null && pk.getClan() != null && (getClan().isAtWarWith(pk.getClanId()) || pk.getClan().isAtWarWith(getClanId())), pk != null, killer instanceof L2SiegeGuardInstance);
  367. }
  368. }
  369. @@ -4026,7 +4034,7 @@
  370. if (getKarma() <= 0 && pk != null && pk.getClan() != null && getClan() != null && pk.getClan().isAtWarWith(getClanId()))
  371. return;
  372.  
  373. - if ((!isInsideZone(ZoneId.PVP) || pk == null) && (!isGM() || Config.KARMA_DROP_GM))
  374. + if ((!isInsideZone(ZoneId.CHAOTIC)) && (!isInsideZone(ZoneId.PVP) || pk == null) && (!isGM() || Config.KARMA_DROP_GM))
  375. {
  376. boolean isKillerNpc = (killer instanceof L2Npc);
  377. int pkLimit = Config.KARMA_PK_LIMIT;
  378. @@ -4231,6 +4239,9 @@
  379. if (isInsideZone(ZoneId.PVP))
  380. return;
  381.  
  382. + if (isInsideZone(ZoneId.CHAOTIC))
  383. + return;
  384. +
  385. PvpFlagTaskManager.getInstance().add(this, Config.PVP_NORMAL_TIME);
  386.  
  387. if (getPvpFlag() == 0)
  388. @@ -4246,7 +4257,7 @@
  389. if (isInDuel() && player.getDuelId() == getDuelId())
  390. return;
  391.  
  392. - if ((!isInsideZone(ZoneId.PVP) || !target.isInsideZone(ZoneId.PVP)) && player.getKarma() == 0)
  393. + if ((!isInsideZone(ZoneId.PVP) || !target.isInsideZone(ZoneId.PVP)) && (!isInsideZone(ZoneId.CHAOTIC) || !target.isInsideZone(ZoneId.CHAOTIC)) && player.getKarma() == 0)
  394. {
  395. PvpFlagTaskManager.getInstance().add(this, checkIfPvP(player) ? Config.PVP_PVP_TIME : Config.PVP_NORMAL_TIME);
  396.  
  397. @@ -6633,6 +6644,9 @@
  398. if (getClan() != null && getClan().isMember(cha.getObjectId()))
  399. return false;
  400.  
  401. + if ((isInsideZone(ZoneId.CHAOTIC)) && (((L2PcInstance) attacker).isInsideZone(ZoneId.CHAOTIC)))
  402. + return true;
  403. +
  404. // Now check again if the L2PcInstance is in pvp zone (as arenas check was made before, it ends with sieges).
  405. if (isInsideZone(ZoneId.PVP) && attacker.isInsideZone(ZoneId.PVP))
  406. return true;
  407. @@ -9936,7 +9950,7 @@
  408. if (_deathPenaltyBuffLevel >= 15) // maximum level reached
  409. return;
  410.  
  411. - if ((getKarma() > 0 || Rnd.get(1, 100) <= Config.DEATH_PENALTY_CHANCE) && !(killer instanceof L2PcInstance) && !isGM() && !(getCharmOfLuck() && (killer == null || killer.isRaid())) && !isPhoenixBlessed() && !(isInsideZone(ZoneId.PVP) || isInsideZone(ZoneId.SIEGE)))
  412. + if ((getKarma() > 0 || Rnd.get(1, 100) <= Config.DEATH_PENALTY_CHANCE) && !(killer instanceof L2PcInstance) && !isGM() && !(getCharmOfLuck() && (killer == null || killer.isRaid())) && !isPhoenixBlessed() && !(isInsideZone(ZoneId.PVP) && (!isInsideZone(ZoneId.CHAOTIC)) || isInsideZone(ZoneId.SIEGE)))
  413. {
  414. if (_deathPenaltyBuffLevel != 0)
  415. {
  416. Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java
  417. ===================================================================
  418. --- java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java (revision 173)
  419. +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java (working copy)
  420. @@ -69,6 +69,14 @@
  421. return;
  422. }
  423.  
  424. + if (Config.NOSTORE_ZONE)
  425. + {
  426. + if (player.isInsideZone(ZoneId.CHAOTIC))
  427. + {
  428. + player.sendMessage("You cannot craft while inside Chaotic zone.");
  429. + return;
  430. + }
  431. + }
  432. if (_count == 0)
  433. player.forceStandUp();
  434. else
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement