Guest User

Untitled

a guest
Aug 21st, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.90 KB | None | 0 0
  1. package Extensions.Events.Phoenix.Engines;
  2.  
  3. import Extensions.Events.Phoenix.EventConfig;
  4. import Extensions.Events.Phoenix.EventManager;
  5. import Extensions.Events.Phoenix.Events.RaidBoss;
  6. import java.util.ArrayList;
  7. import java.util.Set;
  8. import javolution.util.FastList;
  9. import javolution.util.FastMap;
  10. import javolution.util.FastMap.Entry;
  11. import net.sf.l2j.gameserver.ThreadPoolManager;
  12. import net.sf.l2j.gameserver.datatables.NpcTable;
  13. import net.sf.l2j.gameserver.datatables.SpawnTable;
  14. import net.sf.l2j.gameserver.model.L2Effect;
  15. import net.sf.l2j.gameserver.model.L2Object;
  16. import net.sf.l2j.gameserver.model.L2Party;
  17. import net.sf.l2j.gameserver.model.L2Party.MessageType;
  18. import net.sf.l2j.gameserver.model.L2Skill;
  19. import net.sf.l2j.gameserver.model.L2Spawn;
  20. import net.sf.l2j.gameserver.model.actor.L2Character;
  21. import net.sf.l2j.gameserver.model.actor.L2Npc;
  22. import net.sf.l2j.gameserver.model.actor.L2Summon;
  23. import net.sf.l2j.gameserver.model.actor.appearance.PcAppearance;
  24. import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  25. import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
  26. import net.sf.l2j.gameserver.model.base.ClassId;
  27. import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
  28. import net.sf.l2j.gameserver.model.item.type.EtcItemType;
  29. import net.sf.l2j.gameserver.model.itemcontainer.PcInventory;
  30. import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
  31. import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  32. import net.sf.l2j.gameserver.skills.AbnormalEffect;
  33. import net.sf.l2j.gameserver.templates.skills.L2SkillType;
  34. import net.sf.l2j.util.Rnd;
  35.  
  36. public abstract class Event
  37. {
  38. protected static final int[] ITEMS = { 6707, 6709, 6708, 6710, 6704, 6701, 6702, 6703, 6706, 6705, 6713, 6714, 6712, 6711, 6697, 6688, 6696, 6691, 7579, 6695, 6694, 6689, 6693, 6690 };
  39. public int eventId;
  40. protected EventConfig config = EventConfig.getInstance();
  41. public FastMap<Integer, EventTeam> teams;
  42. protected ThreadPoolManager tpm;
  43. protected ResurrectorTask resurrectorTask;
  44. public Clock clock;
  45. protected String scorebartext;
  46. protected int time;
  47. public int winnerTeam;
  48. protected int loserTeam;
  49. private FastMap<L2PcInstance, ArrayList<L2Skill>> summons;
  50. public FastMap<L2PcInstance, int[]> players;
  51.  
  52. protected class Clock
  53. implements Runnable
  54. {
  55. private int totalTime;
  56.  
  57. protected Clock() {}
  58.  
  59. public String getTime()
  60. {
  61. String mins = "" + Event.this.time / 60;
  62. String secs = "" + Event.this.time % 60;
  63. return mins + ":" + secs + "";
  64. }
  65.  
  66. public void run()
  67. {
  68. Event.this.clockTick();
  69. if (Event.this.time < this.totalTime)
  70. {
  71. Event.this.scorebartext = Event.this.getScorebar();
  72. if (Event.this.scorebartext != "") {
  73. for (L2PcInstance player : Event.this.getPlayerList()) {
  74. player.sendPacket(new ExShowScreenMessage(1, -1, 3, false, 1, 0, 0, false, 2000, false, Event.this.scorebartext));
  75. }
  76. }
  77. }
  78. if (Event.this.time <= 0)
  79. {
  80. Event.this.schedule(1);
  81. }
  82. else
  83. {
  84. Event.this.time -= 1;
  85. Event.this.tpm.scheduleGeneral(Event.this.clock, 1000L);
  86. }
  87. }
  88.  
  89. public void setTime(int t)
  90. {
  91. Event.this.time = t;
  92. }
  93.  
  94. public void startClock(int mt)
  95. {
  96. this.totalTime = (mt - 2);
  97. Event.this.time = mt;
  98. Event.this.tpm.scheduleGeneral(Event.this.clock, 1L);
  99. }
  100. }
  101.  
  102. protected class ResurrectorTask
  103. implements Runnable
  104. {
  105. private L2PcInstance player;
  106.  
  107. public ResurrectorTask(L2PcInstance p)
  108. {
  109. this.player = p;
  110. ThreadPoolManager.getInstance().scheduleGeneral(this, 7000L);
  111. }
  112.  
  113. public void run()
  114. {
  115. if (EventManager.getInstance().isRegistered(this.player))
  116. {
  117. this.player.doRevive();
  118.  
  119. this.player.setCurrentCp(this.player.getMaxCp());
  120. this.player.setCurrentHp(this.player.getMaxHp());
  121. this.player.setCurrentMp(this.player.getMaxMp());
  122. Event.this.teleportToTeamPos(this.player);
  123. }
  124. }
  125. }
  126.  
  127. public Event()
  128. {
  129. this.teams = new FastMap();
  130. this.clock = new Clock();
  131. this.tpm = ThreadPoolManager.getInstance();
  132. this.players = new FastMap();
  133. this.summons = new FastMap();
  134. this.time = 0;
  135. }
  136.  
  137. protected void clockTick() {}
  138.  
  139. public void dropBomb(L2PcInstance player) {}
  140.  
  141. public void onHit(L2PcInstance actor, L2PcInstance target) {}
  142.  
  143. public void useCapture(L2PcInstance player, L2Npc base) {}
  144.  
  145. protected void addToResurrector(L2PcInstance player)
  146. {
  147. new ResurrectorTask(player);
  148. }
  149.  
  150. protected void announce(Set<L2PcInstance> list, String text)
  151. {
  152. for (L2PcInstance player : list) {
  153. player.sendPacket(new CreatureSay(0, 18, "", "[Event] " + text));
  154. }
  155. }
  156.  
  157. public boolean canAttack(L2PcInstance player, L2Object target)
  158. {
  159. return true;
  160. }
  161.  
  162. public int countOfPositiveStatus()
  163. {
  164. int count = 0;
  165. for (L2PcInstance player : getPlayerList()) {
  166. if (getStatus(player) >= 0) {
  167. count++;
  168. }
  169. }
  170. return count;
  171. }
  172.  
  173. protected void createNewTeam(int id, String name, int[] color, int[] startPos)
  174. {
  175. this.teams.put(Integer.valueOf(id), new EventTeam(id, name, color, startPos));
  176. }
  177.  
  178. public void createPartyOfTeam(int teamId)
  179. {
  180. int count = 0;
  181. L2Party party = null;
  182.  
  183. FastList<L2PcInstance> list = new FastList();
  184. for (L2PcInstance p : this.players.keySet()) {
  185. if (getTeam(p) == teamId) {
  186. list.add(p);
  187. }
  188. }
  189. for (L2PcInstance player : list)
  190. {
  191. if ((count % 9 == 0) && (list.size() - count != 1)) {
  192. party = new L2Party(player, 1);
  193. }
  194. if (count % 9 < 9) {
  195. player.joinParty(party);
  196. }
  197. count++;
  198. }
  199. }
  200.  
  201. public void divideIntoTeams(int number)
  202. {
  203. int i = 0;
  204. while (EventManager.getInstance().players.size() != 0)
  205. {
  206. i++;
  207. L2PcInstance player = (L2PcInstance)EventManager.getInstance().players.get(Rnd.get(EventManager.getInstance().players.size()));
  208. if ((player.getClassId().getId() != 16) && (player.getClassId().getId() != 97))
  209. {
  210. this.players.put(player, new int[] { i, 0, 0 });
  211.  
  212. EventManager.getInstance().players.remove(player);
  213. if (i == number) {
  214. i = 0;
  215. }
  216. }
  217. }
  218. i = getPlayersOfTeam(1).size() > getPlayersOfTeam(2).size() ? 1 : 0;
  219. while (EventManager.getInstance().players.size() != 0)
  220. {
  221. i++;
  222. L2PcInstance player = (L2PcInstance)EventManager.getInstance().players.get(Rnd.get(EventManager.getInstance().players.size()));
  223.  
  224. this.players.put(player, new int[] { i, 0, 0 });
  225.  
  226. EventManager.getInstance().players.remove(player);
  227. if (i == number) {
  228. i = 0;
  229. }
  230. }
  231. }
  232.  
  233. public void forceSitAll()
  234. {
  235. for (L2PcInstance player : this.players.keySet())
  236. {
  237. player.abortAttack();
  238. player.abortCast();
  239. player.setIsParalyzed(true);
  240. player.setIsInvul(true);
  241. player.startAbnormalEffect(AbnormalEffect.HOLD_2);
  242. }
  243. }
  244.  
  245. public void forceStandAll()
  246. {
  247. for (L2PcInstance player : this.players.keySet())
  248. {
  249. player.stopAbnormalEffect(AbnormalEffect.HOLD_2);
  250. player.setIsInvul(false);
  251. player.setIsParalyzed(false);
  252. }
  253. }
  254.  
  255. public void InvisAll()
  256. {
  257. for (L2PcInstance player : this.players.keySet())
  258. {
  259. player.abortAttack();
  260. player.abortCast();
  261. player.getAppearance().setInvisible();
  262. }
  263. }
  264.  
  265. public void unInvisAll()
  266. {
  267. for (L2PcInstance player : this.players.keySet())
  268. {
  269. player.getAppearance().setVisible();
  270. player.broadcastCharInfo();
  271. }
  272. }
  273.  
  274. public boolean getBoolean(String propName)
  275. {
  276. return this.config.getBoolean(this.eventId, propName);
  277. }
  278.  
  279. public int[] getColor(String owner)
  280. {
  281. return this.config.getColor(this.eventId, owner);
  282. }
  283.  
  284. public int getInt(String propName)
  285. {
  286. return this.config.getInt(this.eventId, propName);
  287. }
  288.  
  289. public Set<L2PcInstance> getPlayerList()
  290. {
  291. return this.players.keySet();
  292. }
  293.  
  294. public FastList<L2PcInstance> getPlayersOfTeam(int team)
  295. {
  296. FastList<L2PcInstance> list = new FastList();
  297. for (L2PcInstance player : getPlayerList()) {
  298. if (getTeam(player) == team) {
  299. list.add(player);
  300. }
  301. }
  302. return list;
  303. }
  304.  
  305. protected EventTeam getPlayersTeam(L2PcInstance player)
  306. {
  307. return (EventTeam)this.teams.get(Integer.valueOf(((int[])this.players.get(player))[0]));
  308. }
  309.  
  310. public FastList<L2PcInstance> getPlayersWithStatus(int status)
  311. {
  312. FastList<L2PcInstance> list = new FastList();
  313. for (L2PcInstance player : getPlayerList()) {
  314. if (getStatus(player) == status) {
  315. list.add(player);
  316. }
  317. }
  318. return list;
  319. }
  320.  
  321. public L2PcInstance getPlayerWithMaxScore()
  322. {
  323. L2PcInstance max = (L2PcInstance)this.players.head().getNext().getKey();
  324. for (L2PcInstance player : this.players.keySet()) {
  325. if (((int[])this.players.get(player))[2] > ((int[])this.players.get(max))[2]) {
  326. max = player;
  327. }
  328. }
  329. return max;
  330. }
  331.  
  332. public void unequip()
  333. {
  334. for (L2PcInstance player : this.players.keySet())
  335. {
  336. player.getInventory().unEquipItemInSlot(7);
  337. player.getInventory().unEquipItemInSlot(8);
  338. }
  339. }
  340.  
  341. public int[] getPosition(String owner, int num)
  342. {
  343. return this.config.getPosition(this.eventId, owner, num);
  344. }
  345.  
  346. public L2PcInstance getRandomPlayer()
  347. {
  348. FastList<L2PcInstance> temp = new FastList();
  349. for (L2PcInstance player : this.players.keySet()) {
  350. temp.add(player);
  351. }
  352. return (L2PcInstance)temp.get(Rnd.get(temp.size()));
  353. }
  354.  
  355. protected L2PcInstance getRandomPlayerFromTeam(int team)
  356. {
  357. FastList<L2PcInstance> temp = new FastList();
  358. for (L2PcInstance player : this.players.keySet()) {
  359. if (getTeam(player) == team) {
  360. temp.add(player);
  361. }
  362. }
  363. return (L2PcInstance)temp.get(Rnd.get(temp.size()));
  364. }
  365.  
  366. protected FastList<L2PcInstance> getPlayersFromTeamWithStatus(int team, int status)
  367. {
  368. FastList<L2PcInstance> players = getPlayersWithStatus(status);
  369. FastList<L2PcInstance> temp = new FastList();
  370. for (L2PcInstance player : players) {
  371. if (getTeam(player) == team) {
  372. temp.add(player);
  373. }
  374. }
  375. return temp;
  376. }
  377.  
  378. protected L2PcInstance getRandomPlayerFromTeamWithStatus(int team, int status)
  379. {
  380. FastList<L2PcInstance> temp = getPlayersFromTeamWithStatus(team, status);
  381. return (L2PcInstance)temp.get(Rnd.get(temp.size()));
  382. }
  383.  
  384. public FastList<Integer> getRestriction(String type)
  385. {
  386. return this.config.getRestriction(this.eventId, type);
  387. }
  388.  
  389. public int getScore(L2PcInstance player)
  390. {
  391. return ((int[])this.players.get(player))[2];
  392. }
  393.  
  394. protected int getStatus(L2PcInstance player)
  395. {
  396. return ((int[])this.players.get(player))[1];
  397. }
  398.  
  399. public String getString(String propName)
  400. {
  401. return this.config.getString(this.eventId, propName);
  402. }
  403.  
  404. public int getTeam(L2PcInstance player)
  405. {
  406. return ((int[])this.players.get(player))[0];
  407. }
  408.  
  409. public int getWinnerTeam()
  410. {
  411. FastList<EventTeam> t = new FastList();
  412. for (EventTeam team : this.teams.values()) {
  413. if (t.size() == 0)
  414. {
  415. t.add(team);
  416. }
  417. else if (team.getScore() > ((EventTeam)t.getFirst()).getScore())
  418. {
  419. t.clear();
  420. t.add(team);
  421. }
  422. else if (team.getScore() == ((EventTeam)t.getFirst()).getScore())
  423. {
  424. t.add(team);
  425. }
  426. }
  427. if (t.size() > 1) {
  428. return 0;
  429. }
  430. return ((EventTeam)t.getFirst()).getId();
  431. }
  432.  
  433. public void giveReward(FastList<L2PcInstance> players, int id, int ammount)
  434. {
  435. for (L2PcInstance player : players) {
  436. if (player != null)
  437. {
  438. player.addItem("Event", id, ammount, player, true);
  439. ((int[])EventStats.getInstance().tempTable.get(Integer.valueOf(player.getObjectId())))[0] = 1;
  440. }
  441. }
  442. }
  443.  
  444. public void giveReward(L2PcInstance player, int id, int ammount)
  445. {
  446. ((int[])EventStats.getInstance().tempTable.get(Integer.valueOf(player.getObjectId())))[0] = 1;
  447. player.addItem("Event", id, ammount, player, true);
  448. }
  449.  
  450. public void increasePlayersScore(L2PcInstance player)
  451. {
  452. int old = getScore(player);
  453. setScore(player, old + 1);
  454. ((int[])EventStats.getInstance().tempTable.get(Integer.valueOf(player.getObjectId())))[3] += 1;
  455. }
  456.  
  457. protected void msgToAll(String text)
  458. {
  459. for (L2PcInstance player : this.players.keySet()) {
  460. player.sendMessage(text);
  461. }
  462. }
  463.  
  464. public void onDie(L2PcInstance victim, L2Character killer)
  465. {
  466. ((int[])EventStats.getInstance().tempTable.get(Integer.valueOf(victim.getObjectId())))[2] += 1;
  467. }
  468.  
  469. public void onKill(L2Character victim, L2PcInstance killer)
  470. {
  471. ((int[])EventStats.getInstance().tempTable.get(Integer.valueOf(killer.getObjectId())))[1] += 1;
  472. }
  473.  
  474. public void onLogout(L2PcInstance player)
  475. {
  476. if (this.players.containsKey(player)) {
  477. removePlayer(player);
  478. }
  479. player.setXYZ(((int[])EventManager.getInstance().positions.get(player))[0], ((int[])EventManager.getInstance().positions.get(player))[1], ((int[])EventManager.getInstance().positions.get(player))[2]);
  480. player.setTitle((String)EventManager.getInstance().titles.get(player));
  481. if (this.teams.size() == 1)
  482. {
  483. if (getPlayerList().size() == 1) {
  484. endEvent();
  485. }
  486. }
  487. else
  488. {
  489. int t = ((int[])this.players.head().getNext().getValue())[0];
  490. for (L2PcInstance p : getPlayerList()) {
  491. if (getTeam(p) != t) {
  492. return;
  493. }
  494. }
  495. endEvent();
  496. }
  497. }
  498.  
  499. public boolean onSay(int type, L2PcInstance player, String text)
  500. {
  501. return true;
  502. }
  503.  
  504. public boolean onTalkNpc(L2Npc npc, L2PcInstance player)
  505. {
  506. return false;
  507. }
  508.  
  509. public boolean onUseItem(L2PcInstance player, ItemInstance item)
  510. {
  511. if ((EventManager.getInstance().getRestriction("item").contains(Integer.valueOf(item.getItemId()))) || (getRestriction("item").contains(Integer.valueOf(item.getItemId())))) {
  512. return false;
  513. }
  514. if ((item.getItemType() == EtcItemType.POTION) && (!getBoolean("allowPotions"))) {
  515. return false;
  516. }
  517. if (item.getItemType() == EtcItemType.SCROLL) {
  518. return false;
  519. }
  520. if (item.getItemType() == EtcItemType.PET_COLLAR) {
  521. return false;
  522. }
  523. return true;
  524. }
  525.  
  526. public boolean onUseMagic(L2Skill skill)
  527. {
  528. if ((EventManager.getInstance().getRestriction("skill").contains(Integer.valueOf(skill.getId()))) || (getRestriction("skill").contains(Integer.valueOf(skill.getId())))) {
  529. return false;
  530. }
  531. if ((skill.getSkillType() == L2SkillType.RESURRECT) && (!(this instanceof RaidBoss))) {
  532. return false;
  533. }
  534. if (skill.getSkillType() == L2SkillType.SUMMON_FRIEND) {
  535. return false;
  536. }
  537. if (skill.getSkillType() == L2SkillType.RECALL) {
  538. return false;
  539. }
  540. if (skill.getSkillType() == L2SkillType.FAKE_DEATH) {
  541. return false;
  542. }
  543. return true;
  544. }
  545.  
  546. protected void prepare(L2PcInstance player)
  547. {
  548. if (player.isDead()) {
  549. player.doRevive();
  550. }
  551. if (player.isCastingNow()) {
  552. player.abortCast();
  553. }
  554. player.getAppearance().setVisible();
  555. if (player.hasPet()) {
  556. player.getPet().unSummon(player);
  557. }
  558. if (player.isMounted()) {
  559. player.dismount();
  560. }
  561. if (getBoolean("removeBuffs"))
  562. {
  563. player.stopAllEffects();
  564. if (player.hasServitor()) {
  565. player.getPet().unSummon(player);
  566. }
  567. }
  568. else
  569. {
  570. L2Effect[] arrayOfL2Effect1 = player.getAllEffects();int i = arrayOfL2Effect1.length;
  571. L2Effect e;
  572. for (L2Effect localL2Effect1 = 0; localL2Effect1 < i; localL2Effect1++)
  573. {
  574. e = arrayOfL2Effect1[localL2Effect1];
  575. if (e.getStackType().equals("hero_buff")) {
  576. e.exit();
  577. }
  578. }
  579. if (player.hasServitor())
  580. {
  581. Object summonBuffs = new ArrayList();
  582.  
  583. L2Effect[] arrayOfL2Effect2 = player.getPet().getAllEffects();localL2Effect1 = arrayOfL2Effect2.length;
  584. for (e = 0; e < localL2Effect1; e++)
  585. {
  586. L2Effect e = arrayOfL2Effect2[e];
  587. if (e.getStackType().equals("hero_buff")) {
  588. e.exit();
  589. } else {
  590. ((ArrayList)summonBuffs).add(e.getSkill());
  591. }
  592. }
  593. this.summons.put(player, summonBuffs);
  594. }
  595. }
  596. ItemInstance wpn = player.getActiveWeaponInstance();
  597. if ((wpn != null) && (wpn.isHeroItem())) {
  598. player.useEquippableItem(wpn, false);
  599. }
  600. if (player.getParty() != null)
  601. {
  602. L2Party party = player.getParty();
  603. party.removePartyMember(player, L2Party.MessageType.Left);
  604. }
  605. int[] nameColor = getPlayersTeam(player).getTeamColor();
  606. player.getAppearance().setNameColor(nameColor[0], nameColor[1], nameColor[2]);
  607. player.setTitle("<- 0 ->");
  608. if (EventManager.getInstance().getBoolean("eventBufferEnabled")) {
  609. EventBuffer.getInstance().buffPlayer(player);
  610. }
  611. player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp());
  612. player.setCurrentCp(player.getMaxCp());
  613.  
  614. player.broadcastUserInfo();
  615. }
  616.  
  617. public ArrayList<L2Skill> getSummonBuffs(L2PcInstance player)
  618. {
  619. return (ArrayList)this.summons.get(player);
  620. }
  621.  
  622. public void preparePlayers()
  623. {
  624. for (L2PcInstance player : this.players.keySet()) {
  625. prepare(player);
  626. }
  627. }
  628.  
  629. protected void removePlayer(L2PcInstance player)
  630. {
  631. this.players.remove(player);
  632. }
  633.  
  634. public void reset()
  635. {
  636. this.players.clear();
  637. this.summons.clear();
  638. this.tpm.purge();
  639. this.winnerTeam = 0;
  640. for (EventTeam team : this.teams.values()) {
  641. team.setScore(0);
  642. }
  643. }
  644.  
  645. protected void selectPlayers(int teamId, int playerCount)
  646. {
  647. for (int i = 0; i < playerCount; i++)
  648. {
  649. L2PcInstance player = (L2PcInstance)EventManager.getInstance().players.get(Rnd.get(EventManager.getInstance().players.size()));
  650. this.players.put(player, new int[] { teamId, 0, 0 });
  651.  
  652. EventManager.getInstance().players.remove(player);
  653. }
  654. }
  655.  
  656. protected void setScore(L2PcInstance player, int score)
  657. {
  658. ((int[])this.players.get(player))[2] = score;
  659. player.setTitle("<- " + score + " ->");
  660. player.broadcastUserInfo();
  661. }
  662.  
  663. public void setStatus(L2PcInstance player, int status)
  664. {
  665. if (this.players.containsKey(player)) {
  666. ((int[])this.players.get(player))[1] = status;
  667. }
  668. }
  669.  
  670. protected void setTeam(L2PcInstance player, int team)
  671. {
  672. ((int[])this.players.get(player))[0] = team;
  673. }
  674.  
  675. public L2Spawn spawnNPC(int xPos, int yPos, int zPos, int npcId)
  676. {
  677. NpcTemplate template = NpcTable.getInstance().getTemplate(npcId);
  678. try
  679. {
  680. L2Spawn spawn = new L2Spawn(template);
  681. spawn.setLocx(xPos);
  682. spawn.setLocy(yPos);
  683. spawn.setLocz(zPos);
  684. spawn.setHeading(0);
  685. spawn.setRespawnDelay(1);
  686. SpawnTable.getInstance().addNewSpawn(spawn, false);
  687. spawn.init();
  688. return spawn;
  689. }
  690. catch (Exception e) {}
  691. return null;
  692. }
  693.  
  694. protected void teleportPlayer(L2PcInstance player, int[] coordinates)
  695. {
  696. player.teleToLocation(coordinates[0] + (Rnd.get(coordinates[3] * 2) - coordinates[3]), coordinates[1] + (Rnd.get(coordinates[3] * 2) - coordinates[3]), coordinates[2], 0);
  697. }
  698.  
  699. public void teleportToTeamPos()
  700. {
  701. for (L2PcInstance player : this.players.keySet()) {
  702. teleportToTeamPos(player);
  703. }
  704. }
  705.  
  706. protected void teleportToTeamPos(L2PcInstance player)
  707. {
  708. int[] pos = getPosition(((EventTeam)this.teams.get(Integer.valueOf(getTeam(player)))).getName(), 0);
  709. teleportPlayer(player, pos);
  710. }
  711.  
  712. protected void unspawnNPC(L2Spawn npcSpawn)
  713. {
  714. if (npcSpawn == null) {
  715. return;
  716. }
  717. npcSpawn.getLastSpawn().deleteMe();
  718. npcSpawn.stopRespawn();
  719. SpawnTable.getInstance().deleteSpawn(npcSpawn, true);
  720. }
  721.  
  722. public int numberOfTeams()
  723. {
  724. return this.teams.size();
  725. }
  726.  
  727. public void sendMsg()
  728. {
  729. for (L2PcInstance player : getPlayerList()) {
  730. player.sendPacket(new ExShowScreenMessage(1, -1, 2, false, 0, 0, 0, false, 3000, false, getStartingMsg()));
  731. }
  732. }
  733.  
  734. public abstract void endEvent();
  735.  
  736. protected abstract String getStartingMsg();
  737.  
  738. protected abstract String getScorebar();
  739.  
  740. public abstract void start();
  741.  
  742. public abstract void showHtml(L2PcInstance paramL2PcInstance, int paramInt);
  743.  
  744. protected abstract void schedule(int paramInt);
  745. }
Advertisement
Add Comment
Please, Sign In to add comment