Advertisement
VANPER

Tournament Event

Feb 9th, 2020
2,512
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 273.14 KB | None | 0 0
  1. Index: package l2jban.events;Arena2x2.java
  2. ===================================================================
  3. --- package l2jban.events;Arena2x2.java (revision 84)
  4. +++ package l2jban.events;Arena2x2.java (working copy)
  5.  
  6. +   package l2jban.events;
  7. +  
  8. +   import java.util.ArrayList;
  9. +   import java.util.HashMap;
  10. +   import java.util.List;
  11. +   import java.util.Map;
  12. +   import java.util.logging.Logger;
  13. +  
  14. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  15. +   import net.sf.l2j.commons.random.Rnd;
  16. +  
  17. +   import net.sf.l2j.Config;
  18. +   import net.sf.l2j.gameserver.model.L2Effect;
  19. +   import net.sf.l2j.gameserver.model.actor.Player;
  20. +   import net.sf.l2j.gameserver.model.actor.Summon;
  21. +   import net.sf.l2j.gameserver.model.actor.instance.Pet;
  22. +   import net.sf.l2j.gameserver.enums.actors.ClassId;
  23. +   import net.sf.l2j.gameserver.enums.ZoneId;
  24. +   import net.sf.l2j.gameserver.network.SystemMessageId;
  25. +   import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  26. +   import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
  27. +  
  28. +   public class Arena2x2 implements Runnable
  29. +   {
  30. +       protected static final Logger _log = Logger.getLogger(Arena2x2.class.getName());
  31. +  
  32. +       public static List<Pair> registered;
  33. +  
  34. +       int free = Config.ARENA_EVENT_COUNT;
  35. +  
  36. +       Arena[] arenas = new Arena[Config.ARENA_EVENT_COUNT];
  37. +  
  38. +       Map<Integer, String> fights = new HashMap<>(Config.ARENA_EVENT_COUNT);
  39. +  
  40. +       public Arena2x2()
  41. +       {
  42. +           registered = new ArrayList<>();
  43. +  
  44. +           for (int i = 0; i < Config.ARENA_EVENT_COUNT; i++)
  45. +           {
  46. +               int[] coord = Config.ARENA_EVENT_LOCS[i];
  47. +               arenas[i] = new Arena(i, coord[0], coord[1], coord[2]);
  48. +           }
  49. +       }
  50. +  
  51. +       public static Arena2x2 getInstance()
  52. +       {
  53. +           return SingletonHolder.INSTANCE;
  54. +       }
  55. +  
  56. +       public boolean register(Player player, Player assist)
  57. +       {
  58. +           for (Pair p : registered)
  59. +           {
  60. +               if (p.getLeader() == player || p.getAssist() == player)
  61. +               {
  62. +                   player.sendMessage("Tournament: You already registered!");
  63. +                   return false;
  64. +               }
  65. +               if (p.getLeader() == assist || p.getAssist() == assist)
  66. +               {
  67. +                   player.sendMessage("Tournament: Your partner already registered!");
  68. +                   return false;
  69. +               }
  70. +           }
  71. +           return registered.add(new Pair(player, assist));
  72. +       }
  73. +  
  74. +       public boolean isRegistered(Player player)
  75. +       {
  76. +           for (Pair p : registered)
  77. +               if (p.getLeader() == player || p.getAssist() == player)
  78. +                   return true;
  79. +           return false;
  80. +       }
  81. +  
  82. +       public Map<Integer, String> getFights()
  83. +       {
  84. +           return fights;
  85. +       }
  86. +  
  87. +       public boolean remove(Player player)
  88. +       {
  89. +           for (Pair p : registered)
  90. +               if (p.getLeader() == player || p.getAssist() == player)
  91. +               {
  92. +                   p.removeMessage();
  93. +                   registered.remove(p);
  94. +                   return true;
  95. +               }
  96. +           return false;
  97. +       }
  98. +  
  99. +       @Override
  100. +       public synchronized void run()
  101. +       {
  102. +           for (;;)
  103. +               if (registered.size() < 2 || free == 0)
  104. +                   try
  105. +           {
  106. +                       Thread.sleep(Config.ARENA_CALL_INTERVAL * 1000);
  107. +  
  108. +           }
  109. +           catch (InterruptedException localInterruptedException)
  110. +           {
  111. +           }
  112. +               else
  113. +               {
  114. +                   List<Pair> opponents = selectOpponents();
  115. +                   if (opponents != null && opponents.size() == 2)
  116. +                   {
  117. +                       Thread T = new Thread(new EvtArenaTask(opponents));
  118. +                       T.setDaemon(true);
  119. +                       T.start();
  120. +                   }
  121. +  
  122. +                   try
  123. +                   {
  124. +                       Thread.sleep(Config.ARENA_CALL_INTERVAL * 1000);
  125. +                   }
  126. +                   catch (InterruptedException localInterruptedException1)
  127. +                   {
  128. +                   }
  129. +               }
  130. +       }
  131. +  
  132. +       @SuppressWarnings("null")
  133. +       private List<Pair> selectOpponents()
  134. +       {
  135. +           List<Pair> opponents = new ArrayList<>();
  136. +           Pair pairOne = null;
  137. +           Pair pairTwo = null;
  138. +           int tries = 3;
  139. +           do
  140. +           {
  141. +               int first = 0;
  142. +               int second = 0;
  143. +               if (getRegisteredCount() < 2)
  144. +                   return opponents;
  145. +               if (pairOne == null)
  146. +               {
  147. +                   first = Rnd.get(getRegisteredCount());
  148. +                   pairOne = registered.get(first);
  149. +                   if (pairOne.check())
  150. +                   {
  151. +                       opponents.add(0, pairOne);
  152. +                       registered.remove(first);
  153. +                   }
  154. +                   else
  155. +                   {
  156. +                       pairOne = null;
  157. +                       registered.remove(first);
  158. +                       return null;
  159. +                   }
  160. +               }
  161. +  
  162. +               if (pairTwo == null)
  163. +               {
  164. +                   second = Rnd.get(getRegisteredCount());
  165. +                   pairTwo = registered.get(second);
  166. +                   if (pairTwo.check())
  167. +                   {
  168. +                       opponents.add(1, pairTwo);
  169. +                       registered.remove(second);
  170. +                   }
  171. +                   else
  172. +                   {
  173. +                       pairTwo = null;
  174. +                       registered.remove(second);
  175. +                       return null;
  176. +                   }
  177. +               }
  178. +  
  179. +               if (pairOne != null && pairTwo != null)
  180. +                   break;
  181. +               tries--;
  182. +           }
  183. +           while (tries > 0);
  184. +           return opponents;
  185. +       }
  186. +  
  187. +       public int getRegisteredCount()
  188. +       {
  189. +           return registered.size();
  190. +       }
  191. +  
  192. +       private class Pair
  193. +       {
  194. +           Player leader;
  195. +           Player assist;
  196. +  
  197. +           public Pair(Player leader, Player assist)
  198. +           {
  199. +               this.leader = leader;
  200. +               this.assist = assist;
  201. +           }
  202. +  
  203. +           public Player getAssist()
  204. +           {
  205. +               return assist;
  206. +           }
  207. +  
  208. +           public Player getLeader()
  209. +           {
  210. +               return leader;
  211. +           }
  212. +  
  213. +           public boolean check()
  214. +           {
  215. +               if ((leader == null || !leader.isOnline()) && (assist != null || assist.isOnline()))
  216. +               {
  217. +                   assist.sendMessage("Tournament: You participation in Event was Canceled.");
  218. +                   return false;
  219. +               }
  220. +               if ((assist == null || !assist.isOnline()) && (leader != null || leader.isOnline()))
  221. +               {
  222. +                   leader.sendMessage("Tournament: You participation in Event was Canceled.");
  223. +                   return false;
  224. +               }
  225. +               return true;
  226. +           }
  227. +  
  228. +           public boolean isDead()
  229. +           {
  230. +  
  231. +              
  232. +               if ((leader == null || leader.isDead() || !leader.isOnline() || !leader.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !leader.isArenaAttack()) && (assist == null || assist.isDead() || !assist.isOnline() || !assist.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist.isArenaAttack()))
  233. +                   return false;
  234. +               return !leader.isDead() || !assist.isDead();
  235. +              
  236. +           }
  237. +          
  238. +          
  239. +  
  240. +           public boolean isAlive()
  241. +           {
  242. +              
  243. +               if ((leader == null || leader.isDead() || !leader.isOnline() || !leader.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !leader.isArenaAttack()) && (assist == null || assist.isDead() || !assist.isOnline() || !assist.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist.isArenaAttack()))
  244. +                   return false;
  245. +               return !leader.isDead() || !assist.isDead();
  246. +              
  247. +              
  248. +           }
  249. +  
  250. +           public void teleportTo(int x, int y, int z)
  251. +           {
  252. +               if (leader != null && leader.isOnline())
  253. +               {
  254. +  
  255. +                   leader.setCurrentCp(leader.getMaxCp());
  256. +                   leader.setCurrentHp(leader.getMaxHp());
  257. +                   leader.setCurrentMp(leader.getMaxMp());
  258. +  
  259. +                   if (leader.isInObserverMode())
  260. +                   {
  261. +                       leader.setLastCords(x, y, z);
  262. +                       leader.leaveOlympiadObserverMode();
  263. +                   }  
  264. +                   else
  265. +                       leader.teleportTo(x, y, z, 0);
  266. +                   leader.broadcastUserInfo();
  267. +               }
  268. +  
  269. +               if (assist != null && assist.isOnline())
  270. +               {
  271. +                   assist.setCurrentCp(assist.getMaxCp());
  272. +                   assist.setCurrentHp(assist.getMaxHp());
  273. +                   assist.setCurrentMp(assist.getMaxMp());
  274. +                  
  275. +  
  276. +                   if (assist.isInObserverMode())
  277. +                   {
  278. +                       assist.setLastCords(x, y + 50, z);
  279. +                       assist.leaveOlympiadObserverMode();
  280. +                   }
  281. +                   else
  282. +                       assist.teleportTo(x, y + 50, z, 0);
  283. +                   assist.broadcastUserInfo();
  284. +               }
  285. +           }
  286. +  
  287. +           public void EventTitle(String title, String color)
  288. +           {
  289. +               if (leader != null && leader.isOnline())
  290. +               {
  291. +                   leader.setTitle(title);
  292. +                   leader.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  293. +                   leader.broadcastUserInfo();
  294. +                   leader.broadcastTitleInfo();
  295. +               }
  296. +  
  297. +               if (assist != null && assist.isOnline())
  298. +               {
  299. +                   assist.setTitle(title);
  300. +                   assist.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  301. +                   assist.broadcastUserInfo();
  302. +                   assist.broadcastTitleInfo();
  303. +               }
  304. +           }
  305. +  
  306. +           public void saveTitle()
  307. +           {
  308. +               if (leader != null && leader.isOnline())
  309. +               {
  310. +                   leader._originalTitleColorTournament = leader.getAppearance().getTitleColor();
  311. +                   leader._originalTitleTournament = leader.getTitle();
  312. +               }
  313. +  
  314. +               if (assist != null && assist.isOnline())
  315. +               {
  316. +                   assist._originalTitleColorTournament = assist.getAppearance().getTitleColor();
  317. +                   assist._originalTitleTournament = assist.getTitle();
  318. +               }
  319. +           }
  320. +  
  321. +           public void backTitle()
  322. +           {
  323. +               if (leader != null && leader.isOnline())
  324. +               {
  325. +                   leader.setTitle(leader._originalTitleTournament);
  326. +                   leader.getAppearance().setTitleColor(leader._originalTitleColorTournament);
  327. +                   leader.broadcastUserInfo();
  328. +                   leader.broadcastTitleInfo();
  329. +               }
  330. +  
  331. +               if (assist != null && assist.isOnline())
  332. +               {
  333. +                   assist.setTitle(assist._originalTitleTournament);
  334. +                   assist.getAppearance().setTitleColor(assist._originalTitleColorTournament);
  335. +                   assist.broadcastUserInfo();
  336. +                   assist.broadcastTitleInfo();
  337. +               }
  338. +           }
  339. +  
  340. +           public void rewards()
  341. +           {
  342. +               if (leader != null && leader.isOnline())
  343. +  
  344. +                       leader.addItem("Arena_Event", '.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT, leader, true);
  345. +  
  346. +               if (assist != null && assist.isOnline())
  347. +                       assist.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT, assist, true);
  348. +  
  349. +               sendPacket("Congratulations, your team won the event!", 5);
  350. +           }
  351. +  
  352. +           public void rewardsLost()
  353. +           {
  354. +               if (leader != null && leader.isOnline())
  355. +                   leader.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT, leader, true);
  356. +               if (assist != null && assist.isOnline())
  357. +                   assist.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT, assist, true);
  358. +               sendPacket("your team lost the event! =(", 5);
  359. +           }
  360. +  
  361. +           public void setInTournamentEvent(boolean val)
  362. +           {
  363. +               if (leader != null && leader.isOnline())
  364. +                   leader.setInArenaEvent(val);
  365. +               if (assist != null && assist.isOnline())
  366. +                   assist.setInArenaEvent(val);
  367. +           }
  368. +  
  369. +           public void removeMessage()
  370. +           {
  371. +               if (leader != null && leader.isOnline())
  372. +               {
  373. +                   leader.sendMessage("Tournament: Your participation has been removed.");
  374. +                   leader.setArenaProtection(false);
  375. +                   leader.setArena2x2(false);
  376. +               }
  377. +  
  378. +               if (assist != null && assist.isOnline())
  379. +               {
  380. +                   assist.sendMessage("Tournament: Your participation has been removed.");
  381. +                   assist.setArenaProtection(false);
  382. +                   leader.setArena2x2(false);
  383. +               }
  384. +           }
  385. +  
  386. +           public void setArenaProtection(boolean val)
  387. +           {
  388. +               if (leader != null && leader.isOnline())
  389. +               {
  390. +                   leader.setArenaProtection(val);
  391. +                   leader.setArena2x2(val);
  392. +               }
  393. +  
  394. +               if (assist != null && assist.isOnline())
  395. +               {
  396. +                   assist.setArenaProtection(val);
  397. +                   leader.setArena2x2(val);
  398. +               }
  399. +           }
  400. +  
  401. +           public void revive()
  402. +           {
  403. +               if (leader != null && leader.isOnline() && leader.isDead())
  404. +                   leader.doRevive();
  405. +               if (assist != null && assist.isOnline() && assist.isDead())
  406. +                   assist.doRevive();
  407. +           }
  408. +  
  409. +           public void setImobilised(boolean val)
  410. +           {
  411. +               if (leader != null && leader.isOnline())
  412. +               {
  413. +                   leader.setIsInvul(val);
  414. +                   leader.setStopArena(val);
  415. +               }
  416. +  
  417. +               if (assist != null && assist.isOnline())
  418. +               {
  419. +                   assist.setIsInvul(val);
  420. +                   assist.setStopArena(val);
  421. +               }
  422. +           }
  423. +  
  424. +           public void setArenaAttack(boolean val)
  425. +           {
  426. +               if (leader != null && leader.isOnline())
  427. +               {
  428. +                   leader.setArenaAttack(val);
  429. +                   leader.broadcastUserInfo();
  430. +               }
  431. +  
  432. +               if (assist != null && assist.isOnline())
  433. +               {
  434. +                   assist.setArenaAttack(val);
  435. +                   assist.broadcastUserInfo();
  436. +               }
  437. +           }
  438. +  
  439. +  
  440. +           public void removePet()
  441. +           {
  442. +               if (leader != null && leader.isOnline())
  443. +               {
  444. +  
  445. +                   if (leader.getSummon() != null)
  446. +                   {
  447. +                       Summon summon = leader.getSummon();
  448. +                       if (summon != null)
  449. +                           summon.unSummon(summon.getOwner());
  450. +                       if (summon instanceof Pet)
  451. +                           summon.unSummon(leader);
  452. +                   }
  453. +                   if (leader.getMountType() == 1 || leader.getMountType() == 2)
  454. +                       leader.dismount();
  455. +               }
  456. +               if (assist != null && assist.isOnline())
  457. +               {
  458. +  
  459. +                   if (assist.getSummon() != null)
  460. +                   {
  461. +                       Summon summon = assist.getSummon();
  462. +                       if (summon != null)
  463. +                           summon.unSummon(summon.getOwner());
  464. +                       if (summon instanceof Pet)
  465. +                           summon.unSummon(assist);
  466. +                   }
  467. +                   if (assist.getMountType() == 1 || assist.getMountType() == 2)
  468. +                       assist.dismount();
  469. +               }
  470. +  
  471. +      
  472. +           }
  473. +          
  474. +  
  475. +           public void removeSkills()
  476. +           {
  477. +               for (L2Effect effect : leader.getAllEffects())
  478. +                   if (effect.getSkill().getId() == 406 || effect.getSkill().getId() == 139 || effect.getSkill().getId() == 176 || effect.getSkill().getId() == 420)
  479. +                   {
  480. +                       leader.stopSkillEffects(effect.getSkill().getId());
  481. +                       leader.enableSkill(effect.getSkill());
  482. +                   }
  483. +  
  484. +               for (L2Effect effect : assist.getAllEffects())
  485. +                   if (effect.getSkill().getId() == 406 || effect.getSkill().getId() == 139 || effect.getSkill().getId() == 176 || effect.getSkill().getId() == 420)
  486. +                   {
  487. +                       assist.stopSkillEffects(effect.getSkill().getId());
  488. +                       assist.enableSkill(effect.getSkill());
  489. +                   }
  490. +  
  491. +               if (Config.ARENA_SKILL_PROTECT)
  492. +                   if (leader != null && leader.isOnline())
  493. +                   {
  494. +                       for (L2Effect effect : leader.getAllEffects())
  495. +                           if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  496. +                               leader.stopSkillEffects(effect.getSkill().getId());
  497. +                       if (leader.getMountType() == 2)
  498. +                       {
  499. +                           leader.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
  500. +                           leader.enteredNoLanding(5);
  501. +                       }
  502. +                   }
  503. +  
  504. +               if (Config.ARENA_SKILL_PROTECT)
  505. +                   if (assist != null && assist.isOnline())
  506. +                   {
  507. +                       for (L2Effect effect : assist.getAllEffects())
  508. +                           if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  509. +                               assist.stopSkillEffects(effect.getSkill().getId());
  510. +                       if (assist.getMountType() == 2)
  511. +                       {
  512. +                           assist.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
  513. +                           assist.enteredNoLanding(5);
  514. +                       }
  515. +                   }
  516. +           }
  517. +  
  518. +           public void sendPacket(String message, int duration)
  519. +           {
  520. +               if (leader != null && leader.isOnline())
  521. +                   leader.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  522. +               if (assist != null && assist.isOnline())
  523. +                   assist.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  524. +           }
  525. +  
  526. +           public void inicarContagem(int duration)
  527. +           {
  528. +               if (leader != null && leader.isOnline())
  529. +                   ThreadPool.schedule(new Arena2x2.countdown(leader, duration), 0L);
  530. +               if (assist != null && assist.isOnline())
  531. +                   ThreadPool.schedule(new Arena2x2.countdown(assist, duration), 0L);
  532. +           }
  533. +  
  534. +           public void sendPacketinit(String message, int duration)
  535. +           {
  536. +               if (leader != null && leader.isOnline())
  537. +                   leader.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  538. +               if (assist != null && assist.isOnline())
  539. +                   assist.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  540. +               if (leader.getClassId() == ClassId.SHILLIEN_ELDER || leader.getClassId() == ClassId.SHILLIEN_SAINT || leader.getClassId() == ClassId.BISHOP || leader.getClassId() == ClassId.CARDINAL || leader.getClassId() == ClassId.ELVEN_ELDER || leader.getClassId() == ClassId.EVAS_SAINT)
  541. +                   ThreadPool.schedule(new Runnable()
  542. +                   {
  543. +  
  544. +                       @Override
  545. +                       public void run()
  546. +                       {
  547. +                           leader.getClient().closeNow();
  548. +                       }
  549. +                   }, 100L);
  550. +  
  551. +               if (assist.getClassId() == ClassId.SHILLIEN_ELDER || assist.getClassId() == ClassId.SHILLIEN_SAINT || assist.getClassId() == ClassId.BISHOP || assist.getClassId() == ClassId.CARDINAL || assist.getClassId() == ClassId.ELVEN_ELDER || assist.getClassId() == ClassId.EVAS_SAINT)
  552. +                   ThreadPool.schedule(new Runnable()
  553. +                   {
  554. +  
  555. +                       @Override
  556. +                       public void run()
  557. +                       {
  558. +                           assist.getClient().closeNow();
  559. +                       }
  560. +                   }, 100L);
  561. +           }
  562. +       }
  563. +  
  564. +       private class EvtArenaTask implements Runnable
  565. +       {
  566. +           private final Arena2x2.Pair pairOne;
  567. +           private final Arena2x2.Pair pairTwo;
  568. +           private final int pOneX;
  569. +           private final int pOneY;
  570. +           private final int pOneZ;
  571. +           private final int pTwoX;
  572. +           private final int pTwoY;
  573. +           private final int pTwoZ;
  574. +           private Arena2x2.Arena arena;
  575. +  
  576. +           public EvtArenaTask(List<Pair> opponents)
  577. +           {
  578. +               pairOne = opponents.get(0);
  579. +               pairTwo = opponents.get(1);
  580. +               Player leader = pairOne.getLeader();
  581. +               pOneX = leader.getX();
  582. +               pOneY = leader.getY();
  583. +               pOneZ = leader.getZ();
  584. +               leader = pairTwo.getLeader();
  585. +               pTwoX = leader.getX();
  586. +               pTwoY = leader.getY();
  587. +               pTwoZ = leader.getZ();
  588. +           }
  589. +  
  590. +           @Override
  591. +           public void run()
  592. +           {
  593. +               free -= 1;
  594. +               pairOne.saveTitle();
  595. +               pairTwo.saveTitle();
  596. +               portPairsToArena();
  597. +               pairOne.inicarContagem(Config.ARENA_WAIT_INTERVAL);
  598. +               pairTwo.inicarContagem(Config.ARENA_WAIT_INTERVAL);
  599. +              
  600. +               try
  601. +               {
  602. +                   Thread.sleep(Config.ARENA_WAIT_INTERVAL * 1000);
  603. +               }
  604. +               catch (InterruptedException localInterruptedException1)
  605. +               {
  606. +               }
  607. +  
  608. +               pairOne.sendPacketinit("Started. Good Fight!", 3);
  609. +               pairTwo.sendPacketinit("Started. Good Fight!", 3);
  610. +               pairOne.EventTitle(Config.MSG_TEAM1, Config.TITLE_COLOR_TEAM1);
  611. +               pairTwo.EventTitle(Config.MSG_TEAM2, Config.TITLE_COLOR_TEAM2);
  612. +              
  613. +               pairOne.setImobilised(false);
  614. +               pairTwo.setImobilised(false);
  615. +               pairOne.setArenaAttack(true);
  616. +               pairTwo.setArenaAttack(true);
  617. +               while (check())
  618. +                   try
  619. +               {
  620. +  
  621. +                       Thread.sleep(Config.ARENA_CHECK_INTERVAL);
  622. +                       continue;
  623. +               }
  624. +               catch (InterruptedException e)
  625. +               {
  626. +                    break;
  627. +               }
  628. +               this.finishDuel();
  629. +               final Arena2x2 this$2 = Arena2x2.this;
  630. +               ++this$2.free;
  631. +  
  632. +  
  633. +           }
  634. +          
  635. +          
  636. +  
  637. +           private void finishDuel()
  638. +           {
  639. +               fights.remove(Integer.valueOf(arena.id));
  640. +               rewardWinner();
  641. +               pairOne.revive();
  642. +               pairTwo.revive();
  643. +               pairOne.teleportTo(pOneX, pOneY, pOneZ);
  644. +               pairTwo.teleportTo(pTwoX, pTwoY, pTwoZ);
  645. +               pairOne.backTitle();
  646. +               pairTwo.backTitle();
  647. +               pairOne.setInTournamentEvent(false);
  648. +               pairTwo.setInTournamentEvent(false);
  649. +               pairOne.setArenaProtection(false);
  650. +               pairTwo.setArenaProtection(false);
  651. +               pairOne.setArenaAttack(false);
  652. +               pairTwo.setArenaAttack(false);
  653. +               arena.setFree(true);
  654. +           }
  655. +  
  656. +           private void rewardWinner()
  657. +           {
  658. +               if (pairOne.isAlive() && !pairTwo.isAlive())
  659. +               {
  660. +                   pairOne.rewards();
  661. +                   pairTwo.rewardsLost();
  662. +               }
  663. +              
  664. +          
  665. +               else if (pairTwo.isAlive() && !pairOne.isAlive())
  666. +               {
  667. +                   pairTwo.rewards();
  668. +                   pairOne.rewardsLost();
  669. +               }
  670. +           }
  671. +  
  672. +           private boolean check()
  673. +           {
  674. +               return pairOne.isDead() && pairTwo.isDead();
  675. +           }
  676. +  
  677. +           private void portPairsToArena()
  678. +           {
  679. +               for (Arena2x2.Arena arena : arenas)
  680. +                   if (arena.isFree)
  681. +                   {
  682. +                       this.arena = arena;
  683. +                       arena.setFree(false);
  684. +                       pairOne.removePet();
  685. +                       pairTwo.removePet();
  686. +                       pairOne.teleportTo(arena.x - 850, arena.y, arena.z);
  687. +                       pairTwo.teleportTo(arena.x + 850, arena.y, arena.z);
  688. +                       pairOne.setImobilised(true);
  689. +                       pairTwo.setImobilised(true);
  690. +                       pairOne.setInTournamentEvent(true);
  691. +                       pairTwo.setInTournamentEvent(true);
  692. +                       pairOne.removeSkills();
  693. +                       pairTwo.removeSkills();
  694. +                       fights.put(Integer.valueOf(this.arena.id), pairOne.getLeader().getName() + " vs " + pairTwo.getLeader().getName());
  695. +                       Arena2x2.this.fights.put(this.arena.id, this.pairOne.getLeader().getName() + " vs " + this.pairTwo.getLeader().getName());
  696. +                       break;
  697. +                   }
  698. +           }
  699. +       }
  700. +  
  701. +       private class Arena
  702. +       {
  703. +           protected int x;
  704. +           protected int y;
  705. +           protected int z;
  706. +           protected boolean isFree = true;
  707. +           int id;
  708. +  
  709. +           public Arena(int id, int x, int y, int z)
  710. +           {
  711. +               this.id = id;
  712. +               this.x = x;
  713. +               this.y = y;
  714. +               this.z = z;
  715. +           }
  716. +  
  717. +           public void setFree(boolean val)
  718. +           {
  719. +               isFree = val;
  720. +           }
  721. +       }
  722. +  
  723. +       protected class countdown implements Runnable
  724. +       {
  725. +           private final Player _player;
  726. +           private final int _time;
  727. +  
  728. +           public countdown(Player player, int time)
  729. +           {
  730. +               _time = time;
  731. +               _player = player;
  732. +           }
  733. +  
  734. +           @Override
  735. +           public void run()
  736. +           {
  737. +               if (_player.isOnline())
  738. +               {
  739. +  
  740. +                   switch (_time)
  741. +                   {
  742. +                       case 60:
  743. +                       case 120:
  744. +                       case 180:
  745. +                       case 240:
  746. +                       case 300:
  747. +                           if (_player.isOnline())
  748. +                           {
  749. +                               _player.sendPacket(new ExShowScreenMessage("The battle starts in " + _time + " second(s)..", 4000));
  750. +                               _player.sendMessage(_time + " second(s) to start the battle.");
  751. +                               _player.setIsParalyzed(true);
  752. +                           }
  753. +                           break;
  754. +                       case 45:
  755. +                           if (_player.isOnline())
  756. +                           {
  757. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  758. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  759. +                               _player.setIsParalyzed(true);
  760. +                               _player.broadcastPacket(new SocialAction(_player, 1));
  761. +                           }
  762. +                           break;
  763. +                       case 27:
  764. +                           if (_player.isOnline())
  765. +                           {
  766. +                               _player.sendPacket(new ExShowScreenMessage("The battle starts in 30 second(s)..", 4000));
  767. +                               _player.sendMessage("30 second(s) to start the battle!");
  768. +                               _player.setIsParalyzed(true);
  769. +                               _player.broadcastPacket(new SocialAction(_player, 2));
  770. +                           }
  771. +                           break;
  772. +                       case 20:
  773. +                           if (_player.isOnline())
  774. +                           {
  775. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  776. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  777. +                               _player.setIsParalyzed(true);
  778. +                              
  779. +                           }
  780. +                           break;
  781. +                       case 15:
  782. +                           if (_player.isOnline())
  783. +                           {
  784. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  785. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  786. +                               _player.setIsParalyzed(true);
  787. +                               _player.broadcastPacket(new SocialAction(_player, 9));
  788. +                           }
  789. +                           break;
  790. +                       case 10:
  791. +                           if (_player.isOnline())
  792. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  793. +                           _player.setIsParalyzed(true);
  794. +                           _player.broadcastPacket(new SocialAction(_player, 5));
  795. +                           break;
  796. +                       case 5:
  797. +                           if (_player.isOnline())
  798. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  799. +                           _player.setIsParalyzed(true);
  800. +                           break;
  801. +                       case 4:
  802. +                           if (_player.isOnline())
  803. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  804. +                           _player.setIsParalyzed(true);
  805. +                           break;
  806. +                       case 3:
  807. +                           if (_player.isOnline())
  808. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  809. +                           _player.setIsParalyzed(true);
  810. +                           break;
  811. +                       case 2:
  812. +                           if (_player.isOnline())
  813. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  814. +                           _player.setIsParalyzed(true);
  815. +                           break;
  816. +                       case 1:
  817. +                           if (_player.isOnline())
  818. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  819. +                           _player.setIsParalyzed(false);
  820. +                           break;
  821. +                   }
  822. +                   if (_time > 1)
  823. +                       ThreadPool.schedule(new countdown(_player, _time - 1), 1000L);
  824. +               }
  825. +           }
  826. +       }
  827. +      
  828. +  
  829. +  
  830. +       private static class SingletonHolder
  831. +       {
  832. +           protected static final Arena2x2 INSTANCE = new Arena2x2();
  833. +       }
  834. +   }
  835. +  
  836.  
  837. Index: package l2jban.events;Arena4x4.java
  838. ===================================================================
  839. --- package l2jban.events;Arena4x4.java (revision 84)
  840. +++ package l2jban.events;Arena4x4.java (working copy)
  841.  
  842. +   package l2jban.events;
  843. +  
  844. +   import java.util.ArrayList;
  845. +   import java.util.HashMap;
  846. +   import java.util.List;
  847. +   import java.util.Map;
  848. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  849. +   import net.sf.l2j.commons.random.Rnd;
  850. +   import net.sf.l2j.Config;
  851. +   import net.sf.l2j.gameserver.model.L2Effect;
  852. +   import net.sf.l2j.gameserver.model.World;
  853. +   import net.sf.l2j.gameserver.model.actor.Player;
  854. +   import net.sf.l2j.gameserver.model.actor.Summon;
  855. +   import net.sf.l2j.gameserver.model.actor.instance.Pet;
  856. +   import net.sf.l2j.gameserver.enums.actors.ClassId;
  857. +   import net.sf.l2j.gameserver.enums.ZoneId;
  858. +   import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  859. +   import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
  860. +  
  861. +  
  862. +   public class Arena4x4 implements Runnable
  863. +   {
  864. +       public static List<Pair> registered;
  865. +       int free = Config.ARENA_EVENT_COUNT_4X4;
  866. +  
  867. +       Arena[] arenas = new Arena[Config.ARENA_EVENT_COUNT_4X4];
  868. +  
  869. +       Map<Integer, String> fights = new HashMap<>(Config.ARENA_EVENT_COUNT_4X4);
  870. +  
  871. +       public Arena4x4()
  872. +       {
  873. +           registered = new ArrayList<>();
  874. +  
  875. +           for (int i = 0; i < Config.ARENA_EVENT_COUNT_4X4; i++)
  876. +           {
  877. +               int[] coord = Config.ARENA_EVENT_LOCS_4X4[i];
  878. +               arenas[i] = new Arena(i, coord[0], coord[1], coord[2]);
  879. +           }
  880. +       }
  881. +  
  882. +       public static Arena4x4 getInstance()
  883. +       {
  884. +           return SingletonHolder.INSTANCE;
  885. +       }
  886. +  
  887. +       public boolean register(Player player, Player assist, Player assist2, Player assist3)
  888. +       {
  889. +           for (Pair p : registered)
  890. +           {
  891. +               if (p.getLeader() == player || p.getAssist() == player)
  892. +               {
  893. +                   player.sendMessage("Tournament: You already registered!");
  894. +                   return false;
  895. +               }
  896. +               if (p.getLeader() == assist || p.getAssist() == assist)
  897. +               {
  898. +                   player.sendMessage("Tournament: " + assist.getName() + " already registered!");
  899. +                   return false;
  900. +               }
  901. +               if (p.getLeader() == assist2 || p.getAssist2() == assist2)
  902. +               {
  903. +                   player.sendMessage("Tournament: " + assist2.getName() + " already registered!");
  904. +                   return false;
  905. +               }
  906. +               if (p.getLeader() == assist3 || p.getAssist3() == assist3)
  907. +               {
  908. +                   player.sendMessage("Tournament: " + assist3.getName() + " already registered!");
  909. +                   return false;
  910. +               }
  911. +           }
  912. +           return registered.add(new Pair(player, assist, assist2, assist3));
  913. +       }
  914. +  
  915. +       public boolean isRegistered(Player player)
  916. +       {
  917. +           for (Pair p : registered)
  918. +               if (p.getLeader() == player || p.getAssist() == player || p.getAssist2() == player || p.getAssist3() == player)
  919. +                   return true;
  920. +           return false;
  921. +       }
  922. +  
  923. +       public Map<Integer, String> getFights()
  924. +       {
  925. +           return fights;
  926. +       }
  927. +  
  928. +       public boolean remove(Player player)
  929. +       {
  930. +           for (Pair p : registered)
  931. +               if (p.getLeader() == player || p.getAssist() == player || p.getAssist2() == player || p.getAssist3() == player)
  932. +               {
  933. +                   p.removeMessage();
  934. +                   registered.remove(p);
  935. +                   return true;
  936. +               }
  937. +           return false;
  938. +       }
  939. +  
  940. +       @Override
  941. +       public synchronized void run()
  942. +       {
  943. +           for (;;)
  944. +               if (registered.size() < 2 || free == 0)
  945. +                   try
  946. +           {
  947. +                       Thread.sleep(Config.ARENA_CALL_INTERVAL * 1000);
  948. +  
  949. +           }
  950. +           catch (InterruptedException localInterruptedException)
  951. +           {
  952. +           }
  953. +               else
  954. +               {
  955. +                   List<Pair> opponents = selectOpponents();
  956. +                   if (opponents != null && opponents.size() == 2)
  957. +                   {
  958. +                       Thread T = new Thread(new EvtArenaTask(opponents));
  959. +                       T.setDaemon(true);
  960. +                       T.start();
  961. +                   }
  962. +  
  963. +                   try
  964. +                   {
  965. +                       Thread.sleep(Config.ARENA_CALL_INTERVAL * 1000);
  966. +                   }
  967. +                   catch (InterruptedException localInterruptedException1)
  968. +                   {
  969. +                   }
  970. +               }
  971. +       }
  972. +  
  973. +       @SuppressWarnings("null")
  974. +       private List<Pair> selectOpponents()
  975. +       {
  976. +           List<Pair> opponents = new ArrayList<>();
  977. +           Pair pairOne = null;
  978. +           Pair pairTwo = null;
  979. +           int tries = 3;
  980. +           do
  981. +           {
  982. +               int first = 0;
  983. +               int second = 0;
  984. +               if (getRegisteredCount() < 2)
  985. +                   return opponents;
  986. +               if (pairOne == null)
  987. +               {
  988. +                   first = Rnd.get(getRegisteredCount());
  989. +                   pairOne = registered.get(first);
  990. +                   if (pairOne.check())
  991. +                   {
  992. +                       opponents.add(0, pairOne);
  993. +                       registered.remove(first);
  994. +                   }
  995. +                   else
  996. +                   {
  997. +                       pairOne = null;
  998. +                       registered.remove(first);
  999. +                       return null;
  1000. +                   }
  1001. +               }
  1002. +  
  1003. +               if (pairTwo == null)
  1004. +               {
  1005. +                   second = Rnd.get(getRegisteredCount());
  1006. +                   pairTwo = registered.get(second);
  1007. +                   if (pairTwo.check())
  1008. +                   {
  1009. +                       opponents.add(1, pairTwo);
  1010. +                       registered.remove(second);
  1011. +                   }
  1012. +                   else
  1013. +                   {
  1014. +                       pairTwo = null;
  1015. +                       registered.remove(second);
  1016. +                       return null;
  1017. +                   }
  1018. +               }
  1019. +  
  1020. +               if (pairOne != null && pairTwo != null)
  1021. +                   break;
  1022. +               tries--;
  1023. +           }
  1024. +           while (tries > 0);
  1025. +           return opponents;
  1026. +       }
  1027. +  
  1028. +       public int getRegisteredCount()
  1029. +       {
  1030. +           return registered.size();
  1031. +       }
  1032. +  
  1033. +       private class Pair
  1034. +       {
  1035. +           Player leader;
  1036. +           Player assist;
  1037. +           Player assist2;
  1038. +           Player assist3;
  1039. +  
  1040. +           public Pair(Player leader, Player assist, Player assist2, Player assist3)
  1041. +           {
  1042. +               this.leader = leader;
  1043. +               this.assist = assist;
  1044. +               this.assist2 = assist2;
  1045. +               this.assist3 = assist3;
  1046. +           }
  1047. +  
  1048. +           public Player getAssist()
  1049. +           {
  1050. +               return assist;
  1051. +           }
  1052. +  
  1053. +           public Player getAssist2()
  1054. +           {
  1055. +               return assist2;
  1056. +           }
  1057. +  
  1058. +           public Player getAssist3()
  1059. +           {
  1060. +               return assist3;
  1061. +           }
  1062. +  
  1063. +           public Player getLeader()
  1064. +           {
  1065. +               return leader;
  1066. +           }
  1067. +  
  1068. +           public boolean check()
  1069. +           {
  1070. +               if (leader == null || !leader.isOnline())
  1071. +               {
  1072. +                   if (assist != null || assist.isOnline())
  1073. +                       assist.sendMessage("Tournament: You participation in Event was Canceled.");
  1074. +                   if (assist2 != null || assist2.isOnline())
  1075. +                       assist2.sendMessage("Tournament: You participation in Event was Canceled.");
  1076. +                   if (assist3 != null || assist3.isOnline())
  1077. +                       assist3.sendMessage("Tournament: You participation in Event was Canceled.");
  1078. +                   return false;
  1079. +               }
  1080. +               if ((assist == null || !assist.isOnline() || assist2 == null || !assist2.isOnline() || assist3 == null || !assist3.isOnline()) && leader != null && leader.isOnline())
  1081. +               {
  1082. +                   leader.sendMessage("Tournament: You participation in Event was Canceled.");
  1083. +  
  1084. +                   if (assist != null || assist.isOnline())
  1085. +                       assist.sendMessage("Tournament: You participation in Event was Canceled.");
  1086. +                   if (assist2 != null || assist2.isOnline())
  1087. +                       assist2.sendMessage("Tournament: You participation in Event was Canceled.");
  1088. +                   if (assist3 != null || assist3.isOnline())
  1089. +                       assist3.sendMessage("Tournament: You participation in Event was Canceled.");
  1090. +                   return false;
  1091. +               }
  1092. +               return true;
  1093. +           }
  1094. +  
  1095. +           public boolean isDead()
  1096. +           {
  1097. +               if ((leader == null || leader.isDead() || !leader.isOnline() || !leader.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !leader.isArenaAttack()) && (assist == null || assist.isDead() || !assist.isOnline() || !assist.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist.isArenaAttack()) && (assist2 == null || assist2.isDead() || !assist2.isOnline() || !assist2.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist2.isArenaAttack()) && (assist3 == null || assist3.isDead() || !assist3.isOnline() || !assist3.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist3.isArenaAttack()))
  1098. +                   return false;
  1099. +               return !leader.isDead() || !assist.isDead() || !assist2.isDead() || !assist3.isDead();
  1100. +           }
  1101. +  
  1102. +           public boolean isAlive()
  1103. +           {
  1104. +               if ((leader == null || leader.isDead() || !leader.isOnline() || !leader.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !leader.isArenaAttack()) && (assist == null || assist.isDead() || !assist.isOnline() || !assist.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist.isArenaAttack()) && (assist2 == null || assist2.isDead() || !assist2.isOnline() || !assist2.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist2.isArenaAttack()) && (assist3 == null || assist3.isDead() || !assist3.isOnline() || !assist3.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist3.isArenaAttack()))
  1105. +                   return false;
  1106. +               return !leader.isDead() || !assist.isDead() || !assist2.isDead() || !assist3.isDead();
  1107. +           }
  1108. +  
  1109. +           public void teleportTo(int x, int y, int z)
  1110. +           {
  1111. +               if (leader != null && leader.isOnline())
  1112. +               {
  1113. +                   leader.getAppearance().setInvisible();
  1114. +                   leader.setCurrentCp(leader.getMaxCp());
  1115. +                   leader.setCurrentHp(leader.getMaxHp());
  1116. +                   leader.setCurrentMp(leader.getMaxMp());
  1117. +  
  1118. +                   if (leader.isInObserverMode())
  1119. +                   {
  1120. +                       leader.setLastCords(x, y, z);
  1121. +                       leader.leaveOlympiadObserverMode();
  1122. +                   }
  1123. +                   else
  1124. +                       leader.teleportTo(x, y, z, 0);
  1125. +                   leader.broadcastUserInfo();
  1126. +               }
  1127. +  
  1128. +               if (assist != null && assist.isOnline())
  1129. +               {
  1130. +                   assist.getAppearance().setInvisible();
  1131. +                   assist.setCurrentCp(assist.getMaxCp());
  1132. +                   assist.setCurrentHp(assist.getMaxHp());
  1133. +                   assist.setCurrentMp(assist.getMaxMp());
  1134. +  
  1135. +                   if (assist.isInObserverMode())
  1136. +                   {
  1137. +                       assist.setLastCords(x, y + 50, z);
  1138. +                       assist.leaveOlympiadObserverMode();
  1139. +                   }
  1140. +                   else
  1141. +                       assist.teleportTo(x, y + 50, z, 0);
  1142. +                   assist.broadcastUserInfo();
  1143. +               }
  1144. +  
  1145. +               if (assist2 != null && assist2.isOnline())
  1146. +               {
  1147. +                   assist2.getAppearance().setInvisible();
  1148. +                   assist2.setCurrentCp(assist2.getMaxCp());
  1149. +                   assist2.setCurrentHp(assist2.getMaxHp());
  1150. +                   assist2.setCurrentMp(assist2.getMaxMp());
  1151. +  
  1152. +                   if (assist2.isInObserverMode())
  1153. +                   {
  1154. +                       assist2.setLastCords(x, y - 100, z);
  1155. +                       assist2.leaveOlympiadObserverMode();
  1156. +                   }
  1157. +                   else
  1158. +                       assist2.teleportTo(x, y - 100, z, 0);
  1159. +                   assist2.broadcastUserInfo();
  1160. +               }
  1161. +  
  1162. +               if (assist3 != null && assist3.isOnline())
  1163. +               {
  1164. +                   assist3.getAppearance().setInvisible();
  1165. +                   assist3.setCurrentCp(assist3.getMaxCp());
  1166. +                   assist3.setCurrentHp(assist3.getMaxHp());
  1167. +                   assist3.setCurrentMp(assist3.getMaxMp());
  1168. +  
  1169. +                   if (assist3.isInObserverMode())
  1170. +                   {
  1171. +                       assist3.setLastCords(x, y - 50, z);
  1172. +                       assist3.leaveOlympiadObserverMode();
  1173. +                   }
  1174. +                   else
  1175. +                       assist3.teleportTo(x, y - 50, z, 0);
  1176. +                   assist3.broadcastUserInfo();
  1177. +               }
  1178. +           }
  1179. +  
  1180. +           public void EventTitle(String title, String color)
  1181. +           {
  1182. +               if (leader != null && leader.isOnline())
  1183. +               {
  1184. +                   leader.setTitle(title);
  1185. +                   leader.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  1186. +                   leader.broadcastUserInfo();
  1187. +                   leader.broadcastTitleInfo();
  1188. +               }
  1189. +  
  1190. +               if (assist != null && assist.isOnline())
  1191. +               {
  1192. +                   assist.setTitle(title);
  1193. +                   assist.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  1194. +                   assist.broadcastUserInfo();
  1195. +                   assist.broadcastTitleInfo();
  1196. +               }
  1197. +               if (assist2 != null && assist2.isOnline())
  1198. +               {
  1199. +                   assist2.setTitle(title);
  1200. +                   assist2.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  1201. +                   assist2.broadcastUserInfo();
  1202. +                   assist2.broadcastTitleInfo();
  1203. +               }
  1204. +  
  1205. +               if (assist3 != null && assist3.isOnline())
  1206. +               {
  1207. +                   assist3.setTitle(title);
  1208. +                   assist3.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  1209. +                   assist3.broadcastUserInfo();
  1210. +                   assist3.broadcastTitleInfo();
  1211. +               }
  1212. +           }
  1213. +  
  1214. +           public void saveTitle()
  1215. +           {
  1216. +               if (leader != null && leader.isOnline())
  1217. +               {
  1218. +                   leader._originalTitleColorTournament = leader.getAppearance().getTitleColor();
  1219. +                   leader._originalTitleTournament = leader.getTitle();
  1220. +               }
  1221. +  
  1222. +               if (assist != null && assist.isOnline())
  1223. +               {
  1224. +                   assist._originalTitleColorTournament = assist.getAppearance().getTitleColor();
  1225. +                   assist._originalTitleTournament = assist.getTitle();
  1226. +               }
  1227. +  
  1228. +               if (assist2 != null && assist2.isOnline())
  1229. +               {
  1230. +                   assist2._originalTitleColorTournament = assist2.getAppearance().getTitleColor();
  1231. +                   assist2._originalTitleTournament = assist2.getTitle();
  1232. +               }
  1233. +  
  1234. +               if (assist3 != null && assist3.isOnline())
  1235. +               {
  1236. +                   assist3._originalTitleColorTournament = assist3.getAppearance().getTitleColor();
  1237. +                   assist3._originalTitleTournament = assist3.getTitle();
  1238. +               }
  1239. +           }
  1240. +  
  1241. +           public void backTitle()
  1242. +           {
  1243. +               if (leader != null && leader.isOnline())
  1244. +               {
  1245. +                   leader.setTitle(leader._originalTitleTournament);
  1246. +                   leader.getAppearance().setTitleColor(leader._originalTitleColorTournament);
  1247. +                   leader.broadcastUserInfo();
  1248. +                   leader.broadcastTitleInfo();
  1249. +               }
  1250. +  
  1251. +               if (assist != null && assist.isOnline())
  1252. +               {
  1253. +                   assist.setTitle(assist._originalTitleTournament);
  1254. +                   assist.getAppearance().setTitleColor(assist._originalTitleColorTournament);
  1255. +                   assist.broadcastUserInfo();
  1256. +                   assist.broadcastTitleInfo();
  1257. +               }
  1258. +  
  1259. +               if (assist2 != null && assist2.isOnline())
  1260. +               {
  1261. +                   assist2.setTitle(assist2._originalTitleTournament);
  1262. +                   assist2.getAppearance().setTitleColor(assist2._originalTitleColorTournament);
  1263. +                   assist2.broadcastUserInfo();
  1264. +                   assist2.broadcastTitleInfo();
  1265. +               }
  1266. +  
  1267. +               if (assist3 != null && assist3.isOnline())
  1268. +               {
  1269. +                   assist3.setTitle(assist3._originalTitleTournament);
  1270. +                   assist3.getAppearance().setTitleColor(assist3._originalTitleColorTournament);
  1271. +                   assist3.broadcastUserInfo();
  1272. +                   assist3.broadcastTitleInfo();
  1273. +               }
  1274. +           }
  1275. +  
  1276. +           public void rewards()
  1277. +           {
  1278. +               if (leader != null && leader.isOnline())
  1279. +                  
  1280. +          
  1281. +                       leader.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_4X4, leader, true);
  1282. +  
  1283. +               if (assist != null && assist.isOnline())
  1284. +                       assist.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_4X4, assist, true);
  1285. +              
  1286. +               if (assist2 != null && assist2.isOnline())
  1287. +                       assist2.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_4X4, assist2, true);
  1288. +              
  1289. +               if (assist3 != null && assist3.isOnline())
  1290. +                   assist3.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_4X4, assist3, true);
  1291. +               sendPacket("Congratulations, your team won the event!", 5);
  1292. +           }
  1293. +  
  1294. +           public void rewardsLost()
  1295. +           {
  1296. +               if (leader != null && leader.isOnline())
  1297. +  
  1298. +                   leader.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_4X4, leader, true);
  1299. +               if (assist != null && assist.isOnline())
  1300. +  
  1301. +                   assist.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_4X4, assist, true);
  1302. +               if (assist2 != null && assist2.isOnline())
  1303. +  
  1304. +                   assist2.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_4X4, assist2, true);
  1305. +               if (assist3 != null && assist3.isOnline())
  1306. +                   assist3.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_4X4, assist3, true);
  1307. +              
  1308. +               sendPacket("your team lost the event! =(", 5);
  1309. +           }
  1310. +  
  1311. +           public void setInTournamentEvent(boolean val)
  1312. +           {
  1313. +               if (leader != null && leader.isOnline())
  1314. +                   leader.setInArenaEvent(val);
  1315. +               if (assist != null && assist.isOnline())
  1316. +                   assist.setInArenaEvent(val);
  1317. +               if (assist2 != null && assist2.isOnline())
  1318. +                   assist2.setInArenaEvent(val);
  1319. +               if (assist3 != null && assist3.isOnline())
  1320. +                   assist3.setInArenaEvent(val);
  1321. +           }
  1322. +  
  1323. +           public void removeMessage()
  1324. +           {
  1325. +               if (leader != null && leader.isOnline())
  1326. +               {
  1327. +                   leader.sendMessage("Tournament: Your participation has been removed.");
  1328. +                   leader.setArenaProtection(false);
  1329. +                   leader.setArena4x4(false);
  1330. +               }
  1331. +  
  1332. +               if (assist != null && assist.isOnline())
  1333. +               {
  1334. +                   assist.sendMessage("Tournament: Your participation has been removed.");
  1335. +                   assist.setArenaProtection(false);
  1336. +                   assist.setArena4x4(false);
  1337. +               }
  1338. +  
  1339. +               if (assist2 != null && assist2.isOnline())
  1340. +               {
  1341. +                   assist2.sendMessage("Tournament: Your participation has been removed.");
  1342. +                   assist2.setArenaProtection(false);
  1343. +                   assist2.setArena4x4(false);
  1344. +               }
  1345. +  
  1346. +               if (assist3 != null && assist3.isOnline())
  1347. +               {
  1348. +                   assist3.sendMessage("Tournament: Your participation has been removed.");
  1349. +                   assist3.setArenaProtection(false);
  1350. +                   assist3.setArena4x4(false);
  1351. +               }
  1352. +           }
  1353. +  
  1354. +           public void setArenaProtection(boolean val)
  1355. +           {
  1356. +               if (leader != null && leader.isOnline())
  1357. +               {
  1358. +                   leader.setArenaProtection(val);
  1359. +                   leader.setArena4x4(val);
  1360. +               }
  1361. +  
  1362. +               if (assist != null && assist.isOnline())
  1363. +               {
  1364. +                   assist.setArenaProtection(val);
  1365. +                   assist.setArena4x4(val);
  1366. +               }
  1367. +               if (assist2 != null && assist2.isOnline())
  1368. +               {
  1369. +                   assist2.setArenaProtection(val);
  1370. +                   assist2.setArena4x4(val);
  1371. +               }
  1372. +  
  1373. +               if (assist3 != null && assist3.isOnline())
  1374. +               {
  1375. +                   assist3.setArenaProtection(val);
  1376. +                   assist3.setArena4x4(val);
  1377. +               }
  1378. +           }
  1379. +  
  1380. +           public void revive()
  1381. +           {
  1382. +               if (leader != null && leader.isOnline() && leader.isDead())
  1383. +                   leader.doRevive();
  1384. +               if (assist != null && assist.isOnline() && assist.isDead())
  1385. +                   assist.doRevive();
  1386. +               if (assist2 != null && assist2.isOnline() && assist2.isDead())
  1387. +                   assist2.doRevive();
  1388. +               if (assist3 != null && assist3.isOnline() && assist3.isDead())
  1389. +                   assist3.doRevive();
  1390. +           }
  1391. +  
  1392. +           public void setImobilised(boolean val)
  1393. +           {
  1394. +               if (leader != null && leader.isOnline())
  1395. +               {
  1396. +                   leader.setIsInvul(val);
  1397. +                   leader.setStopArena(val);
  1398. +               }
  1399. +               if (assist != null && assist.isOnline())
  1400. +               {
  1401. +                   assist.setIsInvul(val);
  1402. +                   assist.setStopArena(val);
  1403. +               }
  1404. +               if (assist2 != null && assist2.isOnline())
  1405. +               {
  1406. +                   assist2.setIsInvul(val);
  1407. +                   assist2.setStopArena(val);
  1408. +               }
  1409. +               if (assist3 != null && assist3.isOnline())
  1410. +               {
  1411. +                   assist3.setIsInvul(val);
  1412. +                   assist3.setStopArena(val);
  1413. +               }
  1414. +           }
  1415. +  
  1416. +           public void setArenaAttack(boolean val)
  1417. +           {
  1418. +               if (leader != null && leader.isOnline())
  1419. +               {
  1420. +                   leader.setArenaAttack(val);
  1421. +                   leader.broadcastUserInfo();
  1422. +               }
  1423. +  
  1424. +               if (assist != null && assist.isOnline())
  1425. +               {
  1426. +                   assist.setArenaAttack(val);
  1427. +                   assist.broadcastUserInfo();
  1428. +               }
  1429. +  
  1430. +               if (assist2 != null && assist2.isOnline())
  1431. +               {
  1432. +                   assist2.setArenaAttack(val);
  1433. +                   assist2.broadcastUserInfo();
  1434. +               }
  1435. +  
  1436. +               if (assist3 != null && assist3.isOnline())
  1437. +               {
  1438. +                   assist3.setArenaAttack(val);
  1439. +                   assist3.broadcastUserInfo();
  1440. +               }
  1441. +           }
  1442. +  
  1443. +  
  1444. +  
  1445. +           public void removePet()
  1446. +           {
  1447. +               if (leader != null && leader.isOnline())
  1448. +               {
  1449. +  
  1450. +                   if (leader.getSummon() != null)
  1451. +                   {
  1452. +                       Summon summon = leader.getSummon();
  1453. +                       if (summon != null)
  1454. +                           summon.unSummon(summon.getOwner());
  1455. +                       if (summon instanceof Pet)
  1456. +                           summon.unSummon(leader);
  1457. +                   }
  1458. +                   if (leader.getMountType() == 1 || leader.getMountType() == 2)
  1459. +                       leader.dismount();
  1460. +               }
  1461. +               if (assist != null && assist.isOnline())
  1462. +               {
  1463. +  
  1464. +                   if (assist.getSummon() != null)
  1465. +                   {
  1466. +                       Summon summon = assist.getSummon();
  1467. +                       if (summon != null)
  1468. +                           summon.unSummon(summon.getOwner());
  1469. +                       if (summon instanceof Pet)
  1470. +                           summon.unSummon(assist);
  1471. +                   }
  1472. +                   if (assist.getMountType() == 1 || assist.getMountType() == 2)
  1473. +                       assist.dismount();
  1474. +               }
  1475. +  
  1476. +               if (assist2 != null && assist2.isOnline())
  1477. +               {
  1478. +  
  1479. +                   if (assist2.getSummon() != null)
  1480. +                   {
  1481. +                       Summon summon = assist2.getSummon();
  1482. +                       if (summon != null)
  1483. +                           summon.unSummon(summon.getOwner());
  1484. +                       if (summon instanceof Pet)
  1485. +                           summon.unSummon(assist2);
  1486. +                   }
  1487. +  
  1488. +                   if (assist2.getMountType() == 1 || assist2.getMountType() == 2)
  1489. +                       assist2.dismount();
  1490. +               }
  1491. +  
  1492. +               if (assist3 != null && assist3.isOnline())
  1493. +               {
  1494. +  
  1495. +                   if (assist3.getSummon() != null)
  1496. +                   {
  1497. +                       Summon summon = assist3.getSummon();
  1498. +                       if (summon != null)
  1499. +                           summon.unSummon(summon.getOwner());
  1500. +                       if (summon instanceof Pet)
  1501. +                           summon.unSummon(assist3);
  1502. +                   }
  1503. +                   if (assist3.getMountType() == 1 || assist3.getMountType() == 2)
  1504. +                       assist3.dismount();
  1505. +               }
  1506. +  
  1507. +          
  1508. +           }
  1509. +  
  1510. +           public void removeSkills()
  1511. +           {
  1512. +               if (leader.getClassId() != ClassId.SHILLIEN_ELDER && leader.getClassId() != ClassId.SHILLIEN_SAINT && leader.getClassId() != ClassId.BISHOP && leader.getClassId() != ClassId.CARDINAL && leader.getClassId() != ClassId.ELVEN_ELDER && leader.getClassId() != ClassId.EVAS_SAINT)
  1513. +                   for (L2Effect effect : leader.getAllEffects())
  1514. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  1515. +                           leader.stopSkillEffects(effect.getSkill().getId());
  1516. +               if (assist.getClassId() != ClassId.SHILLIEN_ELDER && assist.getClassId() != ClassId.SHILLIEN_SAINT && assist.getClassId() != ClassId.BISHOP && assist.getClassId() != ClassId.CARDINAL && assist.getClassId() != ClassId.ELVEN_ELDER && assist.getClassId() != ClassId.EVAS_SAINT)
  1517. +                   for (L2Effect effect : assist.getAllEffects())
  1518. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  1519. +                           assist.stopSkillEffects(effect.getSkill().getId());
  1520. +               if (assist2.getClassId() != ClassId.SHILLIEN_ELDER && assist2.getClassId() != ClassId.SHILLIEN_SAINT && assist2.getClassId() != ClassId.BISHOP && assist2.getClassId() != ClassId.CARDINAL && assist2.getClassId() != ClassId.ELVEN_ELDER && assist2.getClassId() != ClassId.EVAS_SAINT)
  1521. +                   for (L2Effect effect : assist2.getAllEffects())
  1522. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  1523. +                           assist2.stopSkillEffects(effect.getSkill().getId());
  1524. +               if (assist3.getClassId() != ClassId.SHILLIEN_ELDER && assist3.getClassId() != ClassId.SHILLIEN_SAINT && assist3.getClassId() != ClassId.BISHOP && assist3.getClassId() != ClassId.CARDINAL && assist3.getClassId() != ClassId.ELVEN_ELDER && assist3.getClassId() != ClassId.EVAS_SAINT)
  1525. +                   for (L2Effect effect : assist3.getAllEffects())
  1526. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  1527. +                           assist3.stopSkillEffects(effect.getSkill().getId());
  1528. +           }
  1529. +  
  1530. +           public void sendPacket(String message, int duration)
  1531. +           {
  1532. +               if (leader != null && leader.isOnline())
  1533. +                   leader.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  1534. +               if (assist != null && assist.isOnline())
  1535. +                   assist.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  1536. +               if (assist2 != null && assist2.isOnline())
  1537. +                   assist2.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  1538. +               if (assist3 != null && assist3.isOnline())
  1539. +                   assist3.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  1540. +           }
  1541. +  
  1542. +           public void inicarContagem(int duration)
  1543. +           {
  1544. +               if (leader != null && leader.isOnline())
  1545. +                   ThreadPool.schedule(new Arena4x4.countdown(leader, duration), 0L);
  1546. +               if (assist != null && assist.isOnline())
  1547. +                   ThreadPool.schedule(new Arena4x4.countdown(assist, duration), 0L);
  1548. +               if (assist2 != null && assist2.isOnline())
  1549. +                   ThreadPool.schedule(new Arena4x4.countdown(assist2, duration), 0L);
  1550. +               if (assist3 != null && assist3.isOnline())
  1551. +                   ThreadPool.schedule(new Arena4x4.countdown(assist3, duration), 0L);
  1552. +           }
  1553. +  
  1554. +           public void sendPacketinit(String message, int duration)
  1555. +           {
  1556. +               if (leader != null && leader.isOnline())
  1557. +               {
  1558. +                   leader.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  1559. +  
  1560. +                   if ((leader.getClassId() == ClassId.SHILLIEN_ELDER || leader.getClassId() == ClassId.SHILLIEN_SAINT || leader.getClassId() == ClassId.BISHOP || leader.getClassId() == ClassId.CARDINAL || leader.getClassId() == ClassId.ELVEN_ELDER || leader.getClassId() == ClassId.EVAS_SAINT) && Config.bs_COUNT_4X4 == 0)
  1561. +                       ThreadPool.schedule(new Runnable()
  1562. +                       {
  1563. +  
  1564. +                           @Override
  1565. +                           public void run()
  1566. +                           {
  1567. +                               leader.getClient().closeNow();
  1568. +                           }
  1569. +                       }, 100L);
  1570. +               }
  1571. +  
  1572. +               if (assist != null && assist.isOnline())
  1573. +               {
  1574. +                   assist.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  1575. +  
  1576. +                   if ((assist.getClassId() == ClassId.SHILLIEN_ELDER || assist.getClassId() == ClassId.SHILLIEN_SAINT || assist.getClassId() == ClassId.BISHOP || assist.getClassId() == ClassId.CARDINAL || assist.getClassId() == ClassId.ELVEN_ELDER || assist.getClassId() == ClassId.EVAS_SAINT) && Config.bs_COUNT_4X4 == 0)
  1577. +                       ThreadPool.schedule(new Runnable()
  1578. +                       {
  1579. +  
  1580. +                           @Override
  1581. +                           public void run()
  1582. +                           {
  1583. +                               assist.getClient().closeNow();
  1584. +                           }
  1585. +                       }, 100L);
  1586. +               }
  1587. +  
  1588. +               if (assist2 != null && assist2.isOnline())
  1589. +               {
  1590. +                   assist2.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  1591. +                   if ((assist2.getClassId() == ClassId.SHILLIEN_ELDER || assist2.getClassId() == ClassId.SHILLIEN_SAINT || assist2.getClassId() == ClassId.BISHOP || assist2.getClassId() == ClassId.CARDINAL || assist2.getClassId() == ClassId.ELVEN_ELDER || assist2.getClassId() == ClassId.EVAS_SAINT) && Config.bs_COUNT_4X4 == 0)
  1592. +                       ThreadPool.schedule(new Runnable()
  1593. +                       {
  1594. +  
  1595. +                           @Override
  1596. +                           public void run()
  1597. +                           {
  1598. +                               assist2.getClient().closeNow();
  1599. +                           }
  1600. +                       }, 100L);
  1601. +               }
  1602. +  
  1603. +               if (assist3 != null && assist3.isOnline())
  1604. +               {
  1605. +                   assist3.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  1606. +                   if ((assist3.getClassId() == ClassId.SHILLIEN_ELDER || assist3.getClassId() == ClassId.SHILLIEN_SAINT || assist3.getClassId() == ClassId.BISHOP || assist3.getClassId() == ClassId.CARDINAL || assist3.getClassId() == ClassId.ELVEN_ELDER || assist3.getClassId() == ClassId.EVAS_SAINT) && Config.bs_COUNT_4X4 == 0)
  1607. +                       ThreadPool.schedule(new Runnable()
  1608. +                       {
  1609. +  
  1610. +                           @Override
  1611. +                           public void run()
  1612. +                           {
  1613. +                               assist3.getClient().closeNow();
  1614. +                           }
  1615. +                       }, 100L);
  1616. +               }
  1617. +           }
  1618. +       }
  1619. +  
  1620. +       private class EvtArenaTask implements Runnable
  1621. +       {
  1622. +           private final Arena4x4.Pair pairOne;
  1623. +           private final Arena4x4.Pair pairTwo;
  1624. +           private final int pOneX;
  1625. +           private final int pOneY;
  1626. +           private final int pOneZ;
  1627. +           private final int pTwoX;
  1628. +           private final int pTwoY;
  1629. +           private final int pTwoZ;
  1630. +           private Arena4x4.Arena arena;
  1631. +  
  1632. +           public EvtArenaTask(List<Pair> opponents)
  1633. +           {
  1634. +               pairOne = opponents.get(0);
  1635. +               pairTwo = opponents.get(1);
  1636. +               Player leader = pairOne.getLeader();
  1637. +               pOneX = leader.getX();
  1638. +               pOneY = leader.getY();
  1639. +               pOneZ = leader.getZ();
  1640. +               leader = pairTwo.getLeader();
  1641. +               pTwoX = leader.getX();
  1642. +               pTwoY = leader.getY();
  1643. +               pTwoZ = leader.getZ();
  1644. +           }
  1645. +  
  1646. +           @Override
  1647. +           public void run()
  1648. +           {
  1649. +               free -= 1;
  1650. +               pairOne.saveTitle();
  1651. +               pairTwo.saveTitle();
  1652. +               portPairsToArena();
  1653. +               pairOne.inicarContagem(Config.ARENA_WAIT_INTERVAL_4X4);
  1654. +               pairTwo.inicarContagem(Config.ARENA_WAIT_INTERVAL_4X4);
  1655. +               try
  1656. +               {
  1657. +                   Thread.sleep(Config.ARENA_WAIT_INTERVAL_4X4 * 1000);
  1658. +               }
  1659. +               catch (InterruptedException localInterruptedException1)
  1660. +               {
  1661. +               }
  1662. +  
  1663. +               pairOne.sendPacketinit("Started. Good Fight!", 3);
  1664. +               pairTwo.sendPacketinit("Started. Good Fight!", 3);
  1665. +               pairOne.EventTitle(Config.MSG_TEAM1, Config.TITLE_COLOR_TEAM1);
  1666. +               pairTwo.EventTitle(Config.MSG_TEAM2, Config.TITLE_COLOR_TEAM2);
  1667. +               pairOne.setImobilised(false);
  1668. +               pairTwo.setImobilised(false);
  1669. +               pairOne.setArenaAttack(true);
  1670. +               pairTwo.setArenaAttack(true);
  1671. +               while (check())
  1672. +                   try
  1673. +               {
  1674. +  
  1675. +                       Thread.sleep(Config.ARENA_CHECK_INTERVAL);
  1676. +               }
  1677. +               catch (InterruptedException e)
  1678. +               {
  1679. +               }
  1680. +  
  1681. +               this.finishDuel();
  1682. +               final Arena4x4 this$2 = Arena4x4.this;
  1683. +               ++this$2.free;
  1684. +           }
  1685. +  
  1686. +           private void finishDuel()
  1687. +           {
  1688. +               fights.remove(Integer.valueOf(arena.id));
  1689. +               rewardWinner();
  1690. +               pairOne.revive();
  1691. +               pairTwo.revive();
  1692. +               pairOne.teleportTo(pOneX, pOneY, pOneZ);
  1693. +               pairTwo.teleportTo(pTwoX, pTwoY, pTwoZ);
  1694. +               pairOne.backTitle();
  1695. +               pairTwo.backTitle();
  1696. +               pairOne.setInTournamentEvent(false);
  1697. +               pairTwo.setInTournamentEvent(false);
  1698. +               pairOne.setArenaProtection(false);
  1699. +               pairTwo.setArenaProtection(false);
  1700. +               pairOne.setArenaAttack(false);
  1701. +               pairTwo.setArenaAttack(false);
  1702. +               arena.setFree(true);
  1703. +           }
  1704. +  
  1705. +           private void rewardWinner()
  1706. +           {
  1707. +               if (pairOne.isAlive() && !pairTwo.isAlive())
  1708. +               {
  1709. +                   Player leader1 = pairOne.getLeader();
  1710. +                   Player leader2 = pairTwo.getLeader();
  1711. +  
  1712. +                   if (leader1.getClan() != null && leader2.getClan() != null && Config.TOURNAMENT_EVENT_ANNOUNCE)
  1713. +  
  1714. +                   World.announceToOnlinePlayers("[4x4]: (" + leader1.getClan().getName() + " VS " + leader2.getClan().getName() + ") ~> " + leader1.getClan().getName() + " win!");
  1715. +                   pairOne.rewards();
  1716. +                   pairTwo.rewardsLost();
  1717. +               }
  1718. +               else if (pairTwo.isAlive() && !pairOne.isAlive())
  1719. +               {
  1720. +                   Player leader1 = pairTwo.getLeader();
  1721. +                   Player leader2 = pairOne.getLeader();
  1722. +  
  1723. +                   if (leader1.getClan() != null && leader2.getClan() != null && Config.TOURNAMENT_EVENT_ANNOUNCE)
  1724. +      
  1725. +                   World.announceToOnlinePlayers("[4x4]: (" + leader1.getClan().getName() + " VS " + leader2.getClan().getName() + ") ~> " + leader1.getClan().getName() + " win!");
  1726. +                  
  1727. +                   pairTwo.rewards();
  1728. +                   pairOne.rewardsLost();
  1729. +               }
  1730. +           }
  1731. +  
  1732. +           private boolean check()
  1733. +           {
  1734. +               return pairOne.isDead() && pairTwo.isDead();
  1735. +           }
  1736. +  
  1737. +           private void portPairsToArena()
  1738. +           {
  1739. +               for (Arena4x4.Arena arena : arenas)
  1740. +                   if (arena.isFree)
  1741. +                   {
  1742. +                       this.arena = arena;
  1743. +                       arena.setFree(false);
  1744. +                       pairOne.removePet();
  1745. +                       pairTwo.removePet();
  1746. +                       pairOne.teleportTo(arena.x - 850, arena.y, arena.z);
  1747. +                       pairTwo.teleportTo(arena.x + 850, arena.y, arena.z);
  1748. +                       pairOne.setImobilised(true);
  1749. +                       pairTwo.setImobilised(true);
  1750. +                       pairOne.setInTournamentEvent(true);
  1751. +                       pairTwo.setInTournamentEvent(true);
  1752. +                       pairOne.removeSkills();
  1753. +                       pairTwo.removeSkills();
  1754. +                       fights.put(Integer.valueOf(this.arena.id), pairOne.getLeader().getName() + " vs " + pairTwo.getLeader().getName());
  1755. +                       break;
  1756. +                   }
  1757. +           }
  1758. +       }
  1759. +  
  1760. +       private class Arena
  1761. +       {
  1762. +           protected int x;
  1763. +           protected int y;
  1764. +           protected int z;
  1765. +           protected boolean isFree = true;
  1766. +           int id;
  1767. +  
  1768. +           public Arena(int id, int x, int y, int z)
  1769. +           {
  1770. +               this.id = id;
  1771. +               this.x = x;
  1772. +               this.y = y;
  1773. +               this.z = z;
  1774. +           }
  1775. +  
  1776. +           public void setFree(boolean val)
  1777. +           {
  1778. +               isFree = val;
  1779. +           }
  1780. +       }
  1781. +  
  1782. +       protected class countdown implements Runnable
  1783. +       {
  1784. +           private final Player _player;
  1785. +           private final int _time;
  1786. +  
  1787. +           public countdown(Player player, int time)
  1788. +           {
  1789. +               _time = time;
  1790. +               _player = player;
  1791. +           }
  1792. +  
  1793. +           @Override
  1794. +           public void run()
  1795. +           {
  1796. +               if (_player.isOnline())
  1797. +               {
  1798. +  
  1799. +                   switch (_time)
  1800. +                   {
  1801. +                       case 60:
  1802. +                       case 120:
  1803. +                       case 180:
  1804. +                       case 240:
  1805. +                       case 300:
  1806. +                           if (_player.isOnline())
  1807. +                           {
  1808. +                               _player.sendPacket(new ExShowScreenMessage("The battle starts in " + _time + " second(s)..", 4000));
  1809. +                               _player.sendMessage(_time + " second(s) to start the battle.");
  1810. +                               _player.setIsParalyzed(true);
  1811. +                           }
  1812. +                           break;
  1813. +                       case 45:
  1814. +                           if (_player.isOnline())
  1815. +                           {
  1816. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  1817. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1818. +                               _player.setIsParalyzed(true);
  1819. +                               _player.broadcastPacket(new SocialAction(_player, 1));
  1820. +                           }
  1821. +                           break;
  1822. +                       case 27:
  1823. +                           if (_player.isOnline())
  1824. +                           {
  1825. +                               _player.sendPacket(new ExShowScreenMessage("The battle starts in 30 second(s)..", 4000));
  1826. +                               _player.sendMessage("30 second(s) to start the battle!");
  1827. +                               _player.setIsParalyzed(true);
  1828. +                               _player.broadcastPacket(new SocialAction(_player, 2));
  1829. +                           }
  1830. +                           break;
  1831. +                       case 20:
  1832. +                           if (_player.isOnline())
  1833. +                           {
  1834. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  1835. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1836. +                               _player.setIsParalyzed(true);
  1837. +                              
  1838. +                           }
  1839. +                           break;
  1840. +                       case 15:
  1841. +                           if (_player.isOnline())
  1842. +                           {
  1843. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  1844. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1845. +                               _player.setIsParalyzed(true);
  1846. +                               _player.broadcastPacket(new SocialAction(_player, 9));
  1847. +                           }
  1848. +                           break;
  1849. +                       case 10:
  1850. +                           if (_player.isOnline())
  1851. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1852. +                           _player.setIsParalyzed(true);
  1853. +                           _player.broadcastPacket(new SocialAction(_player, 5));
  1854. +                           break;
  1855. +                       case 5:
  1856. +                           if (_player.isOnline())
  1857. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1858. +                           _player.setIsParalyzed(true);
  1859. +                           break;
  1860. +                       case 4:
  1861. +                           if (_player.isOnline())
  1862. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1863. +                           _player.setIsParalyzed(true);
  1864. +                           break;
  1865. +                       case 3:
  1866. +                           if (_player.isOnline())
  1867. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1868. +                           _player.setIsParalyzed(true);
  1869. +                           break;
  1870. +                       case 2:
  1871. +                           if (_player.isOnline())
  1872. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1873. +                           _player.setIsParalyzed(true);
  1874. +                           break;
  1875. +                       case 1:
  1876. +                           if (_player.isOnline())
  1877. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  1878. +                           _player.setIsParalyzed(false);
  1879. +                           break;
  1880. +                   }
  1881. +                   if (_time > 1)
  1882. +                       ThreadPool.schedule(new countdown(_player, _time - 1), 1000L);
  1883. +               }
  1884. +           }
  1885. +       }
  1886. +  
  1887. +       private static class SingletonHolder
  1888. +       {
  1889. +           protected static final Arena4x4 INSTANCE = new Arena4x4();
  1890. +       }
  1891. +   }
  1892. +  
  1893.  
  1894.  
  1895. Index: package l2jban.events;Arena9x9.java
  1896. ===================================================================
  1897. --- package l2jban.events;Arena9x9.java (revision 84)
  1898. +++ package l2jban.events;Arena9x9.java (working copy)
  1899.  
  1900. +   package l2jban.events;
  1901. +  
  1902. +   import java.util.ArrayList;
  1903. +   import java.util.HashMap;
  1904. +   import java.util.List;
  1905. +   import java.util.Map;
  1906. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  1907. +   import net.sf.l2j.commons.random.Rnd;
  1908. +   import net.sf.l2j.Config;
  1909. +   import net.sf.l2j.gameserver.model.L2Effect;
  1910. +   import net.sf.l2j.gameserver.model.World;
  1911. +   import net.sf.l2j.gameserver.model.actor.Player;
  1912. +   import net.sf.l2j.gameserver.model.actor.Summon;
  1913. +   import net.sf.l2j.gameserver.model.actor.instance.Pet;
  1914. +   import net.sf.l2j.gameserver.enums.actors.ClassId;
  1915. +   import net.sf.l2j.gameserver.enums.ZoneId;
  1916. +   import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  1917. +   import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
  1918. +  
  1919. +   public class Arena9x9 implements Runnable
  1920. +   {
  1921. +       public static List<Pair> registered;
  1922. +       int free = Config.ARENA_EVENT_COUNT_9X9;
  1923. +  
  1924. +       Arena[] arenas = new Arena[Config.ARENA_EVENT_COUNT_9X9];
  1925. +  
  1926. +       Map<Integer, String> fights = new HashMap<>(Config.ARENA_EVENT_COUNT_9X9);
  1927. +  
  1928. +       public Arena9x9()
  1929. +       {
  1930. +           registered = new ArrayList<>();
  1931. +  
  1932. +           for (int i = 0; i < Config.ARENA_EVENT_COUNT_9X9; i++)
  1933. +           {
  1934. +               int[] coord = Config.ARENA_EVENT_LOCS_9X9[i];
  1935. +               arenas[i] = new Arena(i, coord[0], coord[1], coord[2]);
  1936. +           }
  1937. +       }
  1938. +  
  1939. +       public static Arena9x9 getInstance()
  1940. +       {
  1941. +           return SingletonHolder.INSTANCE;
  1942. +       }
  1943. +  
  1944. +       public boolean register(Player player, Player assist, Player assist2, Player assist3, Player assist4, Player assist5, Player assist6, Player assist7, Player assist8)
  1945. +       {
  1946. +           for (Pair p : registered)
  1947. +           {
  1948. +               if (p.getLeader() == player || p.getAssist() == player)
  1949. +               {
  1950. +                   player.sendMessage("Tournament: You already registered!");
  1951. +                   return false;
  1952. +               }
  1953. +               if (p.getLeader() == assist || p.getAssist() == assist)
  1954. +               {
  1955. +                   player.sendMessage("Tournament: " + assist.getName() + " already registered!");
  1956. +                   return false;
  1957. +               }
  1958. +               if (p.getLeader() == assist2 || p.getAssist2() == assist2)
  1959. +               {
  1960. +                   player.sendMessage("Tournament: " + assist2.getName() + " already registered!");
  1961. +                   return false;
  1962. +               }
  1963. +               if (p.getLeader() == assist3 || p.getAssist3() == assist3)
  1964. +               {
  1965. +                   player.sendMessage("Tournament: " + assist3.getName() + " already registered!");
  1966. +                   return false;
  1967. +               }
  1968. +               if (p.getLeader() == assist4 || p.getAssist4() == assist4)
  1969. +               {
  1970. +                   player.sendMessage("Tournament: " + assist4.getName() + " already registered!");
  1971. +                   return false;
  1972. +               }
  1973. +               if (p.getLeader() == assist5 || p.getAssist5() == assist5)
  1974. +               {
  1975. +                   player.sendMessage("Tournament: " + assist5.getName() + " already registered!");
  1976. +                   return false;
  1977. +               }
  1978. +               if (p.getLeader() == assist6 || p.getAssist6() == assist6)
  1979. +               {
  1980. +                   player.sendMessage("Tournament: " + assist6.getName() + " already registered!");
  1981. +                   return false;
  1982. +               }
  1983. +               if (p.getLeader() == assist7 || p.getAssist7() == assist7)
  1984. +               {
  1985. +                   player.sendMessage("Tournament: " + assist7.getName() + " already registered!");
  1986. +                   return false;
  1987. +               }
  1988. +               if (p.getLeader() == assist8 || p.getAssist8() == assist8)
  1989. +               {
  1990. +                   player.sendMessage("Tournament: " + assist8.getName() + " already registered!");
  1991. +                   return false;
  1992. +               }
  1993. +           }
  1994. +           return registered.add(new Pair(player, assist, assist2, assist3, assist4, assist5, assist6, assist7, assist8));
  1995. +       }
  1996. +  
  1997. +       public boolean isRegistered(Player player)
  1998. +       {
  1999. +           for (Pair p : registered)
  2000. +               if (p.getLeader() == player || p.getAssist() == player || p.getAssist2() == player || p.getAssist3() == player || p.getAssist4() == player || p.getAssist5() == player || p.getAssist6() == player || p.getAssist7() == player || p.getAssist8() == player)
  2001. +                   return true;
  2002. +           return false;
  2003. +       }
  2004. +  
  2005. +       public Map<Integer, String> getFights()
  2006. +       {
  2007. +           return fights;
  2008. +       }
  2009. +  
  2010. +       public boolean remove(Player player)
  2011. +       {
  2012. +           for (Pair p : registered)
  2013. +               if (p.getLeader() == player || p.getAssist() == player || p.getAssist2() == player || p.getAssist3() == player || p.getAssist4() == player || p.getAssist5() == player || p.getAssist6() == player || p.getAssist7() == player || p.getAssist8() == player)
  2014. +               {
  2015. +                   p.removeMessage();
  2016. +                   registered.remove(p);
  2017. +                   return true;
  2018. +               }
  2019. +           return false;
  2020. +       }
  2021. +  
  2022. +       @Override
  2023. +       public synchronized void run()
  2024. +       {
  2025. +           for (;;)
  2026. +               if (registered.size() < 2 || free == 0)
  2027. +                   try
  2028. +           {
  2029. +                       Thread.sleep(Config.ARENA_CALL_INTERVAL * 1000);
  2030. +  
  2031. +           }
  2032. +           catch (InterruptedException localInterruptedException)
  2033. +           {
  2034. +           }
  2035. +               else
  2036. +               {
  2037. +                   List<Pair> opponents = selectOpponents();
  2038. +                   if (opponents != null && opponents.size() == 2)
  2039. +                   {
  2040. +                       Thread T = new Thread(new EvtArenaTask(opponents));
  2041. +                       T.setDaemon(true);
  2042. +                       T.start();
  2043. +                   }
  2044. +  
  2045. +                   try
  2046. +                   {
  2047. +                       Thread.sleep(Config.ARENA_CALL_INTERVAL * 1000);
  2048. +                   }
  2049. +                   catch (InterruptedException localInterruptedException1)
  2050. +                   {
  2051. +                   }
  2052. +               }
  2053. +       }
  2054. +  
  2055. +       @SuppressWarnings("null")
  2056. +       private List<Pair> selectOpponents()
  2057. +       {
  2058. +           List<Pair> opponents = new ArrayList<>();
  2059. +           Pair pairOne = null;
  2060. +           Pair pairTwo = null;
  2061. +           int tries = 3;
  2062. +           do
  2063. +           {
  2064. +               int first = 0;
  2065. +               int second = 0;
  2066. +               if (getRegisteredCount() < 2)
  2067. +                   return opponents;
  2068. +               if (pairOne == null)
  2069. +               {
  2070. +                   first = Rnd.get(getRegisteredCount());
  2071. +                   pairOne = registered.get(first);
  2072. +                   if (pairOne.check())
  2073. +                   {
  2074. +                       opponents.add(0, pairOne);
  2075. +                       registered.remove(first);
  2076. +                   }
  2077. +                   else
  2078. +                   {
  2079. +                       pairOne = null;
  2080. +                       registered.remove(first);
  2081. +                       return null;
  2082. +                   }
  2083. +               }
  2084. +  
  2085. +               if (pairTwo == null)
  2086. +               {
  2087. +                   second = Rnd.get(getRegisteredCount());
  2088. +                   pairTwo = registered.get(second);
  2089. +                   if (pairTwo.check())
  2090. +                   {
  2091. +                       opponents.add(1, pairTwo);
  2092. +                       registered.remove(second);
  2093. +                   }
  2094. +                   else
  2095. +                   {
  2096. +                       pairTwo = null;
  2097. +                       registered.remove(second);
  2098. +                       return null;
  2099. +                   }
  2100. +               }
  2101. +  
  2102. +               if (pairOne != null && pairTwo != null)
  2103. +                   break;
  2104. +               tries--;
  2105. +           }
  2106. +           while (tries > 0);
  2107. +           return opponents;
  2108. +       }
  2109. +  
  2110. +       public int getRegisteredCount()
  2111. +       {
  2112. +           return registered.size();
  2113. +       }
  2114. +  
  2115. +       private class Pair
  2116. +       {
  2117. +           private final Player leader;
  2118. +           private final Player assist;
  2119. +           private final Player assist2;
  2120. +           private final Player assist3;
  2121. +  
  2122. +           public Pair(Player leader, Player assist, Player assist2, Player assist3, Player assist4, Player assist5, Player assist6, Player assist7, Player assist8)
  2123. +           {
  2124. +               this.leader = leader;
  2125. +               this.assist = assist;
  2126. +               this.assist2 = assist2;
  2127. +               this.assist3 = assist3;
  2128. +               this.assist4 = assist4;
  2129. +               this.assist5 = assist5;
  2130. +               this.assist6 = assist6;
  2131. +               this.assist7 = assist7;
  2132. +               this.assist8 = assist8;
  2133. +           }
  2134. +  
  2135. +           public Player getAssist()
  2136. +           {
  2137. +               return assist;
  2138. +           }
  2139. +  
  2140. +           public Player getAssist2()
  2141. +           {
  2142. +               return assist2;
  2143. +           }
  2144. +  
  2145. +           public Player getAssist3()
  2146. +           {
  2147. +               return assist3;
  2148. +           }
  2149. +  
  2150. +           public Player getAssist4()
  2151. +           {
  2152. +               return assist4;
  2153. +           }
  2154. +  
  2155. +           public Player getAssist5()
  2156. +           {
  2157. +               return assist5;
  2158. +           }
  2159. +  
  2160. +           public Player getAssist6()
  2161. +           {
  2162. +               return assist6;
  2163. +           }
  2164. +  
  2165. +           public Player getAssist7()
  2166. +           {
  2167. +               return assist7;
  2168. +           }
  2169. +  
  2170. +           public Player getAssist8()
  2171. +           {
  2172. +               return assist8;
  2173. +           }
  2174. +  
  2175. +           public Player getLeader()
  2176. +           {
  2177. +               return leader;
  2178. +           }
  2179. +  
  2180. +           public boolean check()
  2181. +           {
  2182. +               if (leader == null || !leader.isOnline())
  2183. +               {
  2184. +  
  2185. +                   if (assist != null || assist.isOnline())
  2186. +                       assist.sendMessage("Tournament: You participation in Event was Canceled.");
  2187. +                   if (assist2 != null || assist2.isOnline())
  2188. +                       assist2.sendMessage("Tournament: You participation in Event was Canceled.");
  2189. +                   if (assist3 != null || assist3.isOnline())
  2190. +                       assist3.sendMessage("Tournament: You participation in Event was Canceled.");
  2191. +                   if (assist4 != null || assist4.isOnline())
  2192. +                       assist4.sendMessage("Tournament: You participation in Event was Canceled.");
  2193. +                   if (assist5 != null || assist5.isOnline())
  2194. +                       assist5.sendMessage("Tournament: You participation in Event was Canceled.");
  2195. +                   if (assist6 != null || assist6.isOnline())
  2196. +                       assist6.sendMessage("Tournament: You participation in Event was Canceled.");
  2197. +                   if (assist7 != null || assist7.isOnline())
  2198. +                       assist7.sendMessage("Tournament: You participation in Event was Canceled.");
  2199. +                   if (assist8 != null || assist8.isOnline())
  2200. +                       assist8.sendMessage("Tournament: You participation in Event was Canceled.");
  2201. +                   return false;
  2202. +               }
  2203. +               if ((assist == null || !assist.isOnline() || assist2 == null || !assist2.isOnline() || assist3 == null || !assist3.isOnline() || assist4 == null || !assist4.isOnline() || assist5 == null || !assist5.isOnline() || assist6 == null || !assist6.isOnline() || assist7 == null || !assist7.isOnline() || assist8 == null || !assist8.isOnline()) && (leader != null || leader.isOnline()))
  2204. +               {
  2205. +                   leader.sendMessage("Tournament: You participation in Event was Canceled.");
  2206. +  
  2207. +                   if (assist != null || assist.isOnline())
  2208. +                       assist.sendMessage("Tournament: You participation in Event was Canceled.");
  2209. +                   if (assist2 != null || assist2.isOnline())
  2210. +                       assist2.sendMessage("Tournament: You participation in Event was Canceled.");
  2211. +                   if (assist3 != null || assist3.isOnline())
  2212. +                       assist3.sendMessage("Tournament: You participation in Event was Canceled.");
  2213. +                   if (assist4 != null || assist4.isOnline())
  2214. +                       assist4.sendMessage("Tournament: You participation in Event was Canceled.");
  2215. +                   if (assist5 != null || assist5.isOnline())
  2216. +                       assist5.sendMessage("Tournament: You participation in Event was Canceled.");
  2217. +                   if (assist6 != null || assist6.isOnline())
  2218. +                       assist6.sendMessage("Tournament: You participation in Event was Canceled.");
  2219. +                   if (assist7 != null || assist7.isOnline())
  2220. +                       assist7.sendMessage("Tournament: You participation in Event was Canceled.");
  2221. +                   if (assist8 != null || assist8.isOnline())
  2222. +                       assist8.sendMessage("Tournament: You participation in Event was Canceled.");
  2223. +                   return false;
  2224. +               }
  2225. +               return true;
  2226. +           }
  2227. +  
  2228. +           public boolean isDead()
  2229. +           {
  2230. +               if ((leader == null || leader.isDead() || !leader.isOnline() || !leader.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !leader.isArenaAttack()) && (assist == null || assist.isDead() || !assist.isOnline() || !assist.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist.isArenaAttack()) && (assist2 == null || assist2.isDead() || !assist2.isOnline() || !assist2.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist2.isArenaAttack()) && (assist3 == null || assist3.isDead() || !assist3.isOnline() || !assist3.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist3.isArenaAttack()) && (assist4 == null || assist4.isDead() || !assist4.isOnline() || !assist4.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist4.isArenaAttack()) && (assist5 == null || assist5.isDead() || !assist5.isOnline() || !assist5.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist5.isArenaAttack()) && (assist6 == null || assist6.isDead() || !assist6.isOnline() || !assist6.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist6.isArenaAttack()) && (assist7 == null || assist7.isDead() || !assist7.isOnline() || !assist7.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist7.isArenaAttack()) && (assist8 == null || assist8.isDead() || !assist8.isOnline() || !assist8.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist8.isArenaAttack()))
  2231. +                   return false;
  2232. +               return !leader.isDead() || !assist.isDead() || !assist2.isDead() || !assist3.isDead() || !assist4.isDead() || !assist5.isDead() || !assist6.isDead() || !assist7.isDead() || !assist8.isDead();
  2233. +           }
  2234. +  
  2235. +           public boolean isAlive()
  2236. +           {
  2237. +               if ((leader == null || leader.isDead() || !leader.isOnline() || !leader.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !leader.isArenaAttack()) && (assist == null || assist.isDead() || !assist.isOnline() || !assist.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist.isArenaAttack()) && (assist2 == null || assist2.isDead() || !assist2.isOnline() || !assist2.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist2.isArenaAttack()) && (assist3 == null || assist3.isDead() || !assist3.isOnline() || !assist3.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist3.isArenaAttack()) && (assist4 == null || assist4.isDead() || !assist4.isOnline() || !assist4.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist4.isArenaAttack()) && (assist5 == null || assist5.isDead() || !assist5.isOnline() || !assist5.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist5.isArenaAttack()) && (assist6 == null || assist6.isDead() || !assist6.isOnline() || !assist6.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist6.isArenaAttack()) && (assist7 == null || assist7.isDead() || !assist7.isOnline() || !assist7.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist7.isArenaAttack()) && (assist8 == null || assist8.isDead() || !assist8.isOnline() || !assist8.isInsideZone(ZoneId.TORURNAMENT_ARENA) || !assist8.isArenaAttack()))
  2238. +                   return false;
  2239. +               return !leader.isDead() || !assist.isDead() || !assist2.isDead() || !assist3.isDead() || !assist4.isDead() || !assist5.isDead() || !assist6.isDead() || !assist7.isDead() || !assist8.isDead();
  2240. +           }
  2241. +  
  2242. +           public void teleportTo(int x, int y, int z)
  2243. +           {
  2244. +               if (leader != null && leader.isOnline())
  2245. +               {
  2246. +                   leader.getAppearance().setInvisible();
  2247. +                   leader.setCurrentCp(leader.getMaxCp());
  2248. +                   leader.setCurrentHp(leader.getMaxHp());
  2249. +                   leader.setCurrentMp(leader.getMaxMp());
  2250. +  
  2251. +                   if (leader.isInObserverMode())
  2252. +                   {
  2253. +                       leader.setLastCords(x, y, z);
  2254. +                       leader.leaveOlympiadObserverMode();
  2255. +                   }
  2256. +                   else
  2257. +                       leader.teleportTo(x, y, z, 0);
  2258. +                   leader.broadcastUserInfo();
  2259. +               }
  2260. +  
  2261. +               if (assist != null && assist.isOnline())
  2262. +               {
  2263. +                   assist.getAppearance().setInvisible();
  2264. +                   assist.setCurrentCp(assist.getMaxCp());
  2265. +                   assist.setCurrentHp(assist.getMaxHp());
  2266. +                   assist.setCurrentMp(assist.getMaxMp());
  2267. +  
  2268. +                   if (assist.isInObserverMode())
  2269. +                   {
  2270. +                       assist.setLastCords(x, y + 200, z);
  2271. +                       assist.leaveOlympiadObserverMode();
  2272. +                   }
  2273. +                   else
  2274. +                       assist.teleportTo(x, y + 200, z, 0);
  2275. +                   assist.broadcastUserInfo();
  2276. +               }
  2277. +               if (assist2 != null && assist2.isOnline())
  2278. +               {
  2279. +                   assist2.getAppearance().setInvisible();
  2280. +                   assist2.setCurrentCp(assist2.getMaxCp());
  2281. +                   assist2.setCurrentHp(assist2.getMaxHp());
  2282. +                   assist2.setCurrentMp(assist2.getMaxMp());
  2283. +  
  2284. +                   if (assist2.isInObserverMode())
  2285. +                   {
  2286. +                       assist2.setLastCords(x, y + 150, z);
  2287. +                       assist2.leaveOlympiadObserverMode();
  2288. +                   }
  2289. +                   else
  2290. +                       assist2.teleportTo(x, y + 150, z, 0);
  2291. +                   assist2.broadcastUserInfo();
  2292. +               }
  2293. +               if (assist3 != null && assist3.isOnline())
  2294. +               {
  2295. +                   assist3.getAppearance().setInvisible();
  2296. +                   assist3.setCurrentCp(assist3.getMaxCp());
  2297. +                   assist3.setCurrentHp(assist3.getMaxHp());
  2298. +                   assist3.setCurrentMp(assist3.getMaxMp());
  2299. +  
  2300. +                   if (assist3.isInObserverMode())
  2301. +                   {
  2302. +                       assist3.setLastCords(x, y + 100, z);
  2303. +                       assist3.leaveOlympiadObserverMode();
  2304. +                   }
  2305. +                   else
  2306. +                       assist3.teleportTo(x, y + 100, z, 0);
  2307. +                   assist3.broadcastUserInfo();
  2308. +               }
  2309. +               if (assist4 != null && assist4.isOnline())
  2310. +               {
  2311. +                   assist4.getAppearance().setInvisible();
  2312. +                   assist4.setCurrentCp(assist4.getMaxCp());
  2313. +                   assist4.setCurrentHp(assist4.getMaxHp());
  2314. +                   assist4.setCurrentMp(assist4.getMaxMp());
  2315. +  
  2316. +                   if (assist4.isInObserverMode())
  2317. +                   {
  2318. +                       assist4.setLastCords(x, y + 50, z);
  2319. +                       assist4.leaveOlympiadObserverMode();
  2320. +                   }
  2321. +                   else
  2322. +                       assist4.teleportTo(x, y + 50, z, 0);
  2323. +                   assist4.broadcastUserInfo();
  2324. +               }
  2325. +               if (assist5 != null && assist5.isOnline())
  2326. +               {
  2327. +                   assist5.getAppearance().setInvisible();
  2328. +                   assist5.setCurrentCp(assist5.getMaxCp());
  2329. +                   assist5.setCurrentHp(assist5.getMaxHp());
  2330. +                   assist5.setCurrentMp(assist5.getMaxMp());
  2331. +  
  2332. +                   if (assist5.isInObserverMode())
  2333. +                   {
  2334. +                       assist5.setLastCords(x, y - 200, z);
  2335. +                       assist5.leaveOlympiadObserverMode();
  2336. +                   }
  2337. +                   else
  2338. +                       assist5.teleportTo(x, y - 200, z, 0);
  2339. +                   assist5.broadcastUserInfo();
  2340. +               }
  2341. +               if (assist6 != null && assist6.isOnline())
  2342. +               {
  2343. +                   assist6.getAppearance().setInvisible();
  2344. +                   assist6.setCurrentCp(assist6.getMaxCp());
  2345. +                   assist6.setCurrentHp(assist6.getMaxHp());
  2346. +                   assist6.setCurrentMp(assist6.getMaxMp());
  2347. +  
  2348. +                   if (assist6.isInObserverMode())
  2349. +                   {
  2350. +                       assist6.setLastCords(x, y - 150, z);
  2351. +                       assist6.leaveOlympiadObserverMode();
  2352. +                   }
  2353. +                   else
  2354. +                       assist6.teleportTo(x, y - 150, z, 0);
  2355. +                   assist6.broadcastUserInfo();
  2356. +               }
  2357. +               if (assist7 != null && assist7.isOnline())
  2358. +               {
  2359. +                   assist7.getAppearance().setInvisible();
  2360. +                   assist7.setCurrentCp(assist7.getMaxCp());
  2361. +                   assist7.setCurrentHp(assist7.getMaxHp());
  2362. +                   assist7.setCurrentMp(assist7.getMaxMp());
  2363. +  
  2364. +                   if (assist7.isInObserverMode())
  2365. +                   {
  2366. +                       assist7.setLastCords(x, y - 100, z);
  2367. +                       assist7.leaveOlympiadObserverMode();
  2368. +                   }
  2369. +                   else
  2370. +                       assist7.teleportTo(x, y - 100, z, 0);
  2371. +                   assist7.broadcastUserInfo();
  2372. +               }
  2373. +               if (assist8 != null && assist8.isOnline())
  2374. +               {
  2375. +                   assist8.getAppearance().setInvisible();
  2376. +                   assist8.setCurrentCp(assist8.getMaxCp());
  2377. +                   assist8.setCurrentHp(assist8.getMaxHp());
  2378. +                   assist8.setCurrentMp(assist8.getMaxMp());
  2379. +  
  2380. +                   if (assist8.isInObserverMode())
  2381. +                   {
  2382. +                       assist8.setLastCords(x, y - 50, z);
  2383. +                       assist8.leaveOlympiadObserverMode();
  2384. +                   }
  2385. +                   else
  2386. +                       assist8.teleportTo(x, y - 50, z, 0);
  2387. +                   assist8.broadcastUserInfo();
  2388. +               }
  2389. +           }
  2390. +  
  2391. +           public void EventTitle(String title, String color)
  2392. +           {
  2393. +               if (leader != null && leader.isOnline())
  2394. +               {
  2395. +                   leader.setTitle(title);
  2396. +                   leader.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2397. +                   leader.broadcastUserInfo();
  2398. +                   leader.broadcastTitleInfo();
  2399. +               }
  2400. +  
  2401. +               if (assist != null && assist.isOnline())
  2402. +               {
  2403. +                   assist.setTitle(title);
  2404. +                   assist.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2405. +                   assist.broadcastUserInfo();
  2406. +                   assist.broadcastTitleInfo();
  2407. +               }
  2408. +               if (assist2 != null && assist2.isOnline())
  2409. +               {
  2410. +                   assist2.setTitle(title);
  2411. +                   assist2.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2412. +                   assist2.broadcastUserInfo();
  2413. +                   assist2.broadcastTitleInfo();
  2414. +               }
  2415. +               if (assist3 != null && assist3.isOnline())
  2416. +               {
  2417. +                   assist3.setTitle(title);
  2418. +                   assist3.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2419. +                   assist3.broadcastUserInfo();
  2420. +                   assist3.broadcastTitleInfo();
  2421. +               }
  2422. +               if (assist4 != null && assist4.isOnline())
  2423. +               {
  2424. +                   assist4.setTitle(title);
  2425. +                   assist4.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2426. +                   assist4.broadcastUserInfo();
  2427. +                   assist4.broadcastTitleInfo();
  2428. +               }
  2429. +               if (assist5 != null && assist5.isOnline())
  2430. +               {
  2431. +                   assist5.setTitle(title);
  2432. +                   assist5.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2433. +                   assist5.broadcastUserInfo();
  2434. +                   assist5.broadcastTitleInfo();
  2435. +               }
  2436. +               if (assist6 != null && assist6.isOnline())
  2437. +               {
  2438. +                   assist6.setTitle(title);
  2439. +                   assist6.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2440. +                   assist6.broadcastUserInfo();
  2441. +                   assist6.broadcastTitleInfo();
  2442. +               }
  2443. +               if (assist7 != null && assist7.isOnline())
  2444. +               {
  2445. +                   assist7.setTitle(title);
  2446. +                   assist7.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2447. +                   assist7.broadcastUserInfo();
  2448. +                   assist7.broadcastTitleInfo();
  2449. +               }
  2450. +               if (assist8 != null && assist8.isOnline())
  2451. +               {
  2452. +                   assist8.setTitle(title);
  2453. +                   assist8.getAppearance().setTitleColor(Integer.decode("0x" + color).intValue());
  2454. +                   assist8.broadcastUserInfo();
  2455. +                   assist8.broadcastTitleInfo();
  2456. +               }
  2457. +           }
  2458. +  
  2459. +           public void saveTitle()
  2460. +           {
  2461. +               if (leader != null && leader.isOnline())
  2462. +               {
  2463. +                   leader._originalTitleColorTournament = leader.getAppearance().getTitleColor();
  2464. +                   leader._originalTitleTournament = leader.getTitle();
  2465. +               }
  2466. +  
  2467. +               if (assist != null && assist.isOnline())
  2468. +               {
  2469. +                   assist._originalTitleColorTournament = assist.getAppearance().getTitleColor();
  2470. +                   assist._originalTitleTournament = assist.getTitle();
  2471. +               }
  2472. +  
  2473. +               if (assist2 != null && assist2.isOnline())
  2474. +               {
  2475. +                   assist2._originalTitleColorTournament = assist2.getAppearance().getTitleColor();
  2476. +                   assist2._originalTitleTournament = assist2.getTitle();
  2477. +               }
  2478. +  
  2479. +               if (assist3 != null && assist3.isOnline())
  2480. +               {
  2481. +                   assist3._originalTitleColorTournament = assist3.getAppearance().getTitleColor();
  2482. +                   assist3._originalTitleTournament = assist3.getTitle();
  2483. +               }
  2484. +  
  2485. +               if (assist4 != null && assist4.isOnline())
  2486. +               {
  2487. +                   assist4._originalTitleColorTournament = assist4.getAppearance().getTitleColor();
  2488. +                   assist4._originalTitleTournament = assist4.getTitle();
  2489. +               }
  2490. +  
  2491. +               if (assist5 != null && assist5.isOnline())
  2492. +               {
  2493. +                   assist5._originalTitleColorTournament = assist5.getAppearance().getTitleColor();
  2494. +                   assist5._originalTitleTournament = assist5.getTitle();
  2495. +               }
  2496. +  
  2497. +               if (assist6 != null && assist6.isOnline())
  2498. +               {
  2499. +                   assist6._originalTitleColorTournament = assist6.getAppearance().getTitleColor();
  2500. +                   assist6._originalTitleTournament = assist6.getTitle();
  2501. +                   assist6._originalTitleTournament = assist6.getTitle();
  2502. +               }
  2503. +  
  2504. +               if (assist7 != null && assist7.isOnline())
  2505. +               {
  2506. +                   assist7._originalTitleColorTournament = assist7.getAppearance().getTitleColor();
  2507. +                   assist7._originalTitleTournament = assist7.getTitle();
  2508. +               }
  2509. +  
  2510. +               if (assist8 != null && assist8.isOnline())
  2511. +               {
  2512. +                   assist8._originalTitleColorTournament = assist8.getAppearance().getTitleColor();
  2513. +                   assist8._originalTitleTournament = assist8.getTitle();
  2514. +               }
  2515. +           }
  2516. +  
  2517. +           public void backTitle()
  2518. +           {
  2519. +               if (leader != null && leader.isOnline())
  2520. +               {
  2521. +                   leader.setTitle(leader._originalTitleTournament);
  2522. +                   leader.getAppearance().setTitleColor(leader._originalTitleColorTournament);
  2523. +                   leader.broadcastUserInfo();
  2524. +                   leader.broadcastTitleInfo();
  2525. +               }
  2526. +  
  2527. +               if (assist != null && assist.isOnline())
  2528. +               {
  2529. +                   assist.setTitle(assist._originalTitleTournament);
  2530. +                   assist.getAppearance().setTitleColor(assist._originalTitleColorTournament);
  2531. +                   assist.broadcastUserInfo();
  2532. +                   assist.broadcastTitleInfo();
  2533. +               }
  2534. +  
  2535. +               if (assist2 != null && assist2.isOnline())
  2536. +               {
  2537. +                   assist2.setTitle(assist2._originalTitleTournament);
  2538. +                   assist2.getAppearance().setTitleColor(assist2._originalTitleColorTournament);
  2539. +                   assist2.broadcastUserInfo();
  2540. +                   assist2.broadcastTitleInfo();
  2541. +               }
  2542. +  
  2543. +               if (assist3 != null && assist3.isOnline())
  2544. +               {
  2545. +                   assist3.setTitle(assist3._originalTitleTournament);
  2546. +                   assist3.getAppearance().setTitleColor(assist3._originalTitleColorTournament);
  2547. +                   assist3.broadcastUserInfo();
  2548. +                   assist3.broadcastTitleInfo();
  2549. +               }
  2550. +  
  2551. +               if (assist4 != null && assist4.isOnline())
  2552. +               {
  2553. +                   assist4.setTitle(assist4._originalTitleTournament);
  2554. +                   assist4.getAppearance().setTitleColor(assist4._originalTitleColorTournament);
  2555. +                   assist4.broadcastUserInfo();
  2556. +                   assist4.broadcastTitleInfo();
  2557. +               }
  2558. +  
  2559. +               if (assist5 != null && assist5.isOnline())
  2560. +               {
  2561. +                   assist5.setTitle(assist5._originalTitleTournament);
  2562. +                   assist5.getAppearance().setTitleColor(assist5._originalTitleColorTournament);
  2563. +                   assist5.broadcastUserInfo();
  2564. +                   assist5.broadcastTitleInfo();
  2565. +               }
  2566. +  
  2567. +               if (assist6 != null && assist6.isOnline())
  2568. +               {
  2569. +                   assist6.setTitle(assist6._originalTitleTournament);
  2570. +                   assist6.getAppearance().setTitleColor(assist6._originalTitleColorTournament);
  2571. +                   assist6.broadcastUserInfo();
  2572. +                   assist6.broadcastTitleInfo();
  2573. +               }
  2574. +  
  2575. +               if (assist7 != null && assist7.isOnline())
  2576. +               {
  2577. +                   assist7.setTitle(assist7._originalTitleTournament);
  2578. +                   assist7.getAppearance().setTitleColor(assist7._originalTitleColorTournament);
  2579. +                   assist7.broadcastUserInfo();
  2580. +                   assist7.broadcastTitleInfo();
  2581. +               }
  2582. +  
  2583. +               if (assist8 != null && assist8.isOnline())
  2584. +               {
  2585. +                   assist8.setTitle(assist8._originalTitleTournament);
  2586. +                   assist8.getAppearance().setTitleColor(assist8._originalTitleColorTournament);
  2587. +                   assist8.broadcastUserInfo();
  2588. +                   assist8.broadcastTitleInfo();
  2589. +               }
  2590. +           }
  2591. +  
  2592. +           private final Player assist4;
  2593. +           private final Player assist5;
  2594. +           private final Player assist6;
  2595. +           private final Player assist7;
  2596. +           private final Player assist8;
  2597. +  
  2598. +           public void rewards()
  2599. +           {
  2600. +               if (leader != null && leader.isOnline())
  2601. +                       leader.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, leader, true);
  2602. +              
  2603. +               if (assist != null && assist.isOnline())
  2604. +                       assist.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist, true);
  2605. +              
  2606. +               if (assist2 != null && assist2.isOnline())
  2607. +                       assist2.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist2, true);
  2608. +              
  2609. +               if (assist3 != null && assist3.isOnline())
  2610. +                       assist3.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist3, true);
  2611. +              
  2612. +               if (assist4 != null && assist4.isOnline())
  2613. +                       assist4.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist4, true);
  2614. +              
  2615. +               if (assist5 != null && assist5.isOnline())
  2616. +                       assist5.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist5, true);
  2617. +              
  2618. +               if (assist6 != null && assist6.isOnline())
  2619. +                       assist6.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist6, true);
  2620. +              
  2621. +               if (assist7 != null && assist7.isOnline())
  2622. +                       assist7.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist7, true);
  2623. +              
  2624. +               if (assist8 != null && assist8.isOnline())
  2625. +                       assist8.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_WIN_REWARD_COUNT_9X9, assist8, true);
  2626. +              
  2627. +              
  2628. +                                   sendPacket("Congratulations, your team won the event!", 5);
  2629. +           }
  2630. +  
  2631. +           public void rewardsLost()
  2632. +           {
  2633. +               if (leader != null && leader.isOnline())
  2634. +                       leader.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, leader, true);
  2635. +              
  2636. +               if (assist != null && assist.isOnline())
  2637. +                       assist.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist, true);
  2638. +              
  2639. +               if (assist2 != null && assist2.isOnline())
  2640. +                       assist2.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist2, true);
  2641. +              
  2642. +               if (assist3 != null && assist3.isOnline())
  2643. +                       assist3.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist3, true);
  2644. +              
  2645. +               if (assist4 != null && assist4.isOnline())
  2646. +                       assist4.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist4, true);
  2647. +              
  2648. +               if (assist5 != null && assist5.isOnline())
  2649. +                       assist5.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist5, true);
  2650. +              
  2651. +               if (assist6 != null && assist6.isOnline())
  2652. +                       assist6.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist6, true);
  2653. +              
  2654. +               if (assist7 != null && assist7.isOnline())
  2655. +                       assist7.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist7, true);
  2656. +              
  2657. +               if (assist8 != null && assist8.isOnline())
  2658. +                       assist8.addItem("Arena_Event", Config.ARENA_REWARD_ID, Config.ARENA_LOST_REWARD_COUNT_9X9, assist8, true);
  2659. +               sendPacket("your team lost the event! =(", 5);
  2660. +           }
  2661. +  
  2662. +           public void setInTournamentEvent(boolean val)
  2663. +           {
  2664. +               if (leader != null && leader.isOnline())
  2665. +                   leader.setInArenaEvent(val);
  2666. +               if (assist != null && assist.isOnline())
  2667. +                   assist.setInArenaEvent(val);
  2668. +               if (assist2 != null && assist2.isOnline())
  2669. +                   assist2.setInArenaEvent(val);
  2670. +               if (assist3 != null && assist3.isOnline())
  2671. +                   assist3.setInArenaEvent(val);
  2672. +               if (assist4 != null && assist4.isOnline())
  2673. +                   assist4.setInArenaEvent(val);
  2674. +               if (assist5 != null && assist5.isOnline())
  2675. +                   assist5.setInArenaEvent(val);
  2676. +               if (assist6 != null && assist6.isOnline())
  2677. +                   assist6.setInArenaEvent(val);
  2678. +               if (assist7 != null && assist7.isOnline())
  2679. +                   assist7.setInArenaEvent(val);
  2680. +               if (assist8 != null && assist8.isOnline())
  2681. +                   assist8.setInArenaEvent(val);
  2682. +           }
  2683. +  
  2684. +           public void removeMessage()
  2685. +           {
  2686. +               if (leader != null && leader.isOnline())
  2687. +               {
  2688. +                   leader.sendMessage("Tournament: Your participation has been removed.");
  2689. +                   leader.setArenaProtection(false);
  2690. +                   leader.setArena9x9(false);
  2691. +               }
  2692. +  
  2693. +               if (assist != null && assist.isOnline())
  2694. +               {
  2695. +                   assist.sendMessage("Tournament: Your participation has been removed.");
  2696. +                   assist.setArenaProtection(false);
  2697. +                   assist.setArena9x9(false);
  2698. +               }
  2699. +  
  2700. +               if (assist2 != null && assist2.isOnline())
  2701. +               {
  2702. +                   assist2.sendMessage("Tournament: Your participation has been removed.");
  2703. +                   assist2.setArenaProtection(false);
  2704. +                   assist2.setArena9x9(false);
  2705. +               }
  2706. +  
  2707. +               if (assist3 != null && assist3.isOnline())
  2708. +               {
  2709. +                   assist3.sendMessage("Tournament: Your participation has been removed.");
  2710. +                   assist3.setArenaProtection(false);
  2711. +                   assist3.setArena9x9(false);
  2712. +               }
  2713. +  
  2714. +               if (assist4 != null && assist4.isOnline())
  2715. +               {
  2716. +                   assist4.sendMessage("Tournament: Your participation has been removed.");
  2717. +                   assist4.setArenaProtection(false);
  2718. +                   assist4.setArena9x9(false);
  2719. +               }
  2720. +  
  2721. +               if (assist5 != null && assist5.isOnline())
  2722. +               {
  2723. +                   assist5.sendMessage("Tournament: Your participation has been removed.");
  2724. +                   assist5.setArenaProtection(false);
  2725. +                   assist5.setArena9x9(false);
  2726. +               }
  2727. +  
  2728. +               if (assist6 != null && assist6.isOnline())
  2729. +               {
  2730. +                   assist6.sendMessage("Tournament: Your participation has been removed.");
  2731. +                   assist6.setArenaProtection(false);
  2732. +                   assist6.setArena9x9(false);
  2733. +               }
  2734. +  
  2735. +               if (assist7 != null && assist7.isOnline())
  2736. +               {
  2737. +                   assist7.sendMessage("Tournament: Your participation has been removed.");
  2738. +                   assist7.setArenaProtection(false);
  2739. +                   assist7.setArena9x9(false);
  2740. +               }
  2741. +  
  2742. +               if (assist8 != null && assist8.isOnline())
  2743. +               {
  2744. +                   assist8.sendMessage("Tournament: Your participation has been removed.");
  2745. +                   assist8.setArenaProtection(false);
  2746. +                   assist8.setArena9x9(false);
  2747. +               }
  2748. +           }
  2749. +  
  2750. +           public void setArenaProtection(boolean val)
  2751. +           {
  2752. +               if (leader != null && leader.isOnline())
  2753. +               {
  2754. +                   leader.setArenaProtection(val);
  2755. +                   leader.setArena9x9(val);
  2756. +               }
  2757. +  
  2758. +               if (assist != null && assist.isOnline())
  2759. +               {
  2760. +                   assist.setArenaProtection(val);
  2761. +                   assist.setArena9x9(val);
  2762. +               }
  2763. +               if (assist2 != null && assist2.isOnline())
  2764. +               {
  2765. +                   assist2.setArenaProtection(val);
  2766. +                   assist2.setArena9x9(val);
  2767. +               }
  2768. +  
  2769. +               if (assist3 != null && assist3.isOnline())
  2770. +               {
  2771. +                   assist3.setArenaProtection(val);
  2772. +                   assist3.setArena9x9(val);
  2773. +               }
  2774. +  
  2775. +               if (assist4 != null && assist4.isOnline())
  2776. +               {
  2777. +                   assist4.setArenaProtection(val);
  2778. +                   assist4.setArena9x9(val);
  2779. +               }
  2780. +  
  2781. +               if (assist5 != null && assist5.isOnline())
  2782. +               {
  2783. +                   assist5.setArenaProtection(val);
  2784. +                   assist5.setArena9x9(val);
  2785. +               }
  2786. +  
  2787. +               if (assist6 != null && assist6.isOnline())
  2788. +               {
  2789. +                   assist6.setArenaProtection(val);
  2790. +                   assist6.setArena9x9(val);
  2791. +               }
  2792. +  
  2793. +               if (assist7 != null && assist7.isOnline())
  2794. +               {
  2795. +                   assist7.setArenaProtection(val);
  2796. +                   assist7.setArena9x9(val);
  2797. +               }
  2798. +  
  2799. +               if (assist8 != null && assist8.isOnline())
  2800. +               {
  2801. +                   assist8.setArenaProtection(val);
  2802. +                   assist8.setArena9x9(val);
  2803. +               }
  2804. +           }
  2805. +  
  2806. +           public void revive()
  2807. +           {
  2808. +               if (leader != null && leader.isOnline() && leader.isDead())
  2809. +                   leader.doRevive();
  2810. +               if (assist != null && assist.isOnline() && assist.isDead())
  2811. +                   assist.doRevive();
  2812. +               if (assist2 != null && assist2.isOnline() && assist2.isDead())
  2813. +                   assist2.doRevive();
  2814. +               if (assist3 != null && assist3.isOnline() && assist3.isDead())
  2815. +                   assist3.doRevive();
  2816. +               if (assist4 != null && assist4.isOnline() && assist4.isDead())
  2817. +                   assist4.doRevive();
  2818. +               if (assist5 != null && assist5.isOnline() && assist5.isDead())
  2819. +                   assist5.doRevive();
  2820. +               if (assist6 != null && assist6.isOnline() && assist6.isDead())
  2821. +                   assist6.doRevive();
  2822. +               if (assist7 != null && assist7.isOnline() && assist7.isDead())
  2823. +                   assist7.doRevive();
  2824. +               if (assist8 != null && assist8.isOnline() && assist8.isDead())
  2825. +                   assist8.doRevive();
  2826. +           }
  2827. +  
  2828. +           public void setImobilised(boolean val)
  2829. +           {
  2830. +               if (leader != null && leader.isOnline())
  2831. +               {
  2832. +                   leader.setIsInvul(val);
  2833. +                   leader.setStopArena(val);
  2834. +               }
  2835. +               if (assist != null && assist.isOnline())
  2836. +               {
  2837. +                   assist.setIsInvul(val);
  2838. +                   assist.setStopArena(val);
  2839. +               }
  2840. +               if (assist2 != null && assist2.isOnline())
  2841. +               {
  2842. +                   assist2.setIsInvul(val);
  2843. +                   assist2.setStopArena(val);
  2844. +               }
  2845. +               if (assist3 != null && assist3.isOnline())
  2846. +               {
  2847. +                   assist3.setIsInvul(val);
  2848. +                   assist3.setStopArena(val);
  2849. +               }
  2850. +               if (assist4 != null && assist4.isOnline())
  2851. +               {
  2852. +                   assist4.setIsInvul(val);
  2853. +                   assist4.setStopArena(val);
  2854. +               }
  2855. +               if (assist5 != null && assist5.isOnline())
  2856. +               {
  2857. +                   assist5.setIsInvul(val);
  2858. +                   assist5.setStopArena(val);
  2859. +               }
  2860. +               if (assist6 != null && assist6.isOnline())
  2861. +               {
  2862. +                   assist6.setIsInvul(val);
  2863. +                   assist6.setStopArena(val);
  2864. +               }
  2865. +               if (assist7 != null && assist7.isOnline())
  2866. +               {
  2867. +                   assist7.setIsInvul(val);
  2868. +                   assist7.setStopArena(val);
  2869. +               }
  2870. +               if (assist8 != null && assist8.isOnline())
  2871. +               {
  2872. +                   assist8.setIsInvul(val);
  2873. +                   assist8.setStopArena(val);
  2874. +               }
  2875. +           }
  2876. +  
  2877. +           public void setArenaAttack(boolean val)
  2878. +           {
  2879. +               if (leader != null && leader.isOnline())
  2880. +               {
  2881. +                   leader.setArenaAttack(val);
  2882. +                   leader.broadcastUserInfo();
  2883. +               }
  2884. +  
  2885. +               if (assist != null && assist.isOnline())
  2886. +               {
  2887. +                   assist.setArenaAttack(val);
  2888. +                   assist.broadcastUserInfo();
  2889. +               }
  2890. +  
  2891. +               if (assist2 != null && assist2.isOnline())
  2892. +               {
  2893. +                   assist2.setArenaAttack(val);
  2894. +                   assist2.broadcastUserInfo();
  2895. +               }
  2896. +  
  2897. +               if (assist3 != null && assist3.isOnline())
  2898. +               {
  2899. +                   assist3.setArenaAttack(val);
  2900. +                   assist3.broadcastUserInfo();
  2901. +               }
  2902. +  
  2903. +               if (assist4 != null && assist4.isOnline())
  2904. +               {
  2905. +                   assist4.setArenaAttack(val);
  2906. +                   assist4.broadcastUserInfo();
  2907. +               }
  2908. +  
  2909. +               if (assist5 != null && assist5.isOnline())
  2910. +               {
  2911. +                   assist5.setArenaAttack(val);
  2912. +                   assist5.broadcastUserInfo();
  2913. +               }
  2914. +  
  2915. +               if (assist6 != null && assist6.isOnline())
  2916. +               {
  2917. +                   assist6.setArenaAttack(val);
  2918. +                   assist6.broadcastUserInfo();
  2919. +               }
  2920. +  
  2921. +               if (assist7 != null && assist7.isOnline())
  2922. +               {
  2923. +                   assist7.setArenaAttack(val);
  2924. +                   assist7.broadcastUserInfo();
  2925. +               }
  2926. +  
  2927. +               if (assist8 != null && assist8.isOnline())
  2928. +               {
  2929. +                   assist8.setArenaAttack(val);
  2930. +                   assist8.broadcastUserInfo();
  2931. +               }
  2932. +           }
  2933. +  
  2934. +           public void removePet()
  2935. +           {
  2936. +               if (leader != null && leader.isOnline())
  2937. +               {
  2938. +  
  2939. +                   if (leader.getSummon() != null)
  2940. +                   {
  2941. +                       Summon summon = leader.getSummon();
  2942. +                       if (summon != null)
  2943. +                           summon.unSummon(summon.getOwner());
  2944. +                       if (summon instanceof Pet)
  2945. +                           summon.unSummon(leader);
  2946. +                   }
  2947. +                   if (leader.getMountType() == 1 || leader.getMountType() == 2)
  2948. +                       leader.dismount();
  2949. +               }
  2950. +               if (assist != null && assist.isOnline())
  2951. +               {
  2952. +  
  2953. +                   if (assist.getSummon() != null)
  2954. +                   {
  2955. +                       Summon summon = assist.getSummon();
  2956. +                       if (summon != null)
  2957. +                           summon.unSummon(summon.getOwner());
  2958. +                       if (summon instanceof Pet)
  2959. +                           summon.unSummon(assist);
  2960. +                   }
  2961. +                   if (assist.getMountType() == 1 || assist.getMountType() == 2)
  2962. +                       assist.dismount();
  2963. +               }
  2964. +  
  2965. +               if (assist2 != null && assist2.isOnline())
  2966. +               {
  2967. +  
  2968. +                   if (assist2.getSummon() != null)
  2969. +                   {
  2970. +                       Summon summon = assist2.getSummon();
  2971. +                       if (summon != null)
  2972. +                           summon.unSummon(summon.getOwner());
  2973. +                       if (summon instanceof Pet)
  2974. +                           summon.unSummon(assist2);
  2975. +                   }
  2976. +  
  2977. +                   if (assist2.getMountType() == 1 || assist2.getMountType() == 2)
  2978. +                       assist2.dismount();
  2979. +               }
  2980. +  
  2981. +               if (assist3 != null && assist3.isOnline())
  2982. +               {
  2983. +  
  2984. +                   if (assist3.getSummon() != null)
  2985. +                   {
  2986. +                       Summon summon = assist3.getSummon();
  2987. +                       if (summon != null)
  2988. +                           summon.unSummon(summon.getOwner());
  2989. +                       if (summon instanceof Pet)
  2990. +                           summon.unSummon(assist3);
  2991. +                   }
  2992. +                   if (assist3.getMountType() == 1 || assist3.getMountType() == 2)
  2993. +                       assist3.dismount();
  2994. +               }
  2995. +  
  2996. +               if (assist4 != null && assist4.isOnline())
  2997. +               {
  2998. +  
  2999. +                   if (assist4.getSummon() != null)
  3000. +                   {
  3001. +                       Summon summon = assist4.getSummon();
  3002. +                       if (summon != null)
  3003. +                           summon.unSummon(summon.getOwner());
  3004. +                       if (summon instanceof Pet)
  3005. +                           summon.unSummon(assist4);
  3006. +                   }
  3007. +  
  3008. +                   if (assist4.getMountType() == 1 || assist4.getMountType() == 2)
  3009. +                       assist4.dismount();
  3010. +               }
  3011. +  
  3012. +               if (assist5 != null && assist5.isOnline())
  3013. +               {
  3014. +  
  3015. +                   if (assist5.getSummon() != null)
  3016. +                   {
  3017. +                       Summon summon = assist5.getSummon();
  3018. +                       if (summon != null)
  3019. +                           summon.unSummon(summon.getOwner());
  3020. +                       if (summon instanceof Pet)
  3021. +                           summon.unSummon(assist5);
  3022. +                   }
  3023. +  
  3024. +                   if (assist5.getMountType() == 1 || assist5.getMountType() == 2)
  3025. +                       assist5.dismount();
  3026. +               }
  3027. +  
  3028. +               if (assist6 != null && assist6.isOnline())
  3029. +               {
  3030. +  
  3031. +                   if (assist6.getSummon() != null)
  3032. +                   {
  3033. +                       Summon summon = assist6.getSummon();
  3034. +                       if (summon != null)
  3035. +                           summon.unSummon(summon.getOwner());
  3036. +                       if (summon instanceof Pet)
  3037. +                           summon.unSummon(assist6);
  3038. +                   }
  3039. +                   if (assist6.getMountType() == 1 || assist6.getMountType() == 2)
  3040. +                       assist6.dismount();
  3041. +               }
  3042. +  
  3043. +               if (assist7 != null && assist7.isOnline())
  3044. +               {
  3045. +  
  3046. +                   if (assist7.getSummon() != null)
  3047. +                   {
  3048. +                       Summon summon = assist7.getSummon();
  3049. +                       if (summon != null)
  3050. +                           summon.unSummon(summon.getOwner());
  3051. +                       if (summon instanceof Pet)
  3052. +                           summon.unSummon(assist7);
  3053. +                   }
  3054. +  
  3055. +                   if (assist7.getMountType() == 1 || assist7.getMountType() == 2)
  3056. +                       assist7.dismount();
  3057. +               }
  3058. +  
  3059. +               if (assist8 != null && assist8.isOnline())
  3060. +               {
  3061. +  
  3062. +                   if (assist8.getSummon() != null)
  3063. +                   {
  3064. +                       Summon summon = assist8.getSummon();
  3065. +                       if (summon != null)
  3066. +                           summon.unSummon(summon.getOwner());
  3067. +                       if (summon instanceof Pet)
  3068. +                           summon.unSummon(assist8);
  3069. +                   }
  3070. +  
  3071. +                   if (assist8.getMountType() == 1 || assist8.getMountType() == 2)
  3072. +                       assist8.dismount();
  3073. +               }
  3074. +           }
  3075. +  
  3076. +           public void removeSkills()
  3077. +           {
  3078. +               if (leader.getClassId() != ClassId.SHILLIEN_ELDER && leader.getClassId() != ClassId.SHILLIEN_SAINT && leader.getClassId() != ClassId.BISHOP && leader.getClassId() != ClassId.CARDINAL && leader.getClassId() != ClassId.ELVEN_ELDER && leader.getClassId() != ClassId.EVAS_SAINT)
  3079. +                   for (L2Effect effect : leader.getAllEffects())
  3080. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3081. +                           leader.stopSkillEffects(effect.getSkill().getId());
  3082. +               if (assist.getClassId() != ClassId.SHILLIEN_ELDER && assist.getClassId() != ClassId.SHILLIEN_SAINT && assist.getClassId() != ClassId.BISHOP && assist.getClassId() != ClassId.CARDINAL && assist.getClassId() != ClassId.ELVEN_ELDER && assist.getClassId() != ClassId.EVAS_SAINT)
  3083. +                   for (L2Effect effect : assist.getAllEffects())
  3084. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3085. +                           assist.stopSkillEffects(effect.getSkill().getId());
  3086. +               if (assist2.getClassId() != ClassId.SHILLIEN_ELDER && assist2.getClassId() != ClassId.SHILLIEN_SAINT && assist2.getClassId() != ClassId.BISHOP && assist2.getClassId() != ClassId.CARDINAL && assist2.getClassId() != ClassId.ELVEN_ELDER && assist2.getClassId() != ClassId.EVAS_SAINT)
  3087. +                   for (L2Effect effect : assist2.getAllEffects())
  3088. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3089. +                           assist2.stopSkillEffects(effect.getSkill().getId());
  3090. +               if (assist3.getClassId() != ClassId.SHILLIEN_ELDER && assist3.getClassId() != ClassId.SHILLIEN_SAINT && assist3.getClassId() != ClassId.BISHOP && assist3.getClassId() != ClassId.CARDINAL && assist3.getClassId() != ClassId.ELVEN_ELDER && assist3.getClassId() != ClassId.EVAS_SAINT)
  3091. +                   for (L2Effect effect : assist3.getAllEffects())
  3092. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3093. +                           assist3.stopSkillEffects(effect.getSkill().getId());
  3094. +               if (assist4.getClassId() != ClassId.SHILLIEN_ELDER && assist4.getClassId() != ClassId.SHILLIEN_SAINT && assist4.getClassId() != ClassId.BISHOP && assist4.getClassId() != ClassId.CARDINAL && assist4.getClassId() != ClassId.ELVEN_ELDER && assist4.getClassId() != ClassId.EVAS_SAINT)
  3095. +                   for (L2Effect effect : assist4.getAllEffects())
  3096. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3097. +                           assist4.stopSkillEffects(effect.getSkill().getId());
  3098. +               if (assist5.getClassId() != ClassId.SHILLIEN_ELDER && assist5.getClassId() != ClassId.SHILLIEN_SAINT && assist5.getClassId() != ClassId.BISHOP && assist5.getClassId() != ClassId.CARDINAL && assist5.getClassId() != ClassId.ELVEN_ELDER && assist5.getClassId() != ClassId.EVAS_SAINT)
  3099. +                   for (L2Effect effect : assist5.getAllEffects())
  3100. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3101. +                           assist5.stopSkillEffects(effect.getSkill().getId());
  3102. +               if (assist6.getClassId() != ClassId.SHILLIEN_ELDER && assist6.getClassId() != ClassId.SHILLIEN_SAINT && assist6.getClassId() != ClassId.BISHOP && assist6.getClassId() != ClassId.CARDINAL && assist6.getClassId() != ClassId.ELVEN_ELDER && assist6.getClassId() != ClassId.EVAS_SAINT)
  3103. +                   for (L2Effect effect : assist6.getAllEffects())
  3104. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3105. +                           assist6.stopSkillEffects(effect.getSkill().getId());
  3106. +               if (assist7.getClassId() != ClassId.SHILLIEN_ELDER && assist7.getClassId() != ClassId.SHILLIEN_SAINT && assist7.getClassId() != ClassId.BISHOP && assist7.getClassId() != ClassId.CARDINAL && assist7.getClassId() != ClassId.ELVEN_ELDER && assist7.getClassId() != ClassId.EVAS_SAINT)
  3107. +                   for (L2Effect effect : assist7.getAllEffects())
  3108. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3109. +                           assist7.stopSkillEffects(effect.getSkill().getId());
  3110. +               if (assist8.getClassId() != ClassId.SHILLIEN_ELDER && assist8.getClassId() != ClassId.SHILLIEN_SAINT && assist8.getClassId() != ClassId.BISHOP && assist8.getClassId() != ClassId.CARDINAL && assist8.getClassId() != ClassId.ELVEN_ELDER && assist8.getClassId() != ClassId.EVAS_SAINT)
  3111. +                   for (L2Effect effect : assist8.getAllEffects())
  3112. +                       if (Config.ARENA_STOP_SKILL_LIST.contains(Integer.valueOf(effect.getSkill().getId())))
  3113. +                           assist8.stopSkillEffects(effect.getSkill().getId());
  3114. +           }
  3115. +  
  3116. +           public void sendPacket(String message, int duration)
  3117. +           {
  3118. +               if (leader != null && leader.isOnline())
  3119. +                   leader.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3120. +               if (assist != null && assist.isOnline())
  3121. +                   assist.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3122. +               if (assist2 != null && assist2.isOnline())
  3123. +                   assist2.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3124. +               if (assist3 != null && assist3.isOnline())
  3125. +                   assist3.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3126. +               if (assist4 != null && assist4.isOnline())
  3127. +                   assist4.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3128. +               if (assist5 != null && assist5.isOnline())
  3129. +                   assist5.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3130. +               if (assist6 != null && assist6.isOnline())
  3131. +                   assist6.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3132. +               if (assist7 != null && assist7.isOnline())
  3133. +                   assist7.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3134. +               if (assist8 != null && assist8.isOnline())
  3135. +                   assist8.sendPacket(new ExShowScreenMessage(message, duration * 1000));
  3136. +           }
  3137. +  
  3138. +           public void inicarContagem(int duration)
  3139. +           {
  3140. +               if (leader != null && leader.isOnline())
  3141. +                   ThreadPool.schedule(new Arena9x9.countdown(leader, duration), 0L);
  3142. +               if (assist != null && assist.isOnline())
  3143. +                   ThreadPool.schedule(new Arena9x9.countdown(assist, duration), 0L);
  3144. +               if (assist2 != null && assist2.isOnline())
  3145. +                   ThreadPool.schedule(new Arena9x9.countdown(assist2, duration), 0L);
  3146. +               if (assist3 != null && assist3.isOnline())
  3147. +                   ThreadPool.schedule(new Arena9x9.countdown(assist3, duration), 0L);
  3148. +               if (assist4 != null && assist4.isOnline())
  3149. +                   ThreadPool.schedule(new Arena9x9.countdown(assist4, duration), 0L);
  3150. +               if (assist5 != null && assist5.isOnline())
  3151. +                   ThreadPool.schedule(new Arena9x9.countdown(assist5, duration), 0L);
  3152. +               if (assist6 != null && assist6.isOnline())
  3153. +                   ThreadPool.schedule(new Arena9x9.countdown(assist6, duration), 0L);
  3154. +               if (assist7 != null && assist7.isOnline())
  3155. +                   ThreadPool.schedule(new Arena9x9.countdown(assist7, duration), 0L);
  3156. +               if (assist8 != null && assist8.isOnline())
  3157. +                   ThreadPool.schedule(new Arena9x9.countdown(assist8, duration), 0L);
  3158. +           }
  3159. +  
  3160. +           public void sendPacketinit(String message, int duration)
  3161. +           {
  3162. +               if (leader != null && leader.isOnline())
  3163. +                   leader.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3164. +               if (assist != null && assist.isOnline())
  3165. +                   assist.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3166. +               if (assist2 != null && assist2.isOnline())
  3167. +                   assist2.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3168. +               if (assist3 != null && assist3.isOnline())
  3169. +                   assist3.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3170. +               if (assist4 != null && assist4.isOnline())
  3171. +                   assist4.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3172. +               if (assist5 != null && assist5.isOnline())
  3173. +                   assist5.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3174. +               if (assist6 != null && assist6.isOnline())
  3175. +                   assist6.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3176. +               if (assist7 != null && assist7.isOnline())
  3177. +                   assist7.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3178. +               if (assist8 != null && assist8.isOnline())
  3179. +                   assist8.sendPacket(new ExShowScreenMessage(message, duration * 1000, ExShowScreenMessage.SMPOS.MIDDLE_LEFT, false));
  3180. +           }
  3181. +       }
  3182. +  
  3183. +       private class EvtArenaTask implements Runnable
  3184. +       {
  3185. +           private final Arena9x9.Pair pairOne;
  3186. +           private final Arena9x9.Pair pairTwo;
  3187. +           private final int pOneX;
  3188. +           private final int pOneY;
  3189. +           private final int pOneZ;
  3190. +           private final int pTwoX;
  3191. +           private final int pTwoY;
  3192. +           private final int pTwoZ;
  3193. +           private Arena9x9.Arena arena;
  3194. +  
  3195. +           public EvtArenaTask(List<Pair> opponents)
  3196. +           {
  3197. +               pairOne = opponents.get(0);
  3198. +               pairTwo = opponents.get(1);
  3199. +               Player leader = pairOne.getLeader();
  3200. +               pOneX = leader.getX();
  3201. +               pOneY = leader.getY();
  3202. +               pOneZ = leader.getZ();
  3203. +               leader = pairTwo.getLeader();
  3204. +               pTwoX = leader.getX();
  3205. +               pTwoY = leader.getY();
  3206. +               pTwoZ = leader.getZ();
  3207. +           }
  3208. +  
  3209. +           @Override
  3210. +           public void run()
  3211. +           {
  3212. +               free -= 1;
  3213. +               pairOne.saveTitle();
  3214. +               pairTwo.saveTitle();
  3215. +               portPairsToArena();
  3216. +               pairOne.inicarContagem(Config.ARENA_WAIT_INTERVAL_9X9);
  3217. +               pairTwo.inicarContagem(Config.ARENA_WAIT_INTERVAL_9X9);
  3218. +               try
  3219. +               {
  3220. +                   Thread.sleep(Config.ARENA_WAIT_INTERVAL_9X9 * 1000);
  3221. +               }
  3222. +               catch (InterruptedException localInterruptedException1)
  3223. +               {
  3224. +               }
  3225. +  
  3226. +               pairOne.sendPacketinit("Started. Good Fight!", 3);
  3227. +               pairTwo.sendPacketinit("Started. Good Fight!", 3);
  3228. +               pairOne.EventTitle(Config.MSG_TEAM1, Config.TITLE_COLOR_TEAM1);
  3229. +               pairTwo.EventTitle(Config.MSG_TEAM2, Config.TITLE_COLOR_TEAM2);
  3230. +               pairOne.setImobilised(false);
  3231. +               pairTwo.setImobilised(false);
  3232. +               pairOne.setArenaAttack(true);
  3233. +               pairTwo.setArenaAttack(true);
  3234. +               while (check())
  3235. +                   try
  3236. +               {
  3237. +  
  3238. +                       Thread.sleep(Config.ARENA_CHECK_INTERVAL);
  3239. +               }
  3240. +               catch (InterruptedException e)
  3241. +               {
  3242. +               }
  3243. +  
  3244. +               this.finishDuel();
  3245. +               final Arena9x9 this$2 = Arena9x9.this;
  3246. +               ++this$2.free;
  3247. +           }
  3248. +  
  3249. +           private void finishDuel()
  3250. +           {
  3251. +               fights.remove(Integer.valueOf(arena.id));
  3252. +               rewardWinner();
  3253. +               pairOne.revive();
  3254. +               pairTwo.revive();
  3255. +               pairOne.teleportTo(pOneX, pOneY, pOneZ);
  3256. +               pairTwo.teleportTo(pTwoX, pTwoY, pTwoZ);
  3257. +               pairOne.backTitle();
  3258. +               pairTwo.backTitle();
  3259. +               pairOne.setInTournamentEvent(false);
  3260. +               pairTwo.setInTournamentEvent(false);
  3261. +               pairOne.setArenaProtection(false);
  3262. +               pairTwo.setArenaProtection(false);
  3263. +               pairOne.setArenaAttack(false);
  3264. +               pairTwo.setArenaAttack(false);
  3265. +               arena.setFree(true);
  3266. +           }
  3267. +  
  3268. +           private void rewardWinner()
  3269. +           {
  3270. +               if (pairOne.isAlive() && !pairTwo.isAlive())
  3271. +               {
  3272. +                   Player leader1 = pairOne.getLeader();
  3273. +                   Player leader2 = pairTwo.getLeader();
  3274. +  
  3275. +                   if (leader1.getClan() != null && leader2.getClan() != null && Config.TOURNAMENT_EVENT_ANNOUNCE)
  3276. +              
  3277. +                   World.announceToOnlinePlayers("[9x9]: (" + leader1.getClan().getName() + " VS " + leader2.getClan().getName() + ") ~> " + leader1.getClan().getName() + " win!");
  3278. +                  
  3279. +                  
  3280. +                   pairOne.rewards();
  3281. +                   pairTwo.rewardsLost();
  3282. +               }
  3283. +               else if (pairTwo.isAlive() && !pairOne.isAlive())
  3284. +               {
  3285. +                   Player leader1 = pairTwo.getLeader();
  3286. +                   Player leader2 = pairOne.getLeader();
  3287. +  
  3288. +                   if (leader1.getClan() != null && leader2.getClan() != null && Config.TOURNAMENT_EVENT_ANNOUNCE)
  3289. +                      
  3290. +                      
  3291. +                       World.announceToOnlinePlayers("[9x9]: (" + leader1.getClan().getName() + " VS " + leader2.getClan().getName() + ") ~> " + leader1.getClan().getName() + " win!");
  3292. +                  
  3293. +                   pairTwo.rewards();
  3294. +                   pairOne.rewardsLost();
  3295. +               }
  3296. +           }
  3297. +  
  3298. +           private boolean check()
  3299. +           {
  3300. +               return pairOne.isDead() && pairTwo.isDead();
  3301. +           }
  3302. +  
  3303. +           private void portPairsToArena()
  3304. +           {
  3305. +               for (Arena9x9.Arena arena : arenas)
  3306. +                   if (arena.isFree)
  3307. +                   {
  3308. +                       this.arena = arena;
  3309. +                       arena.setFree(false);
  3310. +                       pairOne.removePet();
  3311. +                       pairTwo.removePet();
  3312. +                       pairOne.teleportTo(arena.x - 850, arena.y, arena.z);
  3313. +                       pairTwo.teleportTo(arena.x + 850, arena.y, arena.z);
  3314. +                       pairOne.setImobilised(true);
  3315. +                       pairTwo.setImobilised(true);
  3316. +                       pairOne.setInTournamentEvent(true);
  3317. +                       pairTwo.setInTournamentEvent(true);
  3318. +                       pairOne.removeSkills();
  3319. +                       pairTwo.removeSkills();
  3320. +                       fights.put(Integer.valueOf(this.arena.id), pairOne.getLeader().getName() + " vs " + pairTwo.getLeader().getName());
  3321. +                       break;
  3322. +                   }
  3323. +           }
  3324. +       }
  3325. +  
  3326. +       private class Arena
  3327. +       {
  3328. +           protected int x;
  3329. +           protected int y;
  3330. +           protected int z;
  3331. +           protected boolean isFree = true;
  3332. +           int id;
  3333. +  
  3334. +           public Arena(int id, int x, int y, int z)
  3335. +           {
  3336. +               this.id = id;
  3337. +               this.x = x;
  3338. +               this.y = y;
  3339. +               this.z = z;
  3340. +           }
  3341. +  
  3342. +           public void setFree(boolean val)
  3343. +           {
  3344. +               isFree = val;
  3345. +           }
  3346. +       }
  3347. +  
  3348. +       protected class countdown implements Runnable
  3349. +       {
  3350. +           private final Player _player;
  3351. +           private final int _time;
  3352. +  
  3353. +           public countdown(Player player, int time)
  3354. +           {
  3355. +               _time = time;
  3356. +               _player = player;
  3357. +           }
  3358. +  
  3359. +           @Override
  3360. +           public void run()
  3361. +           {
  3362. +               if (_player.isOnline())
  3363. +               {
  3364. +  
  3365. +                   switch (_time)
  3366. +                   {
  3367. +                       case 60:
  3368. +                       case 120:
  3369. +                       case 180:
  3370. +                       case 240:
  3371. +                       case 300:
  3372. +                           if (_player.isOnline())
  3373. +                           {
  3374. +                               _player.sendPacket(new ExShowScreenMessage("The battle starts in " + _time + " second(s)..", 4000));
  3375. +                               _player.sendMessage(_time + " second(s) to start the battle.");
  3376. +                               _player.setIsParalyzed(true);
  3377. +                           }
  3378. +                           break;
  3379. +                       case 45:
  3380. +                           if (_player.isOnline())
  3381. +                           {
  3382. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  3383. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3384. +                               _player.setIsParalyzed(true);
  3385. +                               _player.broadcastPacket(new SocialAction(_player, 1));
  3386. +                           }
  3387. +                           break;
  3388. +                       case 27:
  3389. +                           if (_player.isOnline())
  3390. +                           {
  3391. +                               _player.sendPacket(new ExShowScreenMessage("The battle starts in 30 second(s)..", 4000));
  3392. +                               _player.sendMessage("30 second(s) to start the battle!");
  3393. +                               _player.setIsParalyzed(true);
  3394. +                               _player.broadcastPacket(new SocialAction(_player, 2));
  3395. +                           }
  3396. +                           break;
  3397. +                       case 20:
  3398. +                           if (_player.isOnline())
  3399. +                           {
  3400. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  3401. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3402. +                               _player.setIsParalyzed(true);
  3403. +                              
  3404. +                           }
  3405. +                           break;
  3406. +                       case 15:
  3407. +                           if (_player.isOnline())
  3408. +                           {
  3409. +                               _player.sendPacket(new ExShowScreenMessage("" + _time + " ..", 3000));
  3410. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3411. +                               _player.setIsParalyzed(true);
  3412. +                               _player.broadcastPacket(new SocialAction(_player, 9));
  3413. +                           }
  3414. +                           break;
  3415. +                       case 10:
  3416. +                           if (_player.isOnline())
  3417. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3418. +                           _player.setIsParalyzed(true);
  3419. +                           _player.broadcastPacket(new SocialAction(_player, 5));
  3420. +                           break;
  3421. +                       case 5:
  3422. +                           if (_player.isOnline())
  3423. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3424. +                           _player.setIsParalyzed(true);
  3425. +                           break;
  3426. +                       case 4:
  3427. +                           if (_player.isOnline())
  3428. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3429. +                           _player.setIsParalyzed(true);
  3430. +                           break;
  3431. +                       case 3:
  3432. +                           if (_player.isOnline())
  3433. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3434. +                           _player.setIsParalyzed(true);
  3435. +                           break;
  3436. +                       case 2:
  3437. +                           if (_player.isOnline())
  3438. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3439. +                           _player.setIsParalyzed(true);
  3440. +                           break;
  3441. +                       case 1:
  3442. +                           if (_player.isOnline())
  3443. +                               _player.sendMessage(_time + " second(s) to start the battle!");
  3444. +                           _player.setIsParalyzed(false);
  3445. +                           break;
  3446. +                   }
  3447. +                   if (_time > 1)
  3448. +                       ThreadPool.schedule(new countdown(_player, _time - 1), 1000L);
  3449. +               }
  3450. +           }
  3451. +       }
  3452. +  
  3453. +       private static class SingletonHolder
  3454. +       {
  3455. +           protected static final Arena9x9 INSTANCE = new Arena9x9();
  3456. +       }
  3457. +   }
  3458. +  
  3459.  
  3460. Index: package l2jban.events;ArenaEvent.java
  3461. ===================================================================
  3462. --- package l2jban.events;ArenaEvent.java   (revision 84)
  3463. +++ package l2jban.events;ArenaEvent.java   (working copy)
  3464.  
  3465. +   package l2jban.events;
  3466. +  
  3467. +   import java.text.SimpleDateFormat;
  3468. +   import java.util.Calendar;
  3469. +   import java.util.logging.Logger;
  3470. +  
  3471. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  3472. +  
  3473. +   import net.sf.l2j.Config;
  3474. +  
  3475. +   public class ArenaEvent
  3476. +   {
  3477. +       private static ArenaEvent _instance = null;
  3478. +       protected static final Logger _log = Logger.getLogger(ArenaEvent.class.getName());
  3479. +       private Calendar NextEvent;
  3480. +       private final SimpleDateFormat format = new SimpleDateFormat("HH:mm");
  3481. +  
  3482. +       public static ArenaEvent getInstance()
  3483. +       {
  3484. +           if (_instance == null)
  3485. +               _instance = new ArenaEvent();
  3486. +           return _instance;
  3487. +       }
  3488. +  
  3489. +       public String getNextTime()
  3490. +       {
  3491. +           if (NextEvent.getTime() != null)
  3492. +               return format.format(NextEvent.getTime());
  3493. +           return "Erro";
  3494. +       }
  3495. +  
  3496. +       public void StartCalculationOfNextEventTime()
  3497. +       {
  3498. +           try
  3499. +           {
  3500. +               Calendar currentTime = Calendar.getInstance();
  3501. +               Calendar testStartTime = null;
  3502. +               long flush2 = 0L;
  3503. +               long timeL = 0L;
  3504. +               int count = 0;
  3505. +               for (String timeOfDay : Config.TOURNAMENT_EVENT_INTERVAL_BY_TIME_OF_DAY)
  3506. +               {
  3507. +                   testStartTime = Calendar.getInstance();
  3508. +                   testStartTime.setLenient(true);
  3509. +                   String[] splitTimeOfDay = timeOfDay.split(":");
  3510. +                   testStartTime.set(11, Integer.parseInt(splitTimeOfDay[0]));
  3511. +                   testStartTime.set(12, Integer.parseInt(splitTimeOfDay[1]));
  3512. +                   testStartTime.set(13, 0);
  3513. +                   if (testStartTime.getTimeInMillis() < currentTime.getTimeInMillis())
  3514. +                       testStartTime.add(5, 1);
  3515. +                   timeL = testStartTime.getTimeInMillis() - currentTime.getTimeInMillis();
  3516. +                   if (count == 0)
  3517. +                   {
  3518. +                       flush2 = timeL;
  3519. +                       NextEvent = testStartTime;
  3520. +                   }
  3521. +                   if (timeL < flush2)
  3522. +                   {
  3523. +                       flush2 = timeL;
  3524. +                       NextEvent = testStartTime;
  3525. +                   }
  3526. +                   count++;
  3527. +               }
  3528. +               _log.info("[Tournament]: Proximo Evento: " + NextEvent.getTime().toString());
  3529. +               ThreadPool.schedule(new StartEventTask(), flush2);
  3530. +           }
  3531. +           catch (Exception e)
  3532. +           {
  3533. +               System.out.println("[Tournament]: " + e);
  3534. +           }
  3535. +       }
  3536. +  
  3537. +       class StartEventTask implements Runnable
  3538. +       {
  3539. +           StartEventTask()
  3540. +           {
  3541. +           }
  3542. +  
  3543. +           @Override
  3544. +           public void run()
  3545. +           {
  3546. +               ArenaEvent._log.info("----------------------------------------------------------------------------");
  3547. +               ArenaEvent._log.info("[Tournament]: Event Started.");
  3548. +               ArenaEvent._log.info("----------------------------------------------------------------------------");
  3549. +               ArenaTask.SpawnEvent();
  3550. +           }
  3551. +       }
  3552. +   }
  3553. +  
  3554.  
  3555. Index: package l2jban.events;ArenaTask.java
  3556. ===================================================================
  3557. --- package l2jban.events;ArenaTask.java    (revision 84)
  3558. +++ package l2jban.events;ArenaTask.java    (working copy)
  3559.  
  3560. +   package l2jban.events;
  3561. +  
  3562. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  3563. +  
  3564. +   import net.sf.l2j.Config;
  3565. +   import net.sf.l2j.gameserver.data.ItemTable;
  3566. +   import l2jban.events.Arena2x2;
  3567. +   import net.sf.l2j.gameserver.model.World;
  3568. +   import net.sf.l2j.gameserver.model.actor.Player;
  3569. +   import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
  3570. +   import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
  3571. +   import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
  3572. +  
  3573. +   import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCustom;
  3574. +   import net.sf.l2j.gameserver.model.spawn.L2Spawn;
  3575. +   import net.sf.l2j.gameserver.data.sql.SpawnTable;
  3576. +   import net.sf.l2j.gameserver.data.xml.NpcData;
  3577. +  
  3578. +   public abstract class ArenaTask
  3579. +   {
  3580. +       public static L2Spawn _npcSpawn1;
  3581. +       public static L2Spawn _npcSpawn2;
  3582. +       public static int _bossHeading = 0;
  3583. +       public static boolean _started = false;
  3584. +       public static boolean _aborted = false;
  3585. +  
  3586. +       public static void SpawnEvent()
  3587. +       {
  3588. +           spawnNpc1();
  3589. +  
  3590. +          
  3591. +           World.announceToOnlinePlayers("Reward: " + ItemTable.getInstance().getTemplate(Config.ARENA_REWARD_ID).getName());
  3592. +          
  3593. +           World.announceToOnlinePlayers("[Tournament]: Party Event PvP");
  3594. +           World.announceToOnlinePlayers("[Tournament]: Teleport in the GK to (Tournament) Zone");
  3595. +           World.announceToOnlinePlayers("[Tournament]: Duration: " + Config.TOURNAMENT_TIME + " minute(s)!");
  3596. +          
  3597. +  
  3598. +           _aborted = false;
  3599. +           _started = true;
  3600. +  
  3601. +           waiter(Config.TOURNAMENT_TIME * 60 * 1000);
  3602. +           if (!_aborted)
  3603. +               finishEvent();
  3604. +       }
  3605. +  
  3606. +       public static void finishEvent()
  3607. +       {
  3608. +  
  3609. +          
  3610. +           World.announceToOnlinePlayers("[Tournament]: Event Finished!");
  3611. +  
  3612. +           unspawnNpc1();
  3613. +           _started = false;
  3614. +           if (!AdminCustom._arena_manual)
  3615. +               ArenaEvent.getInstance().StartCalculationOfNextEventTime();
  3616. +           else
  3617. +               AdminCustom._arena_manual = false;
  3618. +           for (Player player : World.getInstance().getPlayers())
  3619. +               if (player != null && player.isOnline())
  3620. +               {
  3621. +                   if (player.isArenaProtection())
  3622. +                       ThreadPool.schedule(new Runnable()
  3623. +                       {
  3624. +                           @Override
  3625. +                           public void run()
  3626. +                           {
  3627. +                               if (player.isOnline() && !player.isInArenaEvent() && !player.isArenaAttack())
  3628. +                               {
  3629. +                                   Arena4x4.getInstance().remove(player);
  3630. +                                   Arena9x9.getInstance().remove(player);
  3631. +                                   Arena2x2.getInstance().remove(player);
  3632. +                                   player.setArenaProtection(false);
  3633. +                                  
  3634. +                                  
  3635. +                               }
  3636. +                           }
  3637. +                       }, 25000L);
  3638. +                   CreatureSay cs = new CreatureSay(player.getObjectId(), 3, "[Tournament]", "Next Tournament: " + ArenaEvent.getInstance().getNextTime() + " (GMT-3).");
  3639. +                   player.sendPacket(cs);
  3640. +               }
  3641. +       }
  3642. +  
  3643. +       public static void spawnNpc1()
  3644. +       {
  3645. +  
  3646. +           NpcTemplate template = NpcData.getInstance().getTemplate(Config.ARENA_NPC);
  3647. +           try
  3648. +           {
  3649. +               _npcSpawn1 = new L2Spawn(template);
  3650. +               _npcSpawn1.setLoc(loc1x(), loc1y(), loc1z(), Config.NPC_Heading);
  3651. +               _npcSpawn1.setRespawnDelay(1);
  3652. +  
  3653. +               SpawnTable.getInstance().addSpawn(_npcSpawn1, false);
  3654. +  
  3655. +               _npcSpawn1.setRespawnState(true);
  3656. +               _npcSpawn1.doSpawn(false);
  3657. +               _npcSpawn1.getNpc().getStatus().setCurrentHp(9.99999999E8);
  3658. +               _npcSpawn1.getNpc().isAggressive();
  3659. +               _npcSpawn1.getNpc().decayMe();
  3660. +               _npcSpawn1.getNpc().spawnMe(_npcSpawn1.getNpc().getX(), _npcSpawn1.getNpc().getY(), _npcSpawn1.getNpc().getZ());
  3661. +               _npcSpawn1.getNpc().broadcastPacket(new MagicSkillUse(_npcSpawn1.getNpc(), _npcSpawn1.getNpc(), 1034, 1, 1, 1));
  3662. +           }
  3663. +           catch (Exception e)
  3664. +           {
  3665. +               e.printStackTrace();
  3666. +           }
  3667. +       }
  3668. +      
  3669. +       public static void spawnNpc2() {
  3670. +           final NpcTemplate tmpl = NpcData.getInstance().getTemplate(Config.ARENA_NPC);
  3671. +           try {
  3672. +               (ArenaTask._npcSpawn2 = new L2Spawn(tmpl)).setLoc(loc2x(), loc2y(), loc2z(), Config.NPC_Heading);
  3673. +               ArenaTask._npcSpawn2.setRespawnDelay(1);
  3674. +               SpawnTable.getInstance().addSpawn(ArenaTask._npcSpawn2, false);
  3675. +               ArenaTask._npcSpawn2.setRespawnState(true);
  3676. +               ArenaTask._npcSpawn2.doSpawn(false);
  3677. +               ArenaTask._npcSpawn2.getNpc().getStatus().setCurrentHp(9.99999999E8);
  3678. +               ArenaTask._npcSpawn2.getNpc().isAggressive();
  3679. +               ArenaTask._npcSpawn2.getNpc().decayMe();
  3680. +               ArenaTask._npcSpawn2.getNpc().spawnMe(ArenaTask._npcSpawn2.getNpc().getX(), ArenaTask._npcSpawn2.getNpc().getY(), ArenaTask._npcSpawn2.getNpc().getZ());
  3681. +               ArenaTask._npcSpawn2.getNpc().broadcastPacket(new MagicSkillUse(ArenaTask._npcSpawn2.getNpc(), ArenaTask._npcSpawn2.getNpc(), 1034, 1, 1, 1));
  3682. +           }
  3683. +           catch (Exception e) {
  3684. +               e.printStackTrace();
  3685. +           }
  3686. +       }
  3687. +  
  3688. +       public static boolean is_started()
  3689. +       {
  3690. +           return _started;
  3691. +       }
  3692. +  
  3693. +       public static void unspawnNpc1()
  3694. +       {
  3695. +           if (_npcSpawn1 == null)
  3696. +               return;
  3697. +           _npcSpawn1.getNpc().deleteMe();
  3698. +           _npcSpawn1.setRespawnState(false);
  3699. +           SpawnTable.getInstance().deleteSpawn(_npcSpawn1, true);
  3700. +       }
  3701. +  
  3702. +       public static void unspawnNpc2()
  3703. +       {
  3704. +           if (_npcSpawn2 == null)
  3705. +               return;
  3706. +           _npcSpawn2.getNpc().deleteMe();
  3707. +           _npcSpawn2.setRespawnState(false);
  3708. +           SpawnTable.getInstance().deleteSpawn(_npcSpawn2, true);
  3709. +       }
  3710. +  
  3711. +       public static int loc1x()
  3712. +       {
  3713. +           int loc1x = Config.NPC_locx;
  3714. +           return loc1x;
  3715. +       }
  3716. +  
  3717. +       public static int loc1y()
  3718. +       {
  3719. +           int loc1y = Config.NPC_locy;
  3720. +           return loc1y;
  3721. +       }
  3722. +  
  3723. +       public static int loc1z()
  3724. +       {
  3725. +           int loc1z = Config.NPC_locz;
  3726. +           return loc1z;
  3727. +       }
  3728. +      
  3729. +          public static int loc2x() {
  3730. +               final int loc2x = Config.NPC_locx;
  3731. +               return loc2x;
  3732. +           }
  3733. +          
  3734. +           public static int loc2y() {
  3735. +               final int loc2y = Config.NPC_locy;
  3736. +               return loc2y;
  3737. +           }
  3738. +          
  3739. +           public static int loc2z() {
  3740. +               final int loc2z = Config.NPC_locz;
  3741. +               return loc2z;
  3742. +           }
  3743. +  
  3744. +       protected static void waiter(long interval)
  3745. +       {
  3746. +           long startWaiterTime = System.currentTimeMillis();
  3747. +           int seconds = (int) (interval / 1000L);
  3748. +           while (startWaiterTime + interval > System.currentTimeMillis() && !_aborted)
  3749. +           {
  3750. +               seconds--;
  3751. +               switch (seconds)
  3752. +               {
  3753. +                   case 3600:
  3754. +                       if (_started)
  3755. +                       {
  3756. +  
  3757. +                           World.announceToOnlinePlayers("[Tournament]: Party Event PvP");
  3758. +                           World.announceToOnlinePlayers("[Tournament]: Teleport in the GK to (Tournament) Zone");
  3759. +                           World.announceToOnlinePlayers("[Tournament]: Reward: " + ItemTable.getInstance().getTemplate(Config.ARENA_REWARD_ID).getName());
  3760. +                           World.announceToOnlinePlayers("[Tournament]: " + seconds / 60 / 60 + " hour(s) till event finish!");
  3761. +                       }
  3762. +                       break;
  3763. +                   case 60:
  3764. +                   case 120:
  3765. +                   case 180:
  3766. +                   case 240:
  3767. +                   case 300:
  3768. +                   case 600:
  3769. +                   case 900:
  3770. +                   case 1800:
  3771. +                       if (_started)
  3772. +                           World.announceToOnlinePlayers("[Tournament]: " + seconds / 60 + " minute(s) till event finish!");
  3773. +                       break;
  3774. +                   case 1:
  3775. +                   case 2:
  3776. +                   case 3:
  3777. +                   case 10:
  3778. +                   case 15:
  3779. +                   case 30:
  3780. +                       if (_started)
  3781. +                           World.announceToOnlinePlayers("[Tournament]: " + seconds + " second(s) till event finish!");
  3782. +                       break;
  3783. +               }
  3784. +               long startOneSecondWaiterStartTime = System.currentTimeMillis();
  3785. +               while (startOneSecondWaiterStartTime + 1000L > System.currentTimeMillis())
  3786. +                   try
  3787. +               {
  3788. +                       Thread.sleep(1L);
  3789. +               }
  3790. +               catch (InterruptedException ex) {}
  3791. +           }
  3792. +       }
  3793. +       static {
  3794. +           ArenaTask._bossHeading = 0;
  3795. +           ArenaTask._started = false;
  3796. +           ArenaTask._aborted = false;
  3797. +       }
  3798. +   }
  3799. +
  3800.  
  3801. Index: package model/actor/plyer.java
  3802. ===================================================================
  3803. --- package model/actor/plyer.java  (revision 84)
  3804. +++ package model/actor/plyer.java  (working copy)
  3805.  
  3806. +   public int _originalTitleColorTournament = 0;
  3807. +   public String _originalTitleTournament;
  3808. +  
  3809. +   public int duelist_cont = 0;
  3810. +   public int dreadnought_cont = 0;
  3811. +   public int tanker_cont = 0;
  3812. +   public int dagger_cont = 0;
  3813. +   public int archer_cont = 0;
  3814. +   public int bs_cont = 0;
  3815. +   public int archmage_cont = 0;
  3816. +   public int soultaker_cont = 0;
  3817. +   public int mysticMuse_cont = 0;
  3818. +   public int stormScreamer_cont = 0;
  3819. +   public int titan_cont = 0;
  3820. +   public int grandKhauatari_cont = 0;
  3821. +   public int dominator_cont = 0;
  3822. +   public int doomcryer_cont = 0;
  3823. +  
  3824. +  
  3825. +   private boolean _TournamentTeleport;
  3826. +  
  3827. +   public void setTournamentTeleport(boolean comm)
  3828. +   {
  3829. +       _TournamentTeleport = comm;
  3830. +   }
  3831. +  
  3832. +   public boolean isTournamentTeleport()
  3833. +   {
  3834. +       return _TournamentTeleport;
  3835. +   }
  3836.  
  3837. Index: net.sf.l2j.gameserver.model.zone.type;TournamentZone.java
  3838. ===================================================================
  3839. --- net.sf.l2j.gameserver.model.zone.type;TournamentZone.java   (revision 84)
  3840. +++ net.sf.l2j.gameserver.model.zone.type;TournamentZone.java   (working copy)
  3841.  
  3842. +   package net.sf.l2j.gameserver.model.zone.type;
  3843. +  
  3844. +   import net.sf.l2j.gameserver.model.actor.Creature;
  3845. +   import net.sf.l2j.gameserver.model.actor.Player;
  3846. +   import net.sf.l2j.gameserver.enums.actors.ClassId;
  3847. +   import net.sf.l2j.gameserver.model.zone.SpawnZoneType;
  3848. +  
  3849. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  3850. +  
  3851. +   import net.sf.l2j.gameserver.enums.ZoneId;
  3852. +   import net.sf.l2j.gameserver.network.SystemMessageId;
  3853. +   import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  3854. +   import net.sf.l2j.gameserver.taskmanager.PvpFlagTaskManager;
  3855. +  
  3856. +   public class TournamentZone extends SpawnZoneType
  3857. +   {
  3858. +       public TournamentZone(int id)
  3859. +       {
  3860. +           super(id);
  3861. +       }
  3862. +  
  3863. +       @Override
  3864. +       protected void onEnter(Creature character)
  3865. +       {
  3866. +           if (character instanceof Player)
  3867. +           {
  3868. +          
  3869. +               Player player = (Player) character;
  3870. +               if (player.isArenaProtection())
  3871. +               {
  3872. +                   if (player.getPvpFlag() > 0)
  3873. +                       PvpFlagTaskManager.getInstance().remove(player);
  3874. +                   player.updatePvPFlag(1);
  3875. +                   player.broadcastUserInfo();
  3876. +               }
  3877. +              
  3878. +               {
  3879. +               if (character instanceof Player)
  3880. +                   ((Player) character).sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE);
  3881. +               }
  3882. +              
  3883. +               if (player.getClassId() == ClassId.BISHOP || player.getClassId() == ClassId.CARDINAL || player.getClassId() == ClassId.SHILLIEN_ELDER || player.getClassId() == ClassId.SHILLIEN_SAINT || player.getClassId() == ClassId.EVAS_SAINT || player.getClassId() == ClassId.ELVEN_ELDER || player.getClassId() == ClassId.PROPHET || player.getClassId() == ClassId.HIEROPHANT)
  3884. +               {
  3885. +                   player.sendPacket(new ExShowScreenMessage("Class prohibited at event Tournament", 6000, 2, true));
  3886. +                   ThreadPool.schedule(new Runnable()
  3887. +                   {
  3888. +                       @Override
  3889. +                       public void run()
  3890. +                       {
  3891. +                           if (player.isOnline() && !player.isInsideZone(ZoneId.PEACE))
  3892. +                               player.teleportTo(83485, 148624, -3402, 50);
  3893. +                           player.isDead();
  3894. +                           player.broadcastUserInfo();
  3895. +                       }
  3896. +                   }, 4000L);
  3897. +               }
  3898. +              
  3899. +               {
  3900. +               character.setInsideZone(ZoneId.TORURNAMENT_ARENA, true);
  3901. +               character.setInsideZone(ZoneId.PVP, true);
  3902. +               }
  3903. +              
  3904. +               {
  3905. +               if (character instanceof Player)
  3906. +                   character.setInsideZone(ZoneId.NO_RESTART, true);
  3907. +               }
  3908. +              
  3909. +               {
  3910. +               if (character instanceof Player)
  3911. +                   character.setInsideZone(ZoneId.NO_STORE, true);
  3912. +               }
  3913. +           }
  3914. +  
  3915. +       }
  3916. +  
  3917. +       @Override
  3918. +       protected void onExit(Creature character)
  3919. +       {
  3920. +           character.setInsideZone(ZoneId.TORURNAMENT_ARENA, false);
  3921. +           character.setInsideZone(ZoneId.PVP, false);
  3922. +          
  3923. +           if (character instanceof Player)
  3924. +               character.setInsideZone(ZoneId.NO_RESTART, false);
  3925. +          
  3926. +           if (character instanceof Player)
  3927. +               character.setInsideZone(ZoneId.NO_STORE, false);
  3928. +          
  3929. +           if (character instanceof Player)
  3930. +           {
  3931. +               Player player = (Player) character;
  3932. +               player.updatePvPFlag(0);
  3933. +               player.broadcastUserInfo();
  3934. +           }
  3935. +           if (character instanceof Player)
  3936. +               ((Player) character).sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
  3937. +       }
  3938. +  
  3939. +   }
  3940. +
  3941.  
  3942. Index: net.sf.l2j.gameserver.enums;ZoneId.java
  3943. ===================================================================
  3944. --- net.sf.l2j.gameserver.enums;ZoneId.java (revision 84)
  3945. +++ net.sf.l2j.gameserver.enums;ZoneId.java (working copy)
  3946.  
  3947. -   BOSS(19),
  3948. +   BOSS(19),
  3949. +   TORURNAMENT_ARENA(20),
  3950.  
  3951.  
  3952. Index: net.sf.l2j.gameserver.model.actor.instance;Tournament.java
  3953. ===================================================================
  3954. --- net.sf.l2j.gameserver.model.actor.instance;Tournament.java  (revision 84)
  3955. +++ net.sf.l2j.gameserver.model.actor.instance;Tournament.java  (working copy)
  3956.  
  3957. +   package net.sf.l2j.gameserver.model.actor.instance;
  3958. +  
  3959. +   import java.util.StringTokenizer;
  3960. +  
  3961. +   import net.sf.l2j.Config;
  3962. +  
  3963. +   import l2jban.events.Arena2x2;
  3964. +   import l2jban.events.Arena4x4;
  3965. +   import l2jban.events.Arena9x9;
  3966. +  
  3967. +   import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
  3968. +   import net.sf.l2j.gameserver.model.group.Party;
  3969. +   import net.sf.l2j.gameserver.data.xml.PlayerData;
  3970. +   import net.sf.l2j.gameserver.enums.actors.ClassId;
  3971. +   import net.sf.l2j.gameserver.model.olympiad.OlympiadManager;
  3972. +   import net.sf.l2j.gameserver.network.SystemMessageId;
  3973. +   import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
  3974. +   import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  3975. +   import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
  3976. +   import net.sf.l2j.gameserver.model.actor.Player;
  3977. +  
  3978. +   public class Tournament extends Folk
  3979. +   {
  3980. +      
  3981. +       public Tournament(int objectId, NpcTemplate template)
  3982. +       {
  3983. +           super(objectId, template);
  3984. +       }
  3985. +  
  3986. +       @Override
  3987. +       public void showChatWindow(Player player)
  3988. +       {
  3989. +           player.sendPacket(ActionFailed.STATIC_PACKET);
  3990. +           String filename = "data/html/mods/tournament/9996.htm";
  3991. +           NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  3992. +           html.setFile(filename);
  3993. +           html.replace("%objectId%", getObjectId());
  3994. +  
  3995. +              if (Arena2x2.registered.size() == 0) {
  3996. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  3997. +               }
  3998. +               else if (Arena2x2.registered.size() == 1) {
  3999. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_1_over\" fore=\"L2UI_CH3.calculate1_1\">");
  4000. +               }
  4001. +               else if (Arena2x2.registered.size() == 2) {
  4002. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_2_over\" fore=\"L2UI_CH3.calculate1_2\">");
  4003. +               }
  4004. +               else if (Arena2x2.registered.size() == 3) {
  4005. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_3_over\" fore=\"L2UI_CH3.calculate1_3\">");
  4006. +               }
  4007. +               else if (Arena2x2.registered.size() == 4) {
  4008. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_4_over\" fore=\"L2UI_CH3.calculate1_4\">");
  4009. +               }
  4010. +               else if (Arena2x2.registered.size() == 5) {
  4011. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_5_over\" fore=\"L2UI_CH3.calculate1_5\">");
  4012. +               }
  4013. +               else if (Arena2x2.registered.size() == 6) {
  4014. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_6_over\" fore=\"L2UI_CH3.calculate1_6\">");
  4015. +               }
  4016. +               else if (Arena2x2.registered.size() == 7) {
  4017. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_7_over\" fore=\"L2UI_CH3.calculate1_7\">");
  4018. +               }
  4019. +               else if (Arena2x2.registered.size() == 8) {
  4020. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_8_over\" fore=\"L2UI_CH3.calculate1_8\">");
  4021. +               }
  4022. +               else if (Arena2x2.registered.size() >= 9) {
  4023. +                   html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_9_over\" fore=\"L2UI_CH3.calculate1_9\">");
  4024. +               }
  4025. +              
  4026. +               if (Arena2x2.registered.size() == 0)
  4027. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4028. +               else if (Arena2x2.registered.size() == 1)
  4029. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4030. +               else if (Arena2x2.registered.size() == 2)
  4031. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4032. +               else if (Arena2x2.registered.size() == 3)
  4033. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4034. +               else if (Arena2x2.registered.size() == 4)
  4035. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4036. +               else if (Arena2x2.registered.size() == 5)
  4037. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4038. +               else if (Arena2x2.registered.size() == 6)
  4039. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4040. +               else if (Arena2x2.registered.size() == 7)
  4041. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4042. +               else if (Arena2x2.registered.size() == 8)
  4043. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4044. +               else if (Arena2x2.registered.size() >= 9)
  4045. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4046. +          
  4047. +               if (Arena2x2.registered.size() == 0)
  4048. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4049. +               else if (Arena2x2.registered.size() == 1)
  4050. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4051. +               else if (Arena2x2.registered.size() == 2)
  4052. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4053. +               else if (Arena2x2.registered.size() == 3)
  4054. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4055. +               else if (Arena2x2.registered.size() == 4)
  4056. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4057. +               else if (Arena2x2.registered.size() == 5)
  4058. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4059. +               else if (Arena2x2.registered.size() == 6)
  4060. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4061. +               else if (Arena2x2.registered.size() == 7)
  4062. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4063. +               else if (Arena2x2.registered.size() == 8)
  4064. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4065. +               else if (Arena2x2.registered.size() >= 9)
  4066. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4067. +          
  4068. +      
  4069. +               player.sendPacket(html);
  4070. +           }
  4071. +      
  4072. +      
  4073. +       public void showChatWindow1(Player player)
  4074. +       {
  4075. +           player.sendPacket(ActionFailed.STATIC_PACKET);
  4076. +           String filename = "data/html/mods/tournament/9996.htm";
  4077. +           NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  4078. +           html.setFile(filename);
  4079. +           html.replace("%objectId%", getObjectId());
  4080. +  
  4081. +  
  4082. +      
  4083. +               if (Arena4x4.registered.size() == 0)
  4084. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4085. +               else if (Arena4x4.registered.size() == 1)
  4086. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_1_over\" fore=\"L2UI_CH3.calculate1_1\">");
  4087. +               else if (Arena4x4.registered.size() == 2)
  4088. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_2_over\" fore=\"L2UI_CH3.calculate1_2\">");
  4089. +               else if (Arena4x4.registered.size() == 3)
  4090. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_3_over\" fore=\"L2UI_CH3.calculate1_3\">");
  4091. +               else if (Arena4x4.registered.size() == 4)
  4092. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_4_over\" fore=\"L2UI_CH3.calculate1_4\">");
  4093. +               else if (Arena4x4.registered.size() == 5)
  4094. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_5_over\" fore=\"L2UI_CH3.calculate1_5\">");
  4095. +               else if (Arena4x4.registered.size() == 6)
  4096. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_6_over\" fore=\"L2UI_CH3.calculate1_6\">");
  4097. +               else if (Arena4x4.registered.size() == 7)
  4098. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_7_over\" fore=\"L2UI_CH3.calculate1_7\">");
  4099. +               else if (Arena4x4.registered.size() == 8)
  4100. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_8_over\" fore=\"L2UI_CH3.calculate1_8\">");
  4101. +               else if (Arena4x4.registered.size() >= 9)
  4102. +                   html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_9_over\" fore=\"L2UI_CH3.calculate1_9\">");
  4103. +          
  4104. +                  if (Arena4x4.registered.size() == 0) {
  4105. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4106. +                   }
  4107. +                   else if (Arena4x4.registered.size() == 1) {
  4108. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4109. +                   }
  4110. +                   else if (Arena4x4.registered.size() == 2) {
  4111. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4112. +                   }
  4113. +                   else if (Arena4x4.registered.size() == 3) {
  4114. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4115. +                   }
  4116. +                   else if (Arena4x4.registered.size() == 4) {
  4117. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4118. +                   }
  4119. +                   else if (Arena4x4.registered.size() == 5) {
  4120. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4121. +                   }
  4122. +                   else if (Arena4x4.registered.size() == 6) {
  4123. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4124. +                   }
  4125. +                   else if (Arena4x4.registered.size() == 7) {
  4126. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4127. +                   }
  4128. +                   else if (Arena4x4.registered.size() == 8) {
  4129. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4130. +                   }
  4131. +                   else if (Arena4x4.registered.size() >= 9) {
  4132. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4133. +                   }
  4134. +                  
  4135. +                  
  4136. +               if (Arena4x4.registered.size() == 0)
  4137. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4138. +               else if (Arena4x4.registered.size() == 1)
  4139. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4140. +               else if (Arena4x4.registered.size() == 2)
  4141. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4142. +               else if (Arena4x4.registered.size() == 3)
  4143. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4144. +               else if (Arena4x4.registered.size() == 4)
  4145. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4146. +               else if (Arena4x4.registered.size() == 5)
  4147. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4148. +               else if (Arena4x4.registered.size() == 6)
  4149. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4150. +               else if (Arena4x4.registered.size() == 7)
  4151. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4152. +               else if (Arena4x4.registered.size() == 8)
  4153. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4154. +               else if (Arena4x4.registered.size() >= 9)
  4155. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4156. +          
  4157. +      
  4158. +               player.sendPacket(html);
  4159. +           }
  4160. +      
  4161. +       public void showChatWindow2(Player player)
  4162. +       {
  4163. +           player.sendPacket(ActionFailed.STATIC_PACKET);
  4164. +           String filename = "data/html/mods/tournament/9996.htm";
  4165. +           NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  4166. +           html.setFile(filename);
  4167. +           html.replace("%objectId%", getObjectId());
  4168. +  
  4169. +  
  4170. +      
  4171. +               if (Arena9x9.registered.size() == 0)
  4172. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4173. +               else if (Arena9x9.registered.size() == 1)
  4174. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_1_over\" fore=\"L2UI_CH3.calculate1_1\">");
  4175. +               else if (Arena9x9.registered.size() == 2)
  4176. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_2_over\" fore=\"L2UI_CH3.calculate1_2\">");
  4177. +               else if (Arena9x9.registered.size() == 3)
  4178. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_3_over\" fore=\"L2UI_CH3.calculate1_3\">");
  4179. +               else if (Arena9x9.registered.size() == 4)
  4180. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_4_over\" fore=\"L2UI_CH3.calculate1_4\">");
  4181. +               else if (Arena9x9.registered.size() == 5)
  4182. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_5_over\" fore=\"L2UI_CH3.calculate1_5\">");
  4183. +               else if (Arena9x9.registered.size() == 6)
  4184. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_6_over\" fore=\"L2UI_CH3.calculate1_6\">");
  4185. +               else if (Arena9x9.registered.size() == 7)
  4186. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_7_over\" fore=\"L2UI_CH3.calculate1_7\">");
  4187. +               else if (Arena9x9.registered.size() == 8)
  4188. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_8_over\" fore=\"L2UI_CH3.calculate1_8\">");
  4189. +               else if (Arena9x9.registered.size() >= 9)
  4190. +                   html.replace("%9x9%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_9_over\" fore=\"L2UI_CH3.calculate1_9\">");
  4191. +          
  4192. +                  if (Arena9x9.registered.size() == 0) {
  4193. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4194. +                   }
  4195. +                   else if (Arena9x9.registered.size() == 1) {
  4196. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4197. +                   }
  4198. +                   else if (Arena9x9.registered.size() == 2) {
  4199. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4200. +                   }
  4201. +                   else if (Arena9x9.registered.size() == 3) {
  4202. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4203. +                   }
  4204. +                   else if (Arena9x9.registered.size() == 4) {
  4205. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4206. +                   }
  4207. +                   else if (Arena9x9.registered.size() == 5) {
  4208. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4209. +                   }
  4210. +                   else if (Arena9x9.registered.size() == 6) {
  4211. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4212. +                   }
  4213. +                   else if (Arena9x9.registered.size() == 7) {
  4214. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4215. +                   }
  4216. +                   else if (Arena9x9.registered.size() == 8) {
  4217. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4218. +                   }
  4219. +                   else if (Arena9x9.registered.size() >= 9) {
  4220. +                       html.replace("%2x2%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4221. +                   }
  4222. +                  
  4223. +                   if (Arena9x9.registered.size() == 0)
  4224. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4225. +                   else if (Arena9x9.registered.size() == 1)
  4226. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4227. +                   else if (Arena9x9.registered.size() == 2)
  4228. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4229. +                   else if (Arena9x9.registered.size() == 3)
  4230. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4231. +                   else if (Arena9x9.registered.size() == 4)
  4232. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4233. +                   else if (Arena9x9.registered.size() == 5)
  4234. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4235. +                   else if (Arena9x9.registered.size() == 6)
  4236. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4237. +                   else if (Arena9x9.registered.size() == 7)
  4238. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4239. +                   else if (Arena9x9.registered.size() == 8)
  4240. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4241. +                   else if (Arena9x9.registered.size() >= 9)
  4242. +                       html.replace("%4x4%", "<button value=\"\" action=\"\" width=32 height=32 back=\"L2UI_CH3.calculate1_0_over\" fore=\"L2UI_CH3.calculate1_0\">");
  4243. +              
  4244. +      
  4245. +               player.sendPacket(html);
  4246. +           }
  4247. +      
  4248. +      
  4249. +  
  4250. +       @Override
  4251. +       public void onBypassFeedback(Player player, String command)
  4252. +       {
  4253. +           Object className;
  4254. +           if (command.startsWith("2x2"))
  4255. +           {
  4256. +               if (!Config.ALLOW_2X2_REGISTER)
  4257. +               {
  4258. +                   player.sendPacket(SystemMessageId.ACADEMY_LIST_HEADER);
  4259. +                   return;
  4260. +               }
  4261. +  
  4262. +               if (player.isArena2x2() || player.isArena4x4() || player.isArena9x9() ||player.isArenaProtection())
  4263. +               {
  4264. +                   player.sendMessage("Tournament: You already registered!");
  4265. +                   return;
  4266. +               }
  4267. +               if (!player.isInParty())
  4268. +               {
  4269. +                   player.sendMessage("Tournament: You dont have a party.");
  4270. +                   return;
  4271. +               }
  4272. +               if (!player.getParty().isLeader(player))
  4273. +               {
  4274. +                   player.sendMessage("Tournament: You are not the party leader!");
  4275. +                   return;
  4276. +               }
  4277. +               if (player.getParty().getMembersCount() < 2)
  4278. +               {
  4279. +                   player.sendMessage("Tournament: Your party does not have 2 members.");
  4280. +                   player.sendPacket(new ExShowScreenMessage("Your party does not have 2 members", 6000));
  4281. +                   return;
  4282. +               }
  4283. +               if (player.getParty().getMembersCount() > 2)
  4284. +               {
  4285. +                   player.sendMessage("Tournament: Your Party can not have more than 2 members.");
  4286. +                   player.sendPacket(new ExShowScreenMessage("Your Party can not have more than 2 members", 6000));
  4287. +                   return;
  4288. +               }
  4289. +  
  4290. +               Player assist = player.getParty().getMembers().get(1);
  4291. +              
  4292. +               className = PlayerData.getInstance().getClassNameById(player.getClassId().getId());
  4293. +               String assist_className = PlayerData.getInstance().getClassNameById(assist.getClassId().getId());
  4294. +  
  4295. +  
  4296. +  
  4297. +               if ((player.getClassId() == ClassId.GLADIATOR || player.getClassId() == ClassId.DUELIST || player.getClassId() == ClassId.GRAND_KHAVATARI || player.getClassId() == ClassId.TYRANT) && (assist.getClassId() == ClassId.GLADIATOR || assist.getClassId() == ClassId.DUELIST || assist.getClassId() == ClassId.GRAND_KHAVATARI || assist.getClassId() == ClassId.TYRANT))
  4298. +               {
  4299. +                   player.sendMessage("Tournament: Only 1 " + (String) className + " / " + assist_className + " allowed per party.");
  4300. +                   player.sendPacket(new ExShowScreenMessage("Only 1 " + (String) className + " / " + assist_className + " allowed per party.", 6000));
  4301. +                   return;
  4302. +               }
  4303. +               if (assist.getClassId() == ClassId.SHILLIEN_ELDER || assist.getClassId() == ClassId.SHILLIEN_SAINT || assist.getClassId() == ClassId.BISHOP || assist.getClassId() == ClassId.CARDINAL || assist.getClassId() == ClassId.ELVEN_ELDER || assist.getClassId() == ClassId.EVAS_SAINT)
  4304. +               {
  4305. +                   assist.sendMessage("Tournament: Bishop not allowed in Tournament 2x2.");
  4306. +                   player.sendMessage("Tournament: Bishop not allowed in Tournament 2x2.");
  4307. +                   return;
  4308. +               }
  4309. +               if (player.getClassId() == ClassId.SHILLIEN_ELDER || player.getClassId() == ClassId.SHILLIEN_SAINT || player.getClassId() == ClassId.BISHOP || player.getClassId() == ClassId.CARDINAL || player.getClassId() == ClassId.ELVEN_ELDER || player.getClassId() == ClassId.EVAS_SAINT)
  4310. +               {
  4311. +                   assist.sendMessage("Tournament: Bishop not allowed in Tournament 2x2.");
  4312. +                   player.sendMessage("Tournament: Bishop not allowed in Tournament 2x2.");
  4313. +                   return;
  4314. +               }
  4315. +               if (player.isCursedWeaponEquipped() || assist.isCursedWeaponEquipped() || player.isInStoreMode() || assist.isInStoreMode() || player.getKarma() > 0 || assist.getKarma() > 0)
  4316. +               {
  4317. +                   player.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4318. +                   assist.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4319. +                   return;
  4320. +               }
  4321. +               if (player.getClassId() == assist.getClassId())
  4322. +               {
  4323. +                   player.sendMessage("Tournament: Only 1 " + (String) className + "'s allowed per party.");
  4324. +                   player.sendPacket(new ExShowScreenMessage("Only 1 " + (String) className + "'s allowed per party.", 6000));
  4325. +                   return;
  4326. +               }
  4327. +               if ((player.getClassId() == ClassId.HAWKEYE || player.getClassId() == ClassId.SAGGITARIUS || player.getClassId() == ClassId.MOONLIGHT_SENTINEL || player.getClassId() == ClassId.SILVER_RANGER || player.getClassId() == ClassId.GHOST_SENTINEL || player.getClassId() == ClassId.PHANTOM_RANGER) && (assist.getClassId() == ClassId.HAWKEYE || assist.getClassId() == ClassId.SAGGITARIUS || assist.getClassId() == ClassId.MOONLIGHT_SENTINEL || assist.getClassId() == ClassId.SILVER_RANGER || assist.getClassId() == ClassId.GHOST_SENTINEL || assist.getClassId() == ClassId.PHANTOM_RANGER))
  4328. +               {
  4329. +                   player.sendMessage("Tournament: Only 1 Acher allowed per party.");
  4330. +                   player.sendPacket(new ExShowScreenMessage("OOnly 1 Acher allowed per party.", 6000));
  4331. +                   return;
  4332. +               }
  4333. +               if ((player.getClassId() == ClassId.ADVENTURER || player.getClassId() == ClassId.TREASURE_HUNTER || player.getClassId() == ClassId.WIND_RIDER || player.getClassId() == ClassId.PLAINS_WALKER || player.getClassId() == ClassId.GHOST_HUNTER || player.getClassId() == ClassId.ABYSS_WALKER) && (assist.getClassId() == ClassId.ADVENTURER || assist.getClassId() == ClassId.TREASURE_HUNTER || assist.getClassId() == ClassId.WIND_RIDER || assist.getClassId() == ClassId.PLAINS_WALKER || assist.getClassId() == ClassId.GHOST_HUNTER || assist.getClassId() == ClassId.ABYSS_WALKER))
  4334. +               {
  4335. +                   player.sendMessage("Tournament: Only 1 Dagger allowed per party.");
  4336. +                   player.sendPacket(new ExShowScreenMessage("OOnly 1 Dagger allowed per party.", 6000));
  4337. +                   return;
  4338. +               }
  4339. +               if (OlympiadManager.getInstance().isRegistered(player) || OlympiadManager.getInstance().isRegistered(assist))
  4340. +               {
  4341. +                   player.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4342. +                   assist.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4343. +                   return;
  4344. +               }
  4345. +  
  4346. +  
  4347. +               if (Arena2x2.getInstance().register(player, assist))
  4348. +               {
  4349. +                   player.sendMessage("Tournament: Your participation has been approved.");
  4350. +                   assist.sendMessage("Tournament: Your participation has been approved.");
  4351. +                   player.setArenaProtection(true);
  4352. +                   assist.setArenaProtection(true);
  4353. +                   player.setArena2x2(true);
  4354. +                   assist.setArena2x2(true);
  4355. +                   showChatWindow(player);
  4356. +               }
  4357. +              
  4358. +  
  4359. +               else
  4360. +                   player.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4361. +           }else
  4362. +           {
  4363. +               Object assist2;
  4364. +               if (command.startsWith("4x4"))
  4365. +               {
  4366. +  
  4367. +                   if (!Config.ALLOW_4X4_REGISTER)
  4368. +                   {
  4369. +                       player.sendPacket(SystemMessageId.ACADEMY_LIST_HEADER);
  4370. +                       return;
  4371. +                   }
  4372. +  
  4373. +                   if (player.isArena2x2() || player.isArena4x4() || player.isArena9x9() || player.isArenaProtection())
  4374. +                   {
  4375. +                       player.sendMessage("Tournament: You already registered!");
  4376. +                       return;
  4377. +                   }
  4378. +                   if (!player.isInParty())
  4379. +                   {
  4380. +                       player.sendMessage("Tournament: You dont have a party.");
  4381. +                       return;
  4382. +                   }
  4383. +                   if (!player.getParty().isLeader(player))
  4384. +                   {
  4385. +                       player.sendMessage("Tournament: You are not the party leader!");
  4386. +                       return;
  4387. +                   }
  4388. +                   if (player.getParty().getMembersCount() < 4)
  4389. +                   {
  4390. +                       player.sendMessage("Tournament: Your party does not have 4 members.");
  4391. +                       player.sendPacket(new ExShowScreenMessage("Your party does not have 4 members", 6000));
  4392. +                       return;
  4393. +                   }
  4394. +                   if (player.getParty().getMembersCount() > 4)
  4395. +                   {
  4396. +                       player.sendMessage("Tournament: Your Party can not have more than 4 members.");
  4397. +                       player.sendPacket(new ExShowScreenMessage("Your Party can not have more than 4 members", 6000));
  4398. +                       return;
  4399. +                   }
  4400. +  
  4401. +                   Player assist = player.getParty().getMembers().get(1);
  4402. +                   assist2 = player.getParty().getMembers().get(2);
  4403. +                   Player assist3 = player.getParty().getMembers().get(3);
  4404. +  
  4405. +                   if (player.isCursedWeaponEquipped() || assist.isCursedWeaponEquipped() || ((Player) assist2).isCursedWeaponEquipped() || assist3.isCursedWeaponEquipped() || player.isInStoreMode() || assist.isInStoreMode() || ((Player) assist2).isInStoreMode() || assist3.isInStoreMode() || player.getKarma() > 0 || assist.getKarma() > 0 || ((Player) assist2).getKarma() > 0 || assist3.getKarma() > 0)
  4406. +                   {
  4407. +                       player.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4408. +                       assist.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4409. +                       ((Player) assist2).sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4410. +                       assist3.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4411. +                       return;
  4412. +                   }
  4413. +                   if (OlympiadManager.getInstance().isRegistered(player) || OlympiadManager.getInstance().isRegistered(assist) || OlympiadManager.getInstance().isRegistered((Player) assist2) || OlympiadManager.getInstance().isRegistered(assist3))
  4414. +                   {
  4415. +                       player.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4416. +                       assist.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4417. +                       ((Player) assist2).sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4418. +                       assist3.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4419. +                       return;
  4420. +                   }
  4421. +  
  4422. +  
  4423. +  
  4424. +                   ClasseCheck(player);
  4425. +  
  4426. +                   if (player.duelist_cont > Config.duelist_COUNT_4X4)
  4427. +                   {
  4428. +                       player.sendMessage("Tournament: Only " + Config.duelist_COUNT_4X4 + " Duelist's or " + Config.duelist_COUNT_4X4 + " Grand Khauatari's allowed per party.");
  4429. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.duelist_COUNT_4X4 + " Duelist's or " + Config.duelist_COUNT_4X4 + " Grand Khauatari'sallowed per party.", 6000));
  4430. +                       clean(player);
  4431. +                       return;
  4432. +                   }
  4433. +                   if (player.dreadnought_cont > Config.dreadnought_COUNT_4X4)
  4434. +                   {
  4435. +                       player.sendMessage("Tournament: Only " + Config.dreadnought_COUNT_4X4 + " Dread Nought's allowed per party.");
  4436. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.dreadnought_COUNT_4X4 + " Dread Nought's allowed per party.", 6000));
  4437. +                       clean(player);
  4438. +                       return;
  4439. +                   }
  4440. +                   if (player.tanker_cont > Config.tanker_COUNT_4X4)
  4441. +                   {
  4442. +                       player.sendMessage("Tournament: Only " + Config.tanker_COUNT_4X4 + " Tanker's allowed per party.");
  4443. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.tanker_COUNT_4X4 + " Tanker's allowed per party.", 6000));
  4444. +                       clean(player);
  4445. +                       return;
  4446. +                   }
  4447. +                   if (player.dagger_cont > Config.dagger_COUNT_4X4)
  4448. +                   {
  4449. +                       player.sendMessage("Tournament: Only " + Config.dagger_COUNT_4X4 + " Dagger's allowed per party.");
  4450. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.dagger_COUNT_4X4 + " Dagger's allowed per party.", 6000));
  4451. +                       clean(player);
  4452. +                       return;
  4453. +                   }
  4454. +                   if (player.archer_cont > Config.archer_COUNT_4X4)
  4455. +                   {
  4456. +                       player.sendMessage("Tournament: Only " + Config.archer_COUNT_4X4 + " Archer's allowed per party.");
  4457. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.archer_COUNT_4X4 + " Archer's allowed per party.", 6000));
  4458. +                       clean(player);
  4459. +                       return;
  4460. +                   }
  4461. +                   if (player.bs_cont > Config.bs_COUNT_4X4)
  4462. +                   {
  4463. +                       player.sendMessage("Tournament: Only " + Config.bs_COUNT_4X4 + " Bishop's allowed per party.");
  4464. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.bs_COUNT_4X4 + " Bishop's allowed per party.", 6000));
  4465. +                       clean(player);
  4466. +                       return;
  4467. +                   }
  4468. +                   if (player.archmage_cont > Config.archmage_COUNT_4X4)
  4469. +                   {
  4470. +                       player.sendMessage("Tournament: Only " + Config.archmage_COUNT_4X4 + " Archmage's allowed per party.");
  4471. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.archmage_COUNT_4X4 + " Archmage's allowed per party.", 6000));
  4472. +                       clean(player);
  4473. +                       return;
  4474. +                   }
  4475. +                   if (player.soultaker_cont > Config.soultaker_COUNT_4X4)
  4476. +                   {
  4477. +                       player.sendMessage("Tournament: Only " + Config.soultaker_COUNT_4X4 + " Soultaker's allowed per party.");
  4478. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.soultaker_COUNT_4X4 + " Soultaker's allowed per party.", 6000));
  4479. +                       clean(player);
  4480. +                       return;
  4481. +                   }
  4482. +                   if (player.mysticMuse_cont > Config.mysticMuse_COUNT_4X4)
  4483. +                   {
  4484. +                       player.sendMessage("Tournament: Only " + Config.mysticMuse_COUNT_4X4 + " Mystic Muse's allowed per party.");
  4485. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.mysticMuse_COUNT_4X4 + " Mystic Muse's allowed per party.", 6000));
  4486. +                       clean(player);
  4487. +                       return;
  4488. +                   }
  4489. +                   if (player.stormScreamer_cont > Config.stormScreamer_COUNT_4X4)
  4490. +                   {
  4491. +                       player.sendMessage("Tournament: Only " + Config.stormScreamer_COUNT_4X4 + " Storm Screamer's allowed per party.");
  4492. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.stormScreamer_COUNT_4X4 + " Storm Screamer's allowed per party.", 6000));
  4493. +                       clean(player);
  4494. +                       return;
  4495. +                   }
  4496. +                   if (player.titan_cont > Config.titan_COUNT_4X4)
  4497. +                   {
  4498. +                       player.sendMessage("Tournament: Only " + Config.titan_COUNT_4X4 + " Titan's allowed per party.");
  4499. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.titan_COUNT_4X4 + " Titan's allowed per party.", 6000));
  4500. +                       clean(player);
  4501. +                       return;
  4502. +                   }
  4503. +                   if (player.dominator_cont > Config.dominator_COUNT_4X4)
  4504. +                   {
  4505. +                       player.sendMessage("Tournament: Only " + Config.dominator_COUNT_4X4 + " Dominator's or " + Config.dominator_COUNT_4X4 + " Doomcryer's allowed per party.");
  4506. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.dominator_COUNT_4X4 + " Dominator's or " + Config.dominator_COUNT_4X4 + " Doomcryer's allowed per party.", 6000));
  4507. +                       clean(player);
  4508. +                       return;
  4509. +                   }
  4510. +                   if (Arena4x4.getInstance().register(player, assist, (Player) assist2, assist3) && player.getParty().getMembers().get(1) != null && player.getParty().getMembers().get(2) != null && player.getParty().getMembers().get(3) != null)
  4511. +                   {
  4512. +                       player.sendMessage("Tournament: Your participation has been approved.");
  4513. +                       assist.sendMessage("Tournament: Your participation has been approved.");
  4514. +                       ((Player) assist2).sendMessage("Tournament: Your participation has been approved.");
  4515. +                       assist3.sendMessage("Tournament: Your participation has been approved.");
  4516. +  
  4517. +                       player.setArenaProtection(true);
  4518. +                       assist.setArenaProtection(true);
  4519. +                       ((Player) assist2).setArenaProtection(true);
  4520. +                       assist3.setArenaProtection(true);
  4521. +  
  4522. +                       player.setArena4x4(true);
  4523. +                       assist.setArena4x4(true);
  4524. +                       ((Player) assist2).setArena4x4(true);
  4525. +                       assist3.setArena4x4(true);
  4526. +                       clean(player);
  4527. +                       showChatWindow1(player);
  4528. +                   }
  4529. +                   else
  4530. +                       player.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4531. +               }
  4532. +               else if (command.startsWith("9x9"))
  4533. +               {
  4534. +  
  4535. +                   if (!Config.ALLOW_9X9_REGISTER)
  4536. +                   {
  4537. +                       player.sendPacket(SystemMessageId.ACADEMY_LIST_HEADER);
  4538. +                       return;
  4539. +                   }
  4540. +  
  4541. +                   if (player.isArena2x2() || player.isArena4x4() || player.isArena9x9() || player.isArenaProtection())
  4542. +                   {
  4543. +                       player.sendMessage("Tournament: You already registered!");
  4544. +                       return;
  4545. +                   }
  4546. +                   if (!player.isInParty())
  4547. +                   {
  4548. +                       player.sendMessage("Tournament: You dont have a party.");
  4549. +                       return;
  4550. +                   }
  4551. +                   if (!player.getParty().isLeader(player))
  4552. +                   {
  4553. +                       player.sendMessage("Tournament: You are not the party leader!");
  4554. +                       return;
  4555. +                   }
  4556. +                   if (player.getParty().getMembersCount() < 9)
  4557. +                   {
  4558. +                       player.sendMessage("Tournament: Your party does not have 9 members.");
  4559. +                       player.sendPacket(new ExShowScreenMessage("Your party does not have 9 members", 6000));
  4560. +                       return;
  4561. +                   }
  4562. +                   if (player.getParty().getMembersCount() > 9)
  4563. +                   {
  4564. +                       player.sendMessage("Tournament: Your Party can not have more than 9 members.");
  4565. +                       player.sendPacket(new ExShowScreenMessage("Your Party can not have more than 9 members", 6000));
  4566. +                       return;
  4567. +                   }
  4568. +  
  4569. +                   Player assist = player.getParty().getMembers().get(1);
  4570. +                   Player assist21 = player.getParty().getMembers().get(2);
  4571. +                   Player assist3 = player.getParty().getMembers().get(3);
  4572. +                   Player assist4 = player.getParty().getMembers().get(4);
  4573. +                   Player assist5 = player.getParty().getMembers().get(5);
  4574. +                   Player assist6 = player.getParty().getMembers().get(6);
  4575. +                   Player assist7 = player.getParty().getMembers().get(7);
  4576. +                   Player assist8 = player.getParty().getMembers().get(8);
  4577. +  
  4578. +                   if (player.isCursedWeaponEquipped() || assist.isCursedWeaponEquipped() || assist21.isCursedWeaponEquipped() || assist3.isCursedWeaponEquipped() || assist4.isCursedWeaponEquipped() || assist5.isCursedWeaponEquipped() || assist6.isCursedWeaponEquipped() || assist7.isCursedWeaponEquipped() || assist8.isCursedWeaponEquipped() || player.isInStoreMode() || assist.isInStoreMode() || assist21.isInStoreMode() || assist3.isInStoreMode() || assist4.isInStoreMode() || assist5.isInStoreMode() || assist6.isInStoreMode() || assist7.isInStoreMode() || assist8.isInStoreMode() || player.getKarma() > 0 || assist.getKarma() > 0 || assist21.getKarma() > 0 || assist3.getKarma() > 0 || assist4.getKarma() > 0 || assist5.getKarma() > 0 || assist6.getKarma() > 0 || assist7.getKarma() > 0 || assist8.getKarma() > 0)
  4579. +                   {
  4580. +                       player.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4581. +                       assist.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4582. +                       assist21.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4583. +                       assist3.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4584. +                       assist4.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4585. +                       assist5.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4586. +                       assist6.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4587. +                       assist7.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4588. +                       assist8.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4589. +                       return;
  4590. +                   }
  4591. +                   if (OlympiadManager.getInstance().isRegistered(player) || OlympiadManager.getInstance().isRegistered(assist) || OlympiadManager.getInstance().isRegistered(assist21) || OlympiadManager.getInstance().isRegistered(assist3) || OlympiadManager.getInstance().isRegistered(assist4) || OlympiadManager.getInstance().isRegistered(assist5) || OlympiadManager.getInstance().isRegistered(assist6) || OlympiadManager.getInstance().isRegistered(assist7) || OlympiadManager.getInstance().isRegistered(assist8))
  4592. +                   {
  4593. +                       player.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4594. +                       assist.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4595. +                       assist21.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4596. +                       assist3.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4597. +                       assist4.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4598. +                       assist5.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4599. +                       assist6.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4600. +                       assist7.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4601. +                       assist8.sendMessage("Tournament: You or your member is registered in the Olympiad.");
  4602. +                       return;
  4603. +                   }
  4604. +  
  4605. +  
  4606. +      
  4607. +                   ClasseCheck(player);
  4608. +  
  4609. +                   if (player.duelist_cont > Config.duelist_COUNT_9X9)
  4610. +                   {
  4611. +                       player.sendMessage("Tournament: Only " + Config.duelist_COUNT_9X9 + " Duelist's or " + Config.duelist_COUNT_9X9 + " Grand Khauatari's allowed per party.");
  4612. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.duelist_COUNT_9X9 + " Duelist's or " + Config.duelist_COUNT_9X9 + " Grand Khauatari's allowed per party.", 6000));
  4613. +                       clean(player);
  4614. +                       return;
  4615. +                   }
  4616. +                   if (player.dreadnought_cont > Config.dreadnought_COUNT_9X9)
  4617. +                   {
  4618. +                       player.sendMessage("Tournament: Only " + Config.dreadnought_COUNT_9X9 + " Dread Nought's allowed per party.");
  4619. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.dreadnought_COUNT_9X9 + " Dread Nought's allowed per party.", 6000));
  4620. +                       clean(player);
  4621. +                       return;
  4622. +                   }
  4623. +                   if (player.tanker_cont > Config.tanker_COUNT_9X9)
  4624. +                   {
  4625. +                       player.sendMessage("Tournament: Only " + Config.tanker_COUNT_9X9 + " Tanker's allowed per party.");
  4626. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.tanker_COUNT_9X9 + " Tanker's allowed per party.", 6000));
  4627. +                       clean(player);
  4628. +                       return;
  4629. +                   }
  4630. +                   if (player.dagger_cont > Config.dagger_COUNT_9X9)
  4631. +                   {
  4632. +                       player.sendMessage("Tournament: Only " + Config.dagger_COUNT_9X9 + " Dagger's allowed per party.");
  4633. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.dagger_COUNT_9X9 + " Dagger's allowed per party.", 6000));
  4634. +                       clean(player);
  4635. +                       return;
  4636. +                   }
  4637. +                   if (player.archer_cont > Config.archer_COUNT_9X9)
  4638. +                   {
  4639. +                       player.sendMessage("Tournament: Only " + Config.archer_COUNT_9X9 + " Archer's allowed per party.");
  4640. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.archer_COUNT_9X9 + " Archer's allowed per party.", 6000));
  4641. +                       clean(player);
  4642. +                       return;
  4643. +                   }
  4644. +                   if (player.bs_cont > Config.bs_COUNT_9X9)
  4645. +                   {
  4646. +                       player.sendMessage("Tournament: Only " + Config.bs_COUNT_9X9 + " Bishop's allowed per party.");
  4647. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.bs_COUNT_9X9 + " Bishop's allowed per party.", 6000));
  4648. +                       clean(player);
  4649. +                       return;
  4650. +                   }
  4651. +                   if (player.archmage_cont > Config.archmage_COUNT_9X9)
  4652. +                   {
  4653. +                       player.sendMessage("Tournament: Only " + Config.archmage_COUNT_9X9 + " Archmage's allowed per party.");
  4654. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.archmage_COUNT_9X9 + " Archmage's allowed per party.", 6000));
  4655. +                       clean(player);
  4656. +                       return;
  4657. +                   }
  4658. +                   if (player.soultaker_cont > Config.soultaker_COUNT_9X9)
  4659. +                   {
  4660. +                       player.sendMessage("Tournament: Only " + Config.soultaker_COUNT_9X9 + " Soultaker's allowed per party.");
  4661. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.soultaker_COUNT_9X9 + " Soultaker's allowed per party.", 6000));
  4662. +                       clean(player);
  4663. +                       return;
  4664. +                   }
  4665. +                   if (player.mysticMuse_cont > Config.mysticMuse_COUNT_9X9)
  4666. +                   {
  4667. +                       player.sendMessage("Tournament: Only " + Config.mysticMuse_COUNT_9X9 + " Mystic Muse's allowed per party.");
  4668. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.mysticMuse_COUNT_9X9 + " Mystic Muse's allowed per party.", 6000));
  4669. +                       clean(player);
  4670. +                       return;
  4671. +                   }
  4672. +                   if (player.stormScreamer_cont > Config.stormScreamer_COUNT_9X9)
  4673. +                   {
  4674. +                       player.sendMessage("Tournament: Only " + Config.stormScreamer_COUNT_9X9 + " Storm Screamer's allowed per party.");
  4675. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.stormScreamer_COUNT_9X9 + " Storm Screamer's allowed per party.", 6000));
  4676. +                       clean(player);
  4677. +                       return;
  4678. +                   }
  4679. +                   if (player.titan_cont > Config.titan_COUNT_9X9)
  4680. +                   {
  4681. +                       player.sendMessage("Tournament: Only " + Config.titan_COUNT_9X9 + " Titan's allowed per party.");
  4682. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.titan_COUNT_9X9 + " Titan's allowed per party.", 6000));
  4683. +                       clean(player);
  4684. +                       return;
  4685. +                   }
  4686. +                   if (player.dominator_cont > Config.dominator_COUNT_9X9)
  4687. +                   {
  4688. +                       player.sendMessage("Tournament: Only " + Config.dominator_COUNT_9X9 + " Dominator's or " + Config.dominator_COUNT_9X9 + " Doomcryer's allowed per party.");
  4689. +                       player.sendPacket(new ExShowScreenMessage("Only " + Config.dominator_COUNT_9X9 + " Dominator's or " + Config.dominator_COUNT_9X9 + " Doomcryer's allowed per party.", 6000));
  4690. +                       clean(player);
  4691. +                       return;
  4692. +                   }
  4693. +                   if (Arena9x9.getInstance().register(player, assist, assist21, assist3, assist4, assist5, assist6, assist7, assist8) && player.getParty().getMembers().get(1) != null && player.getParty().getMembers().get(2) != null && player.getParty().getMembers().get(3) != null && player.getParty().getMembers().get(4) != null && player.getParty().getMembers().get(5) != null && player.getParty().getMembers().get(6) != null && player.getParty().getMembers().get(7) != null && player.getParty().getMembers().get(8) != null)
  4694. +                   {
  4695. +                       player.sendMessage("Tournament: Your participation has been approved.");
  4696. +                       assist.sendMessage("Tournament: Your participation has been approved.");
  4697. +                       assist21.sendMessage("Tournament: Your participation has been approved.");
  4698. +                       assist3.sendMessage("Tournament: Your participation has been approved.");
  4699. +                       assist4.sendMessage("Tournament: Your participation has been approved.");
  4700. +                       assist5.sendMessage("Tournament: Your participation has been approved.");
  4701. +                       assist6.sendMessage("Tournament: Your participation has been approved.");
  4702. +                       assist7.sendMessage("Tournament: Your participation has been approved.");
  4703. +                       assist8.sendMessage("Tournament: Your participation has been approved.");
  4704. +  
  4705. +                       player.setArenaProtection(true);
  4706. +                       assist.setArenaProtection(true);
  4707. +                       assist21.setArenaProtection(true);
  4708. +                       assist3.setArenaProtection(true);
  4709. +                       assist4.setArenaProtection(true);
  4710. +                       assist5.setArenaProtection(true);
  4711. +                       assist6.setArenaProtection(true);
  4712. +                       assist7.setArenaProtection(true);
  4713. +                       assist8.setArenaProtection(true);
  4714. +  
  4715. +                       player.setArena9x9(true);
  4716. +                       assist.setArena9x9(true);
  4717. +                       assist21.setArena9x9(true);
  4718. +                       assist3.setArena9x9(true);
  4719. +                       assist4.setArena9x9(true);
  4720. +                       assist5.setArena9x9(true);
  4721. +                       assist6.setArena9x9(true);
  4722. +                       assist7.setArena9x9(true);
  4723. +                       assist8.setArena9x9(true);
  4724. +                       clean(player);
  4725. +                       showChatWindow2(player);
  4726. +                   }
  4727. +                   else
  4728. +                       player.sendMessage("Tournament: You or your member does not have the necessary requirements.");
  4729. +               }
  4730. +               else if (command.startsWith("remove"))
  4731. +               {
  4732. +                   if (!player.isInParty())
  4733. +                   {
  4734. +                       player.sendMessage("Tournament: You dont have a party.");
  4735. +                       return;
  4736. +                   }
  4737. +                   if (!player.getParty().isLeader(player))
  4738. +                   {
  4739. +                       player.sendMessage("Tournament: You are not the party leader!");
  4740. +                       return;
  4741. +                   }
  4742. +  
  4743. +                   Arena2x2.getInstance().remove(player);
  4744. +                   Arena9x9.getInstance().remove(player);
  4745. +                   Arena4x4.getInstance().remove(player);
  4746. +                   showChatWindow(player);
  4747. +  
  4748. +               }
  4749. +               else if (command.startsWith("observe_list"))
  4750. +               {
  4751. +                   player.sendPacket(ActionFailed.STATIC_PACKET);
  4752. +                   String filename = "data/html/mods/tournament/9996-1.htm";
  4753. +                   NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  4754. +                   html.setFile(filename);
  4755. +                   html.replace("%objectId%", String.valueOf(getObjectId()));
  4756. +                   player.sendPacket(html);
  4757. +               }
  4758. +               else if (command.startsWith("observe_back"))
  4759. +                   showChatWindow(player);
  4760. +               else if (command.startsWith("tournament_observe"))
  4761. +               {
  4762. +  
  4763. +                   StringTokenizer st = new StringTokenizer(command);
  4764. +                   st.nextToken();
  4765. +  
  4766. +                   int x = Integer.parseInt(st.nextToken());
  4767. +                   int y = Integer.parseInt(st.nextToken());
  4768. +                   int z = Integer.parseInt(st.nextToken());
  4769. +  
  4770. +                   player.setArenaObserv(true);
  4771. +                   player.enterObserverMode(x, y, z);
  4772. +               }
  4773. +               else
  4774. +                   super.onBypassFeedback(player, command);
  4775. +           }
  4776. +      
  4777. +   }
  4778. +  
  4779. +       public void ClasseCheck(Player activeChar)
  4780. +       {
  4781. +           Party plparty = activeChar.getParty();
  4782. +           for (Player player : plparty.getMembers())
  4783. +               if (player != null)
  4784. +                   if (player.getParty() != null)
  4785. +                   {
  4786. +                       if (player.getClassId() == ClassId.GLADIATOR || player.getClassId() == ClassId.DUELIST || player.getClassId() == ClassId.GRAND_KHAVATARI || player.getClassId() == ClassId.TYRANT)
  4787. +                           activeChar.duelist_cont += 1;
  4788. +                       if (player.getClassId() == ClassId.WARLORD || player.getClassId() == ClassId.DREADNOUGHT)
  4789. +                           activeChar.dreadnought_cont += 1;
  4790. +                       if (player.getClassId() == ClassId.PALADIN || player.getClassId() == ClassId.PHOENIX_KNIGHT || player.getClassId() == ClassId.DARK_AVENGER || player.getClassId() == ClassId.HELL_KNIGHT || player.getClassId() == ClassId.EVAS_TEMPLAR || player.getClassId() == ClassId.TEMPLE_KNIGHT || player.getClassId() == ClassId.SHILLIEN_KNIGHT || player.getClassId() == ClassId.SHILLIEN_TEMPLAR)
  4791. +                           activeChar.tanker_cont += 1;
  4792. +                       if (player.getClassId() == ClassId.ADVENTURER || player.getClassId() == ClassId.TREASURE_HUNTER || player.getClassId() == ClassId.WIND_RIDER || player.getClassId() == ClassId.PLAINS_WALKER || player.getClassId() == ClassId.GHOST_HUNTER || player.getClassId() == ClassId.ABYSS_WALKER)
  4793. +                           activeChar.dagger_cont += 1;
  4794. +                       if (player.getClassId() == ClassId.HAWKEYE || player.getClassId() == ClassId.SAGGITARIUS || player.getClassId() == ClassId.MOONLIGHT_SENTINEL || player.getClassId() == ClassId.SILVER_RANGER || player.getClassId() == ClassId.GHOST_SENTINEL || player.getClassId() == ClassId.PHANTOM_RANGER)
  4795. +                           activeChar.archer_cont += 1;
  4796. +                       if (player.getClassId() == ClassId.SHILLIEN_ELDER || player.getClassId() == ClassId.SHILLIEN_SAINT || player.getClassId() == ClassId.BISHOP || player.getClassId() == ClassId.CARDINAL || player.getClassId() == ClassId.ELVEN_ELDER || player.getClassId() == ClassId.EVAS_SAINT)
  4797. +                           activeChar.bs_cont += 1;
  4798. +                       if (player.getClassId() == ClassId.ARCHMAGE || player.getClassId() == ClassId.SORCERER)
  4799. +                           activeChar.archmage_cont += 1;
  4800. +                       if (player.getClassId() == ClassId.SOULTAKER || player.getClassId() == ClassId.NECROMANCER)
  4801. +                           activeChar.soultaker_cont += 1;
  4802. +                       if (player.getClassId() == ClassId.MYSTIC_MUSE || player.getClassId() == ClassId.SPELLSINGER)
  4803. +                           activeChar.mysticMuse_cont += 1;
  4804. +                       if (player.getClassId() == ClassId.STORM_SCREAMER || player.getClassId() == ClassId.SPELLHOWLER)
  4805. +                           activeChar.stormScreamer_cont += 1;
  4806. +                       if (player.getClassId() == ClassId.TITAN || player.getClassId() == ClassId.DESTROYER)
  4807. +                           activeChar.titan_cont += 1;
  4808. +                       if (player.getClassId() == ClassId.DOMINATOR || player.getClassId() == ClassId.OVERLORD || player.getClassId() == ClassId.DOOMCRYER || player.getClassId() == ClassId.WARCRYER)
  4809. +                           activeChar.dominator_cont += 1;
  4810. +                   }
  4811. +       }
  4812. +  
  4813. +       public void clean(Player player)
  4814. +       {
  4815. +           player.duelist_cont = 0;
  4816. +           player.dreadnought_cont = 0;
  4817. +           player.tanker_cont = 0;
  4818. +           player.dagger_cont = 0;
  4819. +           player.archer_cont = 0;
  4820. +           player.bs_cont = 0;
  4821. +           player.archmage_cont = 0;
  4822. +           player.soultaker_cont = 0;
  4823. +           player.mysticMuse_cont = 0;
  4824. +           player.stormScreamer_cont = 0;
  4825. +           player.titan_cont = 0;
  4826. +           player.dominator_cont = 0;
  4827. +       }
  4828. +   }
  4829. +  
  4830.  
  4831. Index: data\html\mods\tournament/9996.html
  4832. ===================================================================
  4833. --- data\html\mods\tournament/9996.html (revision 84)
  4834. +++ data\html\mods\tournament/9996.html (working copy)
  4835.  
  4836.  
  4837. +   <html>
  4838. +   <title>Battle Tournament</title>
  4839. +   <body>
  4840. +   <center>
  4841. +   <img src="l2ui_ch3.herotower_deco" width=256 height=32>            
  4842. +   <br>          
  4843. +  
  4844. +   <table><tr><td height=7>
  4845. +   <img src="Sek.cbui371" width=300 height=1>
  4846. +   </td></tr></table>
  4847. +   <table width=320 bgcolor=000000>
  4848. +   <tr>
  4849. +   <td>2x2:</font></td>
  4850. +   <td width=10><img src=l2ui.bbs_reply width=15 height=15></td>
  4851. +   <td width=25>%2x2%</td>
  4852. +   <td>4x4:</font></td>
  4853. +   <td width=10><img src=l2ui.bbs_reply width=15 height=15></td>
  4854. +   <td width=25>%4x4%</td>
  4855. +   <td>9x9:</font></td>
  4856. +   <td width=10><img src=l2ui.bbs_reply width=15 height=15></td>
  4857. +   <td width=25>%9x9%</td>
  4858. +   <td width=10></td>
  4859. +   </tr>
  4860. +   </table>
  4861. +   <img src="Sek.cbui371" width=300 height=1>
  4862. +   <br>
  4863. +   <br>
  4864. +  
  4865. +   <img src="Sek.cbui371" width=300 height=1>
  4866. +   <table width=280 bgcolor=000000>
  4867. +   <tr>
  4868. +   <td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.etc_event_medal_i00"></td>
  4869. +   <td width=120>
  4870. +   <table>
  4871. +   <tr><td><font color="0066CC">[ Battle Tour 2x2 ] </font></td></tr>
  4872. +   <tr><td>{ 2 members for pt }</font></td></tr>
  4873. +   </table>
  4874. +   </td>
  4875. +   <td width=8></td>
  4876. +   <td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h npc_%objectId%_2x2" value="Register 2x2"></td>
  4877. +   </tr>
  4878. +   </table>
  4879. +   <img src="Sek.cbui371" width=300 height=1>
  4880. +   <table width=280 bgcolor=000000>
  4881. +   <tr>
  4882. +   <td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.etc_event_medal_i00"></td>
  4883. +   <td width=120>
  4884. +   <table>
  4885. +   <tr><td><font color="0066CC">[ Battle Tour 4x4 ] </font></td></tr>
  4886. +   <tr><td>{ 4 members for pt } </font></td></tr>
  4887. +   </table>
  4888. +   </td>
  4889. +   <td width=11></td>
  4890. +   <td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h npc_%objectId%_4x4" value="Register 4x4"></td>
  4891. +   </tr>
  4892. +   </table>
  4893. +   <img src="Sek.cbui371" width=300 height=1>
  4894. +   <table width=280 bgcolor=000000>
  4895. +   <tr>
  4896. +   <td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.etc_event_medal_i00"></td>
  4897. +   <td width=120>
  4898. +   <table>
  4899. +   <tr><td><font color="0066CC">[ Battle Tour 9x9 ] </font></td></tr>
  4900. +   <tr><td>{ 9 members for pt } </font></td></tr>
  4901. +   </table>
  4902. +   </td>
  4903. +   <td width=11></td>
  4904. +   <td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h npc_%objectId%_9x9" value="Register 9x9"></td>
  4905. +   </tr>
  4906. +   </table>
  4907. +   <img src="Sek.cbui371" width=300 height=1>
  4908. +   <table width=277 bgcolor=000000>
  4909. +   <tr>
  4910. +   <td width=25 align="right"><button action="" width=32 height=32 back="L2UI_CH3.mainwndtabicon1" fore="L2UI_CH3.mainwndtabicon1"></td>
  4911. +   <td width=130>
  4912. +   <table>
  4913. +   <tr><td><font color="0066CC">[ Observer ] </font></td></tr>
  4914. +   <tr><td>{ Watch tournament }  </font></td></tr>
  4915. +   </table>
  4916. +   </td>
  4917. +   <td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h npc_%objectId%_observe_list" value="Watch battle"></td>
  4918. +   </tr>
  4919. +   </table>
  4920. +   <img src="Sek.cbui371" width=300 height=1>
  4921. +   <br>
  4922. +   <br>
  4923. +   <img src="Sek.cbui371" width=300 height=1>
  4924. +   <table width=300 bgcolor="000000">
  4925. +   <tr>
  4926. +   <td width=40></td>
  4927. +  
  4928. +   <td><font color="ff0000"><a action="bypass -h npc_%objectId%_remove">.: Leave the party :.</font></a></td>
  4929. +  
  4930. +   </tr>
  4931. +   <tr>
  4932. +   <td height=1></td>
  4933. +   </tr>
  4934. +   </table>
  4935. +   <img src="Sek.cbui371" width=300 height=1>
  4936. +   <br>
  4937. +  
  4938. +   </body>
  4939. +   </html>
  4940. +  
  4941.  
  4942. Index: data\html\mods\tournament/9996-1.html
  4943. ===================================================================
  4944. --- data\html\mods\tournament/9996.html (revision 84)
  4945. +++ data\html\mods\tournament/9996.html (working copy)
  4946.  
  4947.  
  4948. +   <html><body><center><title>Tournament</title>
  4949. +   <br>
  4950. +   <img src="L2UI.L2UI.SquareGray" width=300 height=1>
  4951. +   <table bgcolor=000000 width=320>
  4952. +       <tr>
  4953. +           <td><center><font color="CD6839"></font> <font color="CD6839">Watch Tournament 2x2</font></center></td>
  4954. +       </tr>
  4955. +   </table>
  4956. +   <img src="L2UI.SquareGray" width=295 height=1>
  4957. +   <br>
  4958. +   <table width=210>
  4959. +       <tr>
  4960. +           <td align=center>
  4961. +               <button value="Observe 2x2  (Arena 1)" action="bypass -h npc_%objectId%_tournament_observe -87523 -240169 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  4962. +           </td>
  4963. +       </tr>
  4964. +   </table>
  4965. +  
  4966. +      
  4967. +   <table width=210>  
  4968. +       <tr>
  4969. +           <td align=center>
  4970. +               <button value="Observe 2x2  (Arena 2)" action="bypass -h npc_%objectId%_tournament_observe -109629 -201292 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  4971. +           </td>
  4972. +       </tr>
  4973. +   </table>
  4974. +  
  4975. +   <table width=210>  
  4976. +       <tr>
  4977. +           <td align=center>
  4978. +               <button value="Observe 2x2  (Arena 3)" action="bypass -h npc_%objectId%_tournament_observe -126367 -218228 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  4979. +           </td>
  4980. +       </tr>
  4981. +   </table>
  4982. +   <img src="L2UI.L2UI.SquareGray" width=300 height=1>
  4983. +   <table bgcolor=000000 width=320>
  4984. +       <tr>
  4985. +           <td><center><font color="CD6839"></font> <font color="CD6839">Watch Tournament 4x4</font></center></td>
  4986. +       </tr>
  4987. +   </table>
  4988. +   <img src="L2UI.SquareGray" width=295 height=1>
  4989. +   <table width=210>      
  4990. +       <tr>
  4991. +           <td align=center>
  4992. +               <button value="Observe 4x4  (Arena 1)" action="bypass -h npc_%objectId%_tournament_observe -69778 -241801 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  4993. +           </td>
  4994. +       </tr>
  4995. +   </table>
  4996. +   <table width=210>      
  4997. +       <tr>
  4998. +           <td align=center>
  4999. +               <button value="Observe 4x4  (Arena 2)" action="bypass -h npc_%objectId%_tournament_observe -77123 -251473 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5000. +           </td>
  5001. +       </tr>
  5002. +   </table>
  5003. +   <table width=210>      
  5004. +       <tr>
  5005. +           <td align=center>
  5006. +               <button value="Observe 4x4  (Arena 3)" action="bypass -h npc_%objectId%_tournament_observe -81748 -245950 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5007. +           </td>
  5008. +       </tr>
  5009. +   </table>
  5010. +   <br>
  5011. +   <img src="L2UI.L2UI.SquareGray" width=300 height=1>
  5012. +   <table bgcolor=000000 width=320>
  5013. +       <tr>
  5014. +           <td><center><font color="CD6839"></font> <font color="CD6839">Watch Tournament 9x9</font></center></td>
  5015. +       </tr>
  5016. +   </table>
  5017. +   <img src="L2UI.SquareGray" width=295 height=1>
  5018. +   <table width=210>      
  5019. +       <tr>
  5020. +           <td align=center>
  5021. +               <button value="Observe 9x9  (Arena 1)" action="bypass -h npc_%objectId%_tournament_observe -87466 -257752 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5022. +           </td>
  5023. +       </tr>
  5024. +   </table>
  5025. +   <table width=210>      
  5026. +       <tr>
  5027. +           <td align=center>
  5028. +               <button value="Observe 9x9  (Arena 2)" action="bypass -h npc_%objectId%_tournament_observe -93742 -251032 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5029. +           </td>
  5030. +       </tr>
  5031. +   </table>
  5032. +   <table width=210>      
  5033. +       <tr>
  5034. +           <td align=center>
  5035. +               <button value="Observe 9x9  (Arena 3)" action="bypass -h npc_%objectId%_tournament_observe -76754 -234014 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5036. +           </td>
  5037. +       </tr>
  5038. +   </table>
  5039. +   <br>
  5040. +   <td><font color="ff0000"><a action="bypass -h npc_%objectId%_observe_back">.: Back :.</font></a></td>
  5041. +  
  5042. +   </center>
  5043. +   </body>
  5044. +   </html>
  5045. +  
  5046. +  
  5047. Index: data\html\mods\tournament/Change_Arena.html
  5048. ===================================================================
  5049. --- data\html\mods\tournament/Change_Arena.html (revision 84)
  5050. +++ data\html\mods\tournament/Change_Arena.html (working copy)
  5051.  
  5052. +   <html><body><center><title>Tournament</title>
  5053. +   <br>
  5054. +   <img src="L2UI.L2UI.SquareGray" width=300 height=1>
  5055. +   <table bgcolor=000000 width=320>
  5056. +       <tr>
  5057. +           <td><center><font color="CD6839"></font> <font color="CD6839">Watch Tournament 2x2</font></center></td>
  5058. +       </tr>
  5059. +   </table>
  5060. +   <img src="L2UI.SquareGray" width=295 height=1>
  5061. +   <br>
  5062. +   <table width=210>
  5063. +       <tr>
  5064. +           <td align=center>
  5065. +               <button value="Observe 2x2  (Arena 1)" action="bypass -h npc_%objectId%_tournament_observe -87523 -240169 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5066. +           </td>
  5067. +       </tr>
  5068. +   </table>
  5069. +  
  5070. +      
  5071. +   <table width=210>  
  5072. +       <tr>
  5073. +           <td align=center>
  5074. +               <button value="Observe 2x2  (Arena 2)" action="bypass -h npc_%objectId%_tournament_observe -109629 -201292 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5075. +           </td>
  5076. +       </tr>
  5077. +   </table>
  5078. +  
  5079. +   <table width=210>  
  5080. +       <tr>
  5081. +           <td align=center>
  5082. +               <button value="Observe 2x2  (Arena 3)" action="bypass -h npc_%objectId%_tournament_observe -126367 -218228 -3331" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3">
  5083. +           </td>
  5084. +       </tr>
  5085. +   </table>
  5086. +  
  5087. +   <br>
  5088. +   <td><font color="ff0000"><a action="bypass -h npc_%objectId%_observe_back">.: Back :.</font></a></td>
  5089. +  
  5090. +   </center>
  5091. +   </body>
  5092. +   </html>
  5093.  
  5094.  
  5095. Index: net.sf.l2j.gameserver;GameServer.java
  5096. ===================================================================
  5097. --- net.sf.l2j.gameserver;GameServer.java   (revision 84)
  5098. +++ net.sf.l2j.gameserver;GameServer.java   (working copy)
  5099.  
  5100. +       ThreadPool.schedule(Arena2x2.getInstance(), 5000L);
  5101. +       ThreadPool.schedule(Arena9x9.getInstance(), 5000L);
  5102. +       ThreadPool.schedule(Arena4x4.getInstance(), 5000L);
  5103. +       if (Config.TOURNAMENT_EVENT_TIME)
  5104. +       {
  5105. +           _log.info("Tournament Event is enabled.");
  5106. +           ArenaEvent.getInstance().StartCalculationOfNextEventTime();
  5107. +       }
  5108. +       else if (Config.TOURNAMENT_EVENT_START)
  5109. +       {
  5110. +           _log.info("Tournament Event is enabled.");
  5111. +           ArenaTask.spawnNpc1();
  5112. +       }
  5113. +       else
  5114. +           _log.info("Tournament Event is disabled");
  5115.  
  5116. Index: data\xml\zones/TournamentZone.xml
  5117. ===================================================================
  5118. --- data\xml\zones/TournamentZone.xml   (revision 84)
  5119. +++ data\xml\zones/TournamentZone.xml   (working copy)
  5120.  
  5121. +   <?xml version="1.0" encoding="UTF-8"?>
  5122. +   <list>
  5123. +      
  5124. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_13 -->
  5125. +           <node x="-125722" y="-219117" />
  5126. +           <node x="-125437" y="-218767" />
  5127. +           <node x="-125437" y="-217736" />
  5128. +           <node x="-125722" y="-217386" />
  5129. +           <node x="-127447" y="-217386" />
  5130. +           <node x="-127732" y="-217736" />
  5131. +           <node x="-127732" y="-218767" />
  5132. +           <node x="-127447" y="-219117" />
  5133. +           <!-- point1 -->
  5134. +           <spawn x="-125722" y="-218251" z="-3327" />
  5135. +           <!-- point2 -->
  5136. +           <spawn x="-127447" y="-218251" z="-3327" />
  5137. +           <!-- spectator -->
  5138. +           <spawn x="-126584" y="-218251" z="-3327" />
  5139. +       </zone>
  5140. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_14 -->
  5141. +           <node x="-108730" y="-202093" />
  5142. +           <node x="-108445" y="-201743" />
  5143. +           <node x="-108445" y="-200712" />
  5144. +           <node x="-108730" y="-200362" />
  5145. +           <node x="-110455" y="-200362" />
  5146. +           <node x="-110740" y="-200712" />
  5147. +           <node x="-110740" y="-201743" />
  5148. +           <node x="-110455" y="-202093" />
  5149. +           <!-- point1 -->
  5150. +           <spawn x="-108730" y="-201227" z="-3327" />
  5151. +           <!-- point2 -->
  5152. +           <spawn x="-110455" y="-201227" z="-3327" />
  5153. +           <!-- spectator -->
  5154. +           <spawn x="-109592" y="-201227" z="-3327" />
  5155. +       </zone>
  5156. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_15 -->
  5157. +           <node x="-86618" y="-241008" />
  5158. +           <node x="-86333" y="-240658" />
  5159. +           <node x="-86333" y="-239627" />
  5160. +           <node x="-86618" y="-239277" />
  5161. +           <node x="-88343" y="-239277" />
  5162. +           <node x="-88628" y="-239627" />
  5163. +           <node x="-88628" y="-240658" />
  5164. +           <node x="-88343" y="-241008" />
  5165. +           <!-- point1 -->
  5166. +           <spawn x="-86618" y="-240142" z="-3327" />
  5167. +           <!-- point2 -->
  5168. +           <spawn x="-88343" y="-240142" z="-3327" />
  5169. +           <!-- spectator -->
  5170. +           <spawn x="-87480" y="-240142" z="-3327" />
  5171. +       </zone>
  5172. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_16 -->
  5173. +           <node x="-80890" y="-246830" />
  5174. +           <node x="-80605" y="-246480" />
  5175. +           <node x="-80605" y="-245449" />
  5176. +           <node x="-80890" y="-245099" />
  5177. +           <node x="-82615" y="-245099" />
  5178. +           <node x="-82900" y="-245449" />
  5179. +           <node x="-82900" y="-246480" />
  5180. +           <node x="-82615" y="-246830" />
  5181. +           <!-- point1 -->
  5182. +           <spawn x="-80890" y="-245964" z="-3327" />
  5183. +           <!-- point2 -->
  5184. +           <spawn x="-82615" y="-245964" z="-3327" />
  5185. +           <!-- spectator -->
  5186. +           <spawn x="-81752" y="-245964" z="-3327" />
  5187. +       </zone>
  5188. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_17 -->
  5189. +           <node x="-76249" y="-252348" />
  5190. +           <node x="-75964" y="-251998" />
  5191. +           <node x="-75964" y="-250967" />
  5192. +           <node x="-76249" y="-250617" />
  5193. +           <node x="-77974" y="-250617" />
  5194. +           <node x="-78259" y="-250967" />
  5195. +           <node x="-78259" y="-251998" />
  5196. +           <node x="-77974" y="-252348" />
  5197. +           <!-- point1 -->
  5198. +           <spawn x="-76249" y="-251482" z="-3327" />
  5199. +           <!-- point2 -->
  5200. +           <spawn x="-77974" y="-251482" z="-3327" />
  5201. +           <!-- spectator -->
  5202. +           <spawn x="-77111" y="-251482" z="-3327" />
  5203. +       </zone>
  5204. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_18 -->
  5205. +           <node x="-68857" y="-242637" />
  5206. +           <node x="-68572" y="-242287" />
  5207. +           <node x="-68572" y="-241256" />
  5208. +           <node x="-68857" y="-240906" />
  5209. +           <node x="-70582" y="-240906" />
  5210. +           <node x="-70867" y="-241256" />
  5211. +           <node x="-70867" y="-242287" />
  5212. +           <node x="-70582" y="-242637" />
  5213. +           <!-- point1 -->
  5214. +           <spawn x="-68857" y="-241771" z="-3327" />
  5215. +           <!-- point2 -->
  5216. +           <spawn x="-70582" y="-241771" z="-3327" />
  5217. +           <!-- spectator -->
  5218. +           <spawn x="-69719" y="-241771" z="-3327" />
  5219. +       </zone>
  5220. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_19 -->
  5221. +           <node x="-75961" y="-234861" />
  5222. +           <node x="-75676" y="-234511" />
  5223. +           <node x="-75676" y="-233480" />
  5224. +           <node x="-75961" y="-233130" />
  5225. +           <node x="-77686" y="-233130" />
  5226. +           <node x="-77971" y="-233480" />
  5227. +           <node x="-77971" y="-234511" />
  5228. +           <node x="-77686" y="-234861" />
  5229. +           <!-- point1 -->
  5230. +           <spawn x="-75961" y="-233995" z="-3327" />
  5231. +           <!-- point2 -->
  5232. +           <spawn x="-77686" y="-233995" z="-3327" />
  5233. +           <!-- spectator -->
  5234. +           <spawn x="-76823" y="-233995" z="-3327" />
  5235. +       </zone>
  5236. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_20 -->
  5237. +           <node x="-92953" y="-251900" />
  5238. +           <node x="-92668" y="-251550" />
  5239. +           <node x="-92668" y="-250519" />
  5240. +           <node x="-92953" y="-250169" />
  5241. +           <node x="-94678" y="-250169" />
  5242. +           <node x="-94963" y="-250519" />
  5243. +           <node x="-94963" y="-251550" />
  5244. +           <node x="-94678" y="-251900" />
  5245. +           <!-- point1 -->
  5246. +           <spawn x="-92953" y="-251034" z="-3327" />
  5247. +           <!-- point2 -->
  5248. +           <spawn x="-94678" y="-251034" z="-3327" />
  5249. +           <!-- spectator -->
  5250. +           <spawn x="-93815" y="-251034" z="-3327" />
  5251. +       </zone>
  5252. +       <zone shape="NPoly" minZ="-3400" maxZ="-3125"><!-- olympiad_stadium_21 -->
  5253. +           <node x="-86650" y="-258653" />
  5254. +           <node x="-86365" y="-258303" />
  5255. +           <node x="-86365" y="-257272" />
  5256. +           <node x="-86650" y="-256922" />
  5257. +           <node x="-88375" y="-256922" />
  5258. +           <node x="-88660" y="-257272" />
  5259. +           <node x="-88660" y="-258303" />
  5260. +           <node x="-88375" y="-258653" />
  5261. +           <!-- point1 -->
  5262. +           <spawn x="-86650" y="-257787" z="-3327" />
  5263. +           <!-- point2 -->
  5264. +           <spawn x="-88375" y="-257787" z="-3327" />
  5265. +           <!-- spectator -->
  5266. +           <spawn x="-87512" y="-257787" z="-3327" />
  5267. +       </zone>
  5268. +   </list>
  5269. +  
  5270.  
  5271. Index: config\eventos/Tournament.propertis
  5272. ===================================================================
  5273. --- config\eventos/Tournament.propertis (revision 84)
  5274. +++ config\eventos/Tournament.propertis (working copy)
  5275.  
  5276. +   #=================================================
  5277. +   #              SPAWN TOURNAMENT              
  5278. +   #=================================================
  5279. +   # Tournament comando spawn manual //tour ou //tour para terminar o evento.
  5280. +   # Tournament Npc Auto Spawn
  5281. +   # spawnar npc tournament ao ligar servidor
  5282. +   TournamentStartOn = False
  5283. +  
  5284. +   # ativar evento automatico
  5285. +   TournamentAutoEvent = True
  5286. +  
  5287. +   # aparecer popup teleport para o tournament
  5288. +   TournamentSummon = True
  5289. +  
  5290. +   # anunciar start event
  5291. +   TournamenAnnounce = True
  5292. +  
  5293. +   # Time heading
  5294. +   Heading = 1
  5295. +  
  5296. +   # Pvps para participar do tournament?
  5297. +   ArenaPvpJoin = -1
  5298. +  
  5299. +   # ArenaStartTime= 10:30,14:30,18:30,23:30
  5300. +   TournamentStartTime = 10:00,15:00,20:00
  5301. +   # Duraçao do evento
  5302. +   # Tempo em Minutos
  5303. +   TournamentEventTime = 90
  5304. +  
  5305. +   #=================================================
  5306. +   #              2x2 EVENT LOC                          
  5307. +   #=================================================
  5308. +   # Arenas Location
  5309. +   # e.g: 149360, 46594, -3415; x, y, z; x1, y1, z1
  5310. +   ArenasLoc = -87523, -240169, -3331;-109629, -201292, -3331;-126367, -218228, -3331;
  5311. +  
  5312. +   #=================================================
  5313. +   #              4x4 EVENT LOC                          
  5314. +   #=================================================
  5315. +   # Arenas Location
  5316. +   # e.g: 149360, 46594, -3415; x, y, z; x1, y1, z1
  5317. +   Arenas4x4Loc = -69778, -241801, -3331;-77123, -251473, -3331;-81748, -245950, -3331;
  5318. +  
  5319. +   #=================================================
  5320. +   #              9x9 EVENT LOC                            
  5321. +   #=================================================
  5322. +   # Arenas Location
  5323. +   # e.g: 149360, 46594, -3415; x, y, z; x1, y1, z1
  5324. +   Arenas9x9Loc = -87466, -257752, -3331;-93742, -251032, -3331;-76754, -234014, -3331;
  5325. +  
  5326. +   #=================================================
  5327. +   #               REWARD EVENT
  5328. +   #=================================================
  5329. +   # id do item que sera anunciado.
  5330. +   # id do item que sera a recompensa
  5331. +   ArenaRewardId = 9301
  5332. +   #=================================================
  5333. +   # (2x2) quantidade premios para os vencedores
  5334. +   ArenaWinRewardCount = 10
  5335. +   # (2x2) quantidade que sera retirada para os que perderem
  5336. +   ArenaLostRewardCount = 5
  5337. +   #=================================================
  5338. +   # (4x4) quantidade premios para os vencedores
  5339. +   ArenaWinRewardCount4x4 = 10
  5340. +   # (4x4) quantidade que sera retirada para os que perderem
  5341. +   ArenaLostRewardCount4x4 = 5
  5342. +   #=================================================
  5343. +   # (9x9) quantidade premios para os vencedores
  5344. +   ArenaWinRewardCount9x9 = 10
  5345. +   # (9x9) quantidade que sera retirada para os que perderem
  5346. +   ArenaLostRewardCount9x9 = 5
  5347. +   #=================================================
  5348. +  
  5349. +   # Tempo entre o status dos jogadores de cheques [em segundos]
  5350. +   ArenaBattleCheckInterval = 15
  5351. +  
  5352. +   # Tempo para os jogadores inscritos serem chamados [em segundos]
  5353. +   ArenaBattleCallInterval = 60
  5354. +  
  5355. +   # Hora de começar a batalha depois que os jogadores são chamados [em segundos]
  5356. +   ArenaBattleWaitInterval = 20
  5357. +   ArenaBattleWaitInterval4x4 = 45
  5358. +   ArenaBattleWaitInterval9x9 = 45
  5359. +  
  5360. +   # lista de items que nao poderao usar no tournament
  5361. +   ItemsRestriction = 0
  5362. +  
  5363. +   # skill restriction
  5364. +   DisableSkillList = 0
  5365. +   ArenaDisableSkillList_noStart = 0
  5366. +  
  5367. +   # ID do NPC de Registro
  5368. +   NPCRegister = 9996
  5369. +  
  5370. +   # Local do spawn NPC de Registro.
  5371. +   Locx = -115101
  5372. +   Locy = -213178
  5373. +   Locz = -3334
  5374. +  
  5375. +   # local para onde os players serao teleportados pelo teleport popup
  5376. +   Tournament_locx = -115101
  5377. +   Tournament_locy = -213178
  5378. +   Tournament_locz = -3334
  5379. +  
  5380. +   # ativar registros
  5381. +   Allow2x2Register = True
  5382. +   Allow4x4Register = True
  5383. +   Allow9x9Register = True
  5384. +  
  5385. +   # perder buff em 4x4?
  5386. +   Allow4x4LostBuff = False
  5387. +  
  5388. +   # Show screen Arena message on character login
  5389. +   # Default: False
  5390. +   ScreenArenaMessageEnable = True
  5391. +   # Screen Arena message text to show on character login if enabled
  5392. +   ScreenArenaMessageText = Tournament 2x2 / 4x4 / 9x9 register now.
  5393. +   # Show screen Arena message for x seconds when character log in to game if enabled
  5394. +   ScreenArenaMessageTime = 6
  5395. +  
  5396. +   # Color title players
  5397. +   TitleColorTeam_1 = 00FFFF
  5398. +   TitleColorTeam_2 = 00FFFF
  5399. +  
  5400. +   # Prefix title players
  5401. +   TitleTeam_1 = Team [1]
  5402. +   TitleTeam_2 = Team [2]
  5403. +  
  5404. +   # Remover efeito e desativar Skill em Arena
  5405. +   ArenaSkillProtect = True
  5406. +  
  5407. +   #Lista de Skill Proibidas
  5408. +   ArenaDisableSkillList = 1410,438,1016,1254,3160,1410,3123
  5409. +  
  5410. +   #Remover efeito das skills
  5411. +   ArenaStopSkillList = 420,406,176,139,1410,438
  5412. +  
  5413. +   #=================================================
  5414. +   #          PARTY RESTRICED Nº CLASS 4x4                  
  5415. +   #=================================================
  5416. +   # maixmo de classes em 1 pt
  5417. +   bs_amount_4x4 = 1
  5418. +   archer_amount_4x4 = 2
  5419. +   dominator_amount_4x4 = 2
  5420. +   duelist_amount_4x4 = 1
  5421. +   dreadnought_amount_4x4 = 2
  5422. +   tanker_amount_4x4 = 1
  5423. +   dagger_amount_4x4 = 2
  5424. +   archmage_amount_4x4 = 2
  5425. +   soultaker_amount_4x4 = 2
  5426. +   mysticMuse_amount_4x4 = 2
  5427. +   stormScreamer_amount_4x4 = 2
  5428. +   titan_amount_4x4 = 1
  5429. +   grandKhauatari_amount_4x4 = 1
  5430. +   doomcryer_amount_4x4 = 2
  5431. +  
  5432. +   #=================================================
  5433. +   #         PARTY RESTRICED Nº CLASS 9x9                        
  5434. +   #=================================================
  5435. +   # maixmo de classes em 1 pt
  5436. +   bs_amount_9x9 = 2
  5437. +   archer_amount_9x9 = 9
  5438. +   dominator_amount_9x9 = 9
  5439. +   duelist_amount_9x9 = 9
  5440. +   dreadnought_amount_9x9 = 9
  5441. +   tanker_amount_9x9 = 9
  5442. +   dagger_amount_9x9 = 9
  5443. +   archmage_amount_9x9 = 9
  5444. +   soultaker_amount_9x9 = 9
  5445. +   mysticMuse_amount_9x9 = 9
  5446. +   stormScreamer_amount_9x9 = 9
  5447. +   titan_amount_9x9 = 9
  5448. +   grandKhauatari_amount_9x9 = 9
  5449. +   doomcryer_amount_9x9 = 9
  5450. +  
  5451.  
  5452. Index: net.sf.l2j.gameserver.handler.admincommandhandlers;AdminCustom.java
  5453. ===================================================================
  5454. --- net.sf.l2j.gameserver.handler.admincommandhandlers;AdminCustom.java (revision 84)
  5455. +++ net.sf.l2j.gameserver.handler.admincommandhandlers;AdminCustom.java (working copy)
  5456.  
  5457. +   package net.sf.l2j.gameserver.handler.admincommandhandlers;
  5458. +  
  5459. +   import java.util.logging.Logger;
  5460. +   import net.sf.l2j.commons.concurrent.ThreadPool;
  5461. +   import l2jban.events.ArenaTask;
  5462. +   import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
  5463. +   import net.sf.l2j.gameserver.model.actor.Player;
  5464. +  
  5465. +  
  5466. +   public class AdminCustom implements IAdminCommandHandler
  5467. +   {
  5468. +      
  5469. +       private static final String[] ADMIN_COMMANDS =
  5470. +       {
  5471. +           "admin_tour"
  5472. +  
  5473. +       };
  5474. +      
  5475. +       protected static final Logger _log = Logger.getLogger(AdminCustom.class.getName());
  5476. +       public static boolean _arena_manual = false;
  5477. +  
  5478. +       @Override
  5479. +       public boolean useAdminCommand(String command, Player activeChar)
  5480. +       {
  5481. +  
  5482. +  
  5483. +           if (command.equals("admin_tour"))
  5484. +           {
  5485. +               if (ArenaTask._started)
  5486. +               {
  5487. +                   _log.info("----------------------------------------------------------------------------");
  5488. +                   _log.info("[Tournament]: Event Finished.");
  5489. +                   _log.info("----------------------------------------------------------------------------");
  5490. +                   ArenaTask._aborted = true;
  5491. +                   finishEventArena();
  5492. +                   _arena_manual = true;
  5493. +  
  5494. +                   activeChar.sendMessage("SYS: Voce Finalizou o evento Tournament Manualmente..");
  5495. +               }
  5496. +               else
  5497. +               {
  5498. +                   _log.info("----------------------------------------------------------------------------");
  5499. +                   _log.info("[Tournament]: Event Started.");
  5500. +                   _log.info("----------------------------------------------------------------------------");
  5501. +                   initEventArena();
  5502. +                   _arena_manual = true;
  5503. +                   activeChar.sendMessage("SYS: Voce ativou o evento Tournament Manualmente..");
  5504. +               }
  5505. +           }
  5506. +           return true;
  5507. +       }
  5508. +  
  5509. +       private static void initEventArena()
  5510. +       {
  5511. +           ThreadPool.schedule(new Runnable()
  5512. +           {
  5513. +               @Override
  5514. +               public void run()
  5515. +               {
  5516. +  
  5517. +                   ArenaTask.SpawnEvent();
  5518. +               }
  5519. +           }, 10L);
  5520. +       }
  5521. +  
  5522. +       private static void finishEventArena()
  5523. +       {
  5524. +           ThreadPool.schedule(new Runnable()
  5525. +           {
  5526. +               @Override
  5527. +               public void run()
  5528. +               {
  5529. +  
  5530. +                   ArenaTask.finishEvent();
  5531. +               }
  5532. +           }, 10L);
  5533. +       }
  5534. +  
  5535. +  
  5536. +  
  5537. +  
  5538. +       @Override
  5539. +       public String[] getAdminCommandList()
  5540. +       {
  5541. +           return ADMIN_COMMANDS;
  5542. +       }
  5543. +   }
  5544.  
  5545. Index: net.sf.l2j.gameserver.network;L2GameClient.java
  5546. ===================================================================
  5547. --- net.sf.l2j.gameserver.network;L2GameClient.java  (revision 84)
  5548. +++ net.sf.l2j.gameserver.network;L2GameClient.java (working copy)
  5549.  
  5550.        public void run()
  5551.        {
  5552.            try
  5553.            {
  5554.                // we are going to manually save the char below thus we can force the cancel
  5555.                if (_autoSaveInDB != null)
  5556.                    _autoSaveInDB.cancel(true);
  5557.  
  5558. +               Player player = getActiveChar();
  5559. +               if (player != null)
  5560. +                   if (player.isArenaProtection())
  5561. +                   {
  5562. +                       player.setXYZ(ArenaTask.loc1x(), ArenaTask.loc1y(), ArenaTask.loc1z());
  5563. +                       if (player.isInArenaEvent())
  5564. +                       {
  5565. +                           player.getAppearance().setTitleColor(player._originalTitleColorTournament);
  5566. +                           player.setTitle(player._originalTitleTournament);
  5567. +                           player.broadcastUserInfo();
  5568. +                           player.broadcastTitleInfo();
  5569. +                       }
  5570. +                   }
  5571.                  
  5572.                  
  5573. Index: net.sf.l2j.gameserver.network.DlgAnswer.java
  5574. ===================================================================
  5575. --- net.sf.l2j.gameserver.network.clientpackets;DlgAnswer.java  (revision 84)
  5576. +++ nnet.sf.l2j.gameserver.network.clientpackets;DlgAnswer.java (working copy)
  5577.  
  5578. +   import net.sf.l2j.gameserver.events.ArenaTask;
  5579.  
  5580.    @Override
  5581.    public void runImpl()
  5582.    {
  5583.        final Player activeChar = getClient().getActiveChar();
  5584.        if (activeChar == null)
  5585.            return;
  5586.      
  5587.        if (_messageId == SystemMessageId.RESSURECTION_REQUEST_BY_S1.getId() || _messageId == SystemMessageId.DO_YOU_WANT_TO_BE_RESTORED.getId())
  5588.            activeChar.reviveAnswer(_answer);
  5589.      
  5590. +       else if (_messageId == SystemMessageId.S1_WISHES_TO_SUMMON_YOU_FROM_S2_DO_YOU_ACCEPT.getId())
  5591. +           if (Announcements.isSummoning == true && _answer == 1)
  5592. +               activeChar.teleToLocation(ArenaTask.loc1x(), ArenaTask.loc1y(), ArenaTask.loc1z(), 125);
  5593.      
  5594.            else
  5595.                activeChar.teleportAnswer(_answer, _requesterId);
  5596.      
  5597.        else if (_messageId == 1983 && Config.ALLOW_WEDDING)
  5598.            activeChar.engageAnswer(_answer);
  5599.      
  5600.        else if (_messageId == SystemMessageId.WOULD_YOU_LIKE_TO_OPEN_THE_GATE.getId())
  5601.            activeChar.activateGate(_answer, 1);
  5602.      
  5603.        else if (_messageId == SystemMessageId.WOULD_YOU_LIKE_TO_CLOSE_THE_GATE.getId())
  5604.            activeChar.activateGate(_answer, 0);
  5605.    }
  5606.  
  5607.  
  5608. Index: net.sf.l2j.gameserver.handler;EnterWorld.java
  5609. ===================================================================
  5610. --- net.sf.l2j.gameserver.handler;EnterWorld.java  (revision 84)
  5611. +++ net.sf.l2j.gameserver.handler;EnterWorld.java  (working copy)
  5612.  
  5613. + import net.sf.l2j.gameserver.events.ArenaTask;
  5614.  
  5615. +       if (ArenaTask.is_started() && Config.ARENA_MESSAGE_ENABLED)
  5616. +           activeChar.sendPacket(new ExShowScreenMessage(Config.ARENA_MESSAGE_TEXT, Config.ARENA_MESSAGE_TIME, 2, true));
  5617.  
  5618.  
  5619. -   registerHandler(new AdminLevel());
  5620. +   registerHandler(new AdminLevel());
  5621. +   registerHandler(new AdminCustom());
  5622.  
  5623. Index: data\xml/adminCommands.xml
  5624. ===================================================================
  5625. --- data\xml/adminCommands.xml  (revision 84)
  5626. +++ data\xml/adminCommands.xml  (working copy)
  5627.  
  5628. +   <!-- Eventos L2jBan -->
  5629. +   <aCar name="admin_tour" accessLevel="7"/>
  5630.  
  5631.  
  5632. Index: net.sf.l2j/Config.java
  5633. ===================================================================
  5634. --- net.sf.l2j/Config.java  (revision 84)
  5635. +++ net.sf.l2j/Config.java  (working copy)
  5636.  
  5637. +   public static final String TOUR_FILE = "./config/events/tournament.properties";
  5638.  
  5639.  
  5640. +   /** Arena Event */
  5641. +   public static boolean TOURNAMENT_EVENT_START;
  5642. +   public static boolean TOURNAMENT_EVENT_TIME;
  5643. +   public static boolean TOURNAMENT_EVENT_SUMMON;
  5644. +   public static boolean TOURNAMENT_EVENT_ANNOUNCE;
  5645. +   public static int TOURNAMENT_TIME;
  5646. +   public static String[] TOURNAMENT_EVENT_INTERVAL_BY_TIME_OF_DAY;
  5647. +   public static String TITLE_COLOR_TEAM1;
  5648. +   public static String TITLE_COLOR_TEAM2;
  5649. +   public static String MSG_TEAM1;
  5650. +   public static String MSG_TEAM2;
  5651. +   public static boolean Allow_Same_HWID_On_Tournament;
  5652. +   public static int ARENA_NPC;
  5653. +   public static int NPC_locx;
  5654. +   public static int NPC_locy;
  5655. +   public static int NPC_locz;
  5656. +   public static int NPC_Heading;
  5657. +   public static int Tournament_locx;
  5658. +   public static int Tournament_locy;
  5659. +   public static int Tournament_locz;
  5660. +   public static boolean ALLOW_2X2_REGISTER;
  5661. +   public static boolean ALLOW_4X4_REGISTER;
  5662. +   public static boolean ALLOW_9X9_REGISTER;
  5663. +   public static boolean ALLOW_4X4_LOSTBUFF;
  5664. +   public static boolean ARENA_MESSAGE_ENABLED;
  5665. +   public static String ARENA_MESSAGE_TEXT;
  5666. +   public static int ARENA_MESSAGE_TIME;
  5667. +   public static int ARENA_EVENT_COUNT;
  5668. +   public static int[][] ARENA_EVENT_LOCS;
  5669. +   public static int ARENA_EVENT_COUNT_4X4;
  5670. +   public static int[][] ARENA_EVENT_LOCS_4X4;
  5671. +   public static int ARENA_EVENT_COUNT_9X9;
  5672. +   public static int[][] ARENA_EVENT_LOCS_9X9;
  5673. +   public static int duelist_COUNT_4X4;
  5674. +   public static int dreadnought_COUNT_4X4;
  5675. +   public static int tanker_COUNT_4X4;
  5676. +   public static int dagger_COUNT_4X4;
  5677. +   public static int archer_COUNT_4X4;
  5678. +   public static int bs_COUNT_4X4;
  5679. +   public static int archmage_COUNT_4X4;
  5680. +   public static int soultaker_COUNT_4X4;
  5681. +   public static int mysticMuse_COUNT_4X4;
  5682. +   public static int stormScreamer_COUNT_4X4;
  5683. +   public static int titan_COUNT_4X4;
  5684. +   public static int dominator_COUNT_4X4;
  5685. +   public static int doomcryer_COUNT_4X4;
  5686. +   public static int duelist_COUNT_9X9;
  5687. +   public static int dreadnought_COUNT_9X9;
  5688. +   public static int tanker_COUNT_9X9;
  5689. +   public static int dagger_COUNT_9X9;
  5690. +   public static int archer_COUNT_9X9;
  5691. +   public static int bs_COUNT_9X9;
  5692. +   public static int archmage_COUNT_9X9;
  5693. +   public static int soultaker_COUNT_9X9;
  5694. +   public static int mysticMuse_COUNT_9X9;
  5695. +   public static int stormScreamer_COUNT_9X9;
  5696. +   public static int titan_COUNT_9X9;
  5697. +   public static int grandKhauatari_COUNT_9X9;
  5698. +   public static int dominator_COUNT_9X9;
  5699. +   public static int doomcryer_COUNT_9X9;
  5700. +   public static int ARENA_PVP_AMOUNT;
  5701. +   public static int ARENA_REWARD_ID;
  5702. +   public static int ARENA_WIN_REWARD_COUNT;
  5703. +   public static int ARENA_LOST_REWARD_COUNT;
  5704. +   public static int ARENA_WIN_REWARD_COUNT_4X4;
  5705. +   public static int ARENA_LOST_REWARD_COUNT_4X4;
  5706. +   public static int ARENA_WIN_REWARD_COUNT_9X9;
  5707. +   public static int ARENA_LOST_REWARD_COUNT_9X9;
  5708. +   public static int ARENA_CHECK_INTERVAL;
  5709. +   public static int ARENA_CALL_INTERVAL;
  5710. +   public static int ARENA_WAIT_INTERVAL_4X4;
  5711. +   public static int ARENA_WAIT_INTERVAL_9X9;
  5712. +   public static int ARENA_WAIT_INTERVAL;
  5713. +   public static String TOURNAMENT_ID_RESTRICT;
  5714. +   public static List<Integer> TOURNAMENT_LISTID_RESTRICT;
  5715. +   public static boolean ARENA_SKILL_PROTECT;
  5716. +   public static List<Integer> ARENA_SKILL_LIST = new ArrayList<>();
  5717. +   public static List<Integer> ARENA_DISABLE_SKILL_LIST = new ArrayList<>();
  5718. +   public static List<Integer> ARENA_STOP_SKILL_LIST = new ArrayList<>();
  5719. +   public static List<Integer> ARENA_DISABLE_SKILL_LIST_PERM = new ArrayList<>();
  5720. +
  5721.  
  5722. +   /**
  5723. +    * Loads tournament settings.
  5724. +    */
  5725. +   private static final void loadTour()
  5726. +   {
  5727. +       final ExProperties tournament = initProperties(Config.TOUR_FILE);
  5728. +       TOURNAMENT_EVENT_START = tournament.getProperty("TournamentStartOn", false);
  5729. +       TOURNAMENT_EVENT_TIME = tournament.getProperty("TournamentAutoEvent", false);
  5730. +       TOURNAMENT_EVENT_SUMMON = tournament.getProperty("TournamentSummon", false);
  5731. +       TOURNAMENT_EVENT_ANNOUNCE = tournament.getProperty("TournamenAnnounce", false);
  5732. +
  5733. +       TOURNAMENT_EVENT_INTERVAL_BY_TIME_OF_DAY = tournament.getProperty("TournamentStartTime", "20:00").split(",");
  5734. +
  5735. +       TOURNAMENT_TIME = Integer.parseInt(tournament.getProperty("TournamentEventTime", "1"));
  5736. +
  5737. +       TITLE_COLOR_TEAM1 = tournament.getProperty("TitleColorTeam_1", "FFFFFF");
  5738. +       TITLE_COLOR_TEAM2 = tournament.getProperty("TitleColorTeam_2", "FFFFFF");
  5739. +
  5740. +       MSG_TEAM1 = tournament.getProperty("TitleTeam_1", "Team [1]");
  5741. +       MSG_TEAM2 = tournament.getProperty("TitleTeam_2", "Team [2]");
  5742. +
  5743. +       Allow_Same_HWID_On_Tournament = Boolean.parseBoolean(tournament.getProperty("Allow_Same_HWID_On_Tournament", "true"));
  5744. +
  5745. +       ARENA_NPC = Integer.parseInt(tournament.getProperty("NPCRegister", "1"));
  5746. +
  5747. +       NPC_locx = Integer.parseInt(tournament.getProperty("Locx", "1"));
  5748. +       NPC_locy = Integer.parseInt(tournament.getProperty("Locy", "1"));
  5749. +       NPC_locz = Integer.parseInt(tournament.getProperty("Locz", "1"));
  5750. +       NPC_Heading = Integer.parseInt(tournament.getProperty("Heading", "1"));
  5751. +
  5752. +       Tournament_locx = Integer.parseInt(tournament.getProperty("TournamentLocx", "1"));
  5753. +       Tournament_locy = Integer.parseInt(tournament.getProperty("TournamentLocy", "1"));
  5754. +       Tournament_locz = Integer.parseInt(tournament.getProperty("TournamentLocz", "1"));
  5755. +
  5756. +       ALLOW_2X2_REGISTER = Boolean.parseBoolean(tournament.getProperty("Allow2x2Register", "true"));
  5757. +       ALLOW_4X4_REGISTER = Boolean.parseBoolean(tournament.getProperty("Allow4x4Register", "true"));
  5758. +       ALLOW_9X9_REGISTER = Boolean.parseBoolean(tournament.getProperty("Allow9x9Register", "true"));
  5759. +
  5760. +       ALLOW_4X4_LOSTBUFF = Boolean.parseBoolean(tournament.getProperty("Allow4x4LostBuff", "false"));
  5761. +
  5762. +       ARENA_MESSAGE_ENABLED = Boolean.parseBoolean(tournament.getProperty("ScreenArenaMessageEnable", "false"));
  5763. +       ARENA_MESSAGE_TEXT = tournament.getProperty("ScreenArenaMessageText", "Welcome to L2J server!");
  5764. +       ARENA_MESSAGE_TIME = Integer.parseInt(tournament.getProperty("ScreenArenaMessageTime", "10")) * 1000;
  5765. +
  5766. +       String[] arenaLocs = tournament.getProperty("ArenasLoc", "").split(";");
  5767. +       String[] locSplit = null;
  5768. +       ARENA_EVENT_COUNT = arenaLocs.length;
  5769. +       ARENA_EVENT_LOCS = new int[ARENA_EVENT_COUNT][3];
  5770. +       for (int i = 0; i < ARENA_EVENT_COUNT; i++)
  5771. +       {
  5772. +           locSplit = arenaLocs[i].split(",");
  5773. +           for (int j = 0; j < 3; j++)
  5774. +               ARENA_EVENT_LOCS[i][j] = Integer.parseInt(locSplit[j].trim());
  5775. +       }
  5776. +       String[] arenaLocs4x4 = tournament.getProperty("Arenas4x4Loc", "").split(";");
  5777. +       String[] locSplit4x4 = null;
  5778. +       ARENA_EVENT_COUNT_4X4 = arenaLocs4x4.length;
  5779. +       ARENA_EVENT_LOCS_4X4 = new int[ARENA_EVENT_COUNT_4X4][3];
  5780. +       for (int i = 0; i < ARENA_EVENT_COUNT_4X4; i++)
  5781. +       {
  5782. +           locSplit4x4 = arenaLocs4x4[i].split(",");
  5783. +           for (int j = 0; j < 3; j++)
  5784. +               ARENA_EVENT_LOCS_4X4[i][j] = Integer.parseInt(locSplit4x4[j].trim());
  5785. +       }
  5786. +       String[] arenaLocs9x9 = tournament.getProperty("Arenas9x9Loc", "").split(";");
  5787. +       String[] locSplit8x8 = null;
  5788. +       ARENA_EVENT_COUNT_9X9 = arenaLocs9x9.length;
  5789. +       ARENA_EVENT_LOCS_9X9 = new int[ARENA_EVENT_COUNT_9X9][3];
  5790. +       int j;
  5791. +       for (int i = 0; i < ARENA_EVENT_COUNT_9X9; i++)
  5792. +       {
  5793. +           locSplit8x8 = arenaLocs9x9[i].split(",");
  5794. +           for (j = 0; j < 3; j++)
  5795. +               ARENA_EVENT_LOCS_9X9[i][j] = Integer.parseInt(locSplit8x8[j].trim());
  5796. +       }
  5797. +       duelist_COUNT_4X4 = tournament.getProperty("duelist_amount_4x4", 1);
  5798. +       dreadnought_COUNT_4X4 = tournament.getProperty("dreadnought_amount_4x4", 1);
  5799. +       tanker_COUNT_4X4 = tournament.getProperty("tanker_amount_4x4", 1);
  5800. +       dagger_COUNT_4X4 = tournament.getProperty("dagger_amount_4x4", 1);
  5801. +       archer_COUNT_4X4 = tournament.getProperty("archer_amount_4x4", 1);
  5802. +       bs_COUNT_4X4 = tournament.getProperty("bs_amount_4x4", 1);
  5803. +       archmage_COUNT_4X4 = tournament.getProperty("archmage_amount_4x4", 1);
  5804. +       soultaker_COUNT_4X4 = tournament.getProperty("soultaker_amount_4x4", 1);
  5805. +       mysticMuse_COUNT_4X4 = tournament.getProperty("mysticMuse_amount_4x4", 1);
  5806. +       stormScreamer_COUNT_4X4 = tournament.getProperty("stormScreamer_amount_4x4", 1);
  5807. +       titan_COUNT_4X4 = tournament.getProperty("titan_amount_4x4", 1);
  5808. +       dominator_COUNT_4X4 = tournament.getProperty("dominator_amount_4x4", 1);
  5809. +       doomcryer_COUNT_4X4 = tournament.getProperty("doomcryer_amount_4x4", 1);
  5810. +
  5811. +       duelist_COUNT_9X9 = tournament.getProperty("duelist_amount_9x9", 1);
  5812. +       dreadnought_COUNT_9X9 = tournament.getProperty("dreadnought_amount_9x9", 1);
  5813. +       tanker_COUNT_9X9 = tournament.getProperty("tanker_amount_9x9", 1);
  5814. +       dagger_COUNT_9X9 = tournament.getProperty("dagger_amount_9x9", 1);
  5815. +       archer_COUNT_9X9 = tournament.getProperty("archer_amount_9x9", 1);
  5816. +       bs_COUNT_9X9 = tournament.getProperty("bs_amount_9x9", 1);
  5817. +       archmage_COUNT_9X9 = tournament.getProperty("archmage_amount_9x9", 1);
  5818. +       soultaker_COUNT_9X9 = tournament.getProperty("soultaker_amount_9x9", 1);
  5819. +       mysticMuse_COUNT_9X9 = tournament.getProperty("mysticMuse_amount_9x9", 1);
  5820. +       stormScreamer_COUNT_9X9 = tournament.getProperty("stormScreamer_amount_9x9", 1);
  5821. +       titan_COUNT_9X9 = tournament.getProperty("titan_amount_9x9", 1);
  5822. +       grandKhauatari_COUNT_9X9 = tournament.getProperty("grandKhauatari_amount_9x9", 1);
  5823. +       dominator_COUNT_9X9 = tournament.getProperty("dominator_amount_9x9", 1);
  5824. +       doomcryer_COUNT_9X9 = tournament.getProperty("doomcryer_amount_9x9", 1);
  5825. +
  5826. +       ARENA_PVP_AMOUNT = tournament.getProperty("ArenaPvpJoin", 10);
  5827. +       ARENA_REWARD_ID = tournament.getProperty("ArenaRewardId", 57);
  5828. +       ARENA_WIN_REWARD_COUNT = tournament.getProperty("ArenaWinRewardCount", 1);
  5829. +       ARENA_LOST_REWARD_COUNT = tournament.getProperty("ArenaLostRewardCount", 1);
  5830. +
  5831. +       ARENA_WIN_REWARD_COUNT_4X4 = tournament.getProperty("ArenaWinRewardCount4x4", 1);
  5832. +       ARENA_LOST_REWARD_COUNT_4X4 = tournament.getProperty("ArenaLostRewardCount4x4", 1);
  5833. +
  5834. +       ARENA_WIN_REWARD_COUNT_9X9 = tournament.getProperty("ArenaWinRewardCount9x9", 1);
  5835. +       ARENA_LOST_REWARD_COUNT_9X9 = tournament.getProperty("ArenaLostRewardCount9x9", 1);
  5836. +
  5837. +       ARENA_CHECK_INTERVAL = tournament.getProperty("ArenaBattleCheckInterval", 15) * 1000;
  5838. +       ARENA_CALL_INTERVAL = tournament.getProperty("ArenaBattleCallInterval", 60);
  5839. +
  5840. +       ARENA_WAIT_INTERVAL = tournament.getProperty("ArenaBattleWaitInterval", 20);
  5841. +       ARENA_WAIT_INTERVAL_4X4 = tournament.getProperty("ArenaBattleWaitInterval4x4", 45);
  5842. +       ARENA_WAIT_INTERVAL_9X9 = tournament.getProperty("ArenaBattleWaitInterval9x9", 45);
  5843. +
  5844. +       TOURNAMENT_ID_RESTRICT = tournament.getProperty("ItemsRestriction");
  5845. +
  5846. +       TOURNAMENT_LISTID_RESTRICT = new ArrayList<>();
  5847. +       for (String id : TOURNAMENT_ID_RESTRICT.split(","))
  5848. +           TOURNAMENT_LISTID_RESTRICT.add(Integer.valueOf(Integer.parseInt(id)));
  5849. +       ARENA_SKILL_PROTECT = Boolean.parseBoolean(tournament.getProperty("ArenaSkillProtect", "false"));
  5850. +       for (String id : tournament.getProperty("ArenaDisableSkillList", "0").split(","))
  5851. +           ARENA_SKILL_LIST.add(Integer.valueOf(Integer.parseInt(id)));
  5852. +       for (String id : tournament.getProperty("DisableSkillList", "0").split(","))
  5853. +           ARENA_DISABLE_SKILL_LIST_PERM.add(Integer.valueOf(Integer.parseInt(id)));
  5854. +       for (String id : tournament.getProperty("ArenaDisableSkillList_noStart", "0").split(","))
  5855. +           ARENA_DISABLE_SKILL_LIST.add(Integer.valueOf(Integer.parseInt(id)));
  5856. +       for (String id : tournament.getProperty("ArenaStopSkillList", "0").split(","))
  5857. +           ARENA_STOP_SKILL_LIST.add(Integer.valueOf(Integer.parseInt(id)));
  5858. +   }
  5859. +
  5860.  
  5861.  
  5862. -   // siege settings
  5863. -   loadSieges();
  5864.  
  5865. +   // siege settings
  5866. +   loadSieges();
  5867.        
  5868. +   // tournament settings
  5869. +   loadTour();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement