Advertisement
Guest User

Untitled

a guest
Apr 28th, 2022
1,346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 21.08 KB | None | 0 0
  1. /*
  2.  * Copyright (C) 2004-2013 L2J Server
  3.  *
  4.  * This file is part of L2J Server.
  5.  *
  6.  * L2J Server is free software: you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation, either version 3 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * L2J Server is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14.  * General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18.  */
  19. package l2jorion.game.model.actor.instance;
  20.  
  21. import java.util.List;
  22.  
  23. import l2jorion.Config;
  24. import l2jorion.game.ai.CtrlIntention;
  25. import l2jorion.game.model.L2Party;
  26. import l2jorion.game.model.L2World;
  27. import l2jorion.game.model.base.ClassId;
  28. import l2jorion.game.model.entity.event.tournament.Arena2x2;
  29. import l2jorion.game.model.entity.event.tournament.Arena4x4;
  30. import l2jorion.game.model.entity.event.tournament.Arena9x9;
  31. import l2jorion.game.model.olympiad.OlympiadManager;
  32. import l2jorion.game.network.serverpackets.ActionFailed;
  33. import l2jorion.game.network.serverpackets.MoveToPawn;
  34. import l2jorion.game.network.serverpackets.MyTargetSelected;
  35. import l2jorion.game.network.serverpackets.NpcHtmlMessage;
  36. import l2jorion.game.network.serverpackets.SocialAction;
  37. import l2jorion.game.network.serverpackets.ValidateLocation;
  38. import l2jorion.game.templates.L2NpcTemplate;
  39. import l2jorion.util.random.Rnd;
  40.  
  41. public class L2TournamentInstance extends L2NpcInstance
  42. {
  43.     public L2TournamentInstance(int objectId, L2NpcTemplate template)
  44.     {
  45.         super(objectId, template);
  46.     }
  47.    
  48.     @Override
  49.     public void onAction(L2PcInstance player)
  50.     {
  51.         if (this != player.getTarget())
  52.         {
  53.             player.setTarget(this);
  54.             player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()));
  55.             player.sendPacket(new ValidateLocation(this));
  56.         }
  57.         else if (isInsideRadius(player, 150, false, false))
  58.         {
  59.             SocialAction sa = new SocialAction(getObjectId(), (int) Rnd.get());
  60.             broadcastPacket(sa);
  61.             player.sendPacket(new MoveToPawn(player, this, 150));
  62.             showMessageWindow(player);
  63.             player.sendPacket(ActionFailed.STATIC_PACKET);
  64.         }
  65.         else
  66.         {
  67.             player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
  68.             player.sendPacket(ActionFailed.STATIC_PACKET);
  69.         }
  70.     }
  71.    
  72.     @Override
  73.     public String getHtmlPath(L2PcInstance player, int npcId, int val)
  74.     {
  75.         String filename = "";
  76.        
  77.         if (val == 0)
  78.         {
  79.             filename = "" + npcId;
  80.         }
  81.         else
  82.         {
  83.             filename = npcId + "-" + val;
  84.         }
  85.        
  86.         return "data/html/mods/tournament/" + filename + ".htm";
  87.     }
  88.    
  89.     @Override
  90.     public void onBypassFeedback(L2PcInstance player, String command)
  91.     {
  92.         if (player._active_boxes > 1 && !Config.ALLOW_DUALBOX_EVENT)
  93.         {
  94.             final List<String> players_in_boxes = player.active_boxes_characters;
  95.            
  96.             if (players_in_boxes != null && players_in_boxes.size() > 1)
  97.             {
  98.                 for (final String character_name : players_in_boxes)
  99.                 {
  100.                     final L2PcInstance plyr = L2World.getInstance().getPlayer(character_name);
  101.                    
  102.                     if (plyr != null && plyr.isInArenaEvent())
  103.                     {
  104.                         player.sendMessage("You already participated in event with another character!");
  105.                         return;
  106.                     }
  107.                 }
  108.             }
  109.         }
  110.        
  111.         if (command.startsWith("2x2_register"))
  112.         {
  113.             if (!player.isInParty())
  114.             {
  115.                 player.sendMessage("You dont have a party.");
  116.                 return;
  117.             }
  118.            
  119.             if (!player.getParty().isLeader(player))
  120.             {
  121.                 player.sendMessage("You are not the party leader!");
  122.                 return;
  123.             }
  124.            
  125.             L2PcInstance assist = player.getParty().getPartyMembers().get(1);
  126.            
  127.             // checks
  128.             if (player.isCursedWeaponEquipped() || assist.isCursedWeaponEquipped() || player.inObserverMode() || assist.inObserverMode() || player.isInStoreMode() || assist.isInStoreMode() || !player.isNoble() || !assist.isNoble() || player.isAio() || assist.isAio() || player.getKarma() > 0
  129.                 || assist.getKarma() > 0)
  130.             {
  131.                 player.sendMessage("You or your member does not have the necessary requirements.");
  132.                 assist.sendMessage("You or your member does not have the necessary requirements.");
  133.                 return;
  134.             }
  135.            
  136.             // oly checks
  137.             if (player.isInOlympiadMode() || assist.isInOlympiadMode() || OlympiadManager.getInstance().isRegistered(player) || OlympiadManager.getInstance().isRegistered(assist))
  138.             {
  139.                 player.sendMessage("You or your member is registered in the Olympiad.");
  140.                 assist.sendMessage("You or your member is registered in the Olympiad.");
  141.                 return;
  142.             }
  143.            
  144.             // event checks
  145.             if (player.isInFunEvent() || assist.isInFunEvent())
  146.             {
  147.                 player.sendMessage("You or your member is registered in another event.");
  148.                 assist.sendMessage("You or your member is registered in another event.");
  149.                 return;
  150.             }
  151.            
  152.             if (assist.getClassId() == ClassId.shillenElder || assist.getClassId() == ClassId.shillienSaint || assist.getClassId() == ClassId.bishop || assist.getClassId() == ClassId.cardinal || assist.getClassId() == ClassId.elder || assist.getClassId() == ClassId.evaSaint)
  153.             {
  154.                 assist.sendMessage("You or your member class is not allowed in tournament.");
  155.                 player.sendMessage("You or your member class is not allowed in tournament.");
  156.                 return;
  157.             }
  158.            
  159.             if (player.getClassId() == ClassId.shillenElder || player.getClassId() == ClassId.shillienSaint || player.getClassId() == ClassId.bishop || player.getClassId() == ClassId.cardinal || player.getClassId() == ClassId.elder || player.getClassId() == ClassId.evaSaint)
  160.             {
  161.                 assist.sendMessage("You or your member class is not allowed in tournament.");
  162.                 player.sendMessage("You or your member class is not allowed in tournament.");
  163.                 return;
  164.             }
  165.            
  166.             if (player.getClassId().getId() == assist.getClassId().getId())
  167.             {
  168.                 player.sendMessage("Same class partner are not allowed.");
  169.                 assist.sendMessage("Same class partner are not allowed.");
  170.                 return;
  171.             }
  172.            
  173.             /*
  174.              * if (player.getClient() != null && assist.getClient() != null) { String ip1 = player.getClient().getConnection().getInetAddress().getHostAddress(); String ip2 = assist.getClient().getConnection().getInetAddress().getHostAddress(); if (ip1.equals(ip2)) {
  175.              * player.sendMessage("Dual box is not allowed on tournament."); assist.sendMessage("Dual box is not allowed on tournament."); return; } }
  176.              */
  177.            
  178.             if (Arena2x2.getInstance().register(player, assist))
  179.             {
  180.                 player.sendMessage(player.getName() + " Bring up your sword! Your party is registered!");
  181.                 assist.sendMessage(assist.getName() + " Bring up your sword! Your party is registered!");
  182.                
  183.                 player.setArenaProtection(true);
  184.                 assist.setArenaProtection(true);
  185.             }
  186.             else
  187.             {
  188.                 return;
  189.             }
  190.         }
  191.         else if (command.startsWith("4x4_register"))
  192.         {
  193.             L2Party party = player.getParty();
  194.            
  195.             if (!player.isInParty())
  196.             {
  197.                 player.sendMessage("You dont have a party.");
  198.                 return;
  199.             }
  200.            
  201.             if (!player.getParty().isLeader(player))
  202.             {
  203.                 player.sendMessage("You are not the party leader!");
  204.                 return;
  205.             }
  206.            
  207.             if (party.getMemberCount() < 3)
  208.             {
  209.                 player.sendMessage("You need party with at 3 members to register!");
  210.                 return;
  211.             }
  212.            
  213.             // 4 Player + 1 Leader
  214.             L2PcInstance assist = player.getParty().getPartyMembers().get(1);
  215.             L2PcInstance assist2 = player.getParty().getPartyMembers().get(2);
  216.             L2PcInstance assist3 = player.getParty().getPartyMembers().get(3);
  217.            
  218.             // checks
  219.             if (player.isCursedWeaponEquipped() || assist.isCursedWeaponEquipped() || assist2.isCursedWeaponEquipped() || assist3.isCursedWeaponEquipped() || player.inObserverMode() || assist.inObserverMode() || assist2.inObserverMode() || assist3.inObserverMode() || player.isInStoreMode()
  220.                 || assist.isInStoreMode() || assist2.isInStoreMode() || assist3.isInStoreMode() || !player.isNoble() || !assist.isNoble() || !assist2.isNoble() || !assist3.isNoble() || player.isAio() || assist.isAio() || assist2.isAio() || assist3.isAio() || player.getKarma() > 0
  221.                 || assist.getKarma() > 0 || assist2.getKarma() > 0 || assist3.getKarma() > 0)
  222.             {
  223.                 player.sendMessage("You or your member does not have the necessary requirements.");
  224.                 assist.sendMessage("You or your member does not have the necessary requirements.");
  225.                 assist2.sendMessage("You or your member does not have the necessary requirements.");
  226.                 assist3.sendMessage("You or your member does not have the necessary requirements.");
  227.                 return;
  228.             }
  229.            
  230.             // oly checks
  231.             if (player.isInOlympiadMode() || assist.isInOlympiadMode() || OlympiadManager.getInstance().isRegistered(player) || OlympiadManager.getInstance().isRegistered(assist) || assist2.isInOlympiadMode() || assist3.isInOlympiadMode() || OlympiadManager.getInstance().isRegistered(assist2)
  232.                 || OlympiadManager.getInstance().isRegistered(assist3))
  233.             {
  234.                 player.sendMessage("You or your member is registered in the Olympiad.");
  235.                 assist.sendMessage("You or your member is registered in the Olympiad.");
  236.                 assist2.sendMessage("You or your member is registered in the Olympiad.");
  237.                 assist3.sendMessage("You or your member is registered in the Olympiad.");
  238.                 return;
  239.             }
  240.            
  241.             // event checks
  242.             if (player.isInFunEvent() || assist.isInFunEvent() || assist2.isInFunEvent() || assist3.isInFunEvent())
  243.             {
  244.                 player.sendMessage("You or your member is registered in another event.");
  245.                 assist.sendMessage("You or your member is registered in another event.");
  246.                 assist2.sendMessage("You or your member is registered in another event.");
  247.                 assist3.sendMessage("You or your member is registered in another event.");
  248.                 return;
  249.             }
  250.            
  251.             // dual box checks
  252.             /*
  253.              * if (player.getClient() != null && assist.getClient() != null && assist2.getClient() != null && assist3.getClient() != null) { String ip1 = player.getClient().getConnection().getInetAddress().getHostAddress(); String ip2 =
  254.              * assist.getClient().getConnection().getInetAddress().getHostAddress(); String ip3 = assist2.getClient().getConnection().getInetAddress().getHostAddress(); String ip4 = assist3.getClient().getConnection().getInetAddress().getHostAddress(); if (ip1.equals(ip2) || ip1.equals(ip3) ||
  255.              * ip1.equals(ip4) || ip2.equals(ip1) || ip2.equals(ip3) || ip2.equals(ip4)) { player.sendMessage("Dual box is not allowed on tournament."); assist.sendMessage("Dual box is not allowed on tournament."); assist2.sendMessage("Dual box is not allowed on tournament.");
  256.              * assist3.sendMessage("Dual box is not allowed on tournament."); return; } }
  257.              */
  258.            
  259.             // class
  260.             if (player.getClassId().getId() == assist.getClassId().getId() || player.getClassId().getId() == assist2.getClassId().getId() || player.getClassId().getId() == assist3.getClassId().getId() || assist.getClassId().getId() == assist2.getClassId().getId()
  261.                 || assist.getClassId().getId() == assist3.getClassId().getId() || assist2.getClassId().getId() == assist.getClassId().getId() || assist2.getClassId().getId() == assist3.getClassId().getId())
  262.             {
  263.                 player.sendMessage("Same class partner are not allowed.");
  264.                 assist.sendMessage("Same class partner are not allowed.");
  265.                 assist2.sendMessage("Same class partner are not allowed.");
  266.                 assist3.sendMessage("Same class partner are not allowed.");
  267.                 return;
  268.             }
  269.            
  270.             // Register party
  271.             if (Arena4x4.getInstance().register(player, assist, assist2, assist3))
  272.             {
  273.                 player.sendMessage(player.getName() + " Bring up your sword! Your party is registered!");
  274.                 assist.sendMessage(assist.getName() + " Bring up your sword! Your party is registered!");
  275.                 assist2.sendMessage(assist2.getName() + " Bring up your sword! Your party is registered!");
  276.                 assist3.sendMessage(assist3.getName() + " Bring up your sword! Your party is registered!");
  277.             }
  278.             else
  279.             {
  280.                 return;
  281.             }
  282.         }
  283.         else if (command.startsWith("9x9_register"))
  284.         {
  285.             L2Party party = player.getParty();
  286.            
  287.             if (!player.isInParty())
  288.             {
  289.                 player.sendMessage("You dont have a party.");
  290.                 return;
  291.             }
  292.            
  293.             if (!player.getParty().isLeader(player))
  294.             {
  295.                 player.sendMessage("You are not the party leader!");
  296.                 return;
  297.             }
  298.            
  299.             if (party.getMemberCount() < 8)
  300.             {
  301.                 player.sendMessage("You need party with at 9 members to register!");
  302.                 return;
  303.             }
  304.            
  305.             // 8 Player + 1 Leader
  306.             L2PcInstance assist1 = player.getParty().getPartyMembers().get(1);
  307.             L2PcInstance assist2 = player.getParty().getPartyMembers().get(2);
  308.             L2PcInstance assist3 = player.getParty().getPartyMembers().get(3);
  309.             L2PcInstance assist4 = player.getParty().getPartyMembers().get(4);
  310.             L2PcInstance assist5 = player.getParty().getPartyMembers().get(5);
  311.             L2PcInstance assist6 = player.getParty().getPartyMembers().get(6);
  312.             L2PcInstance assist7 = player.getParty().getPartyMembers().get(7);
  313.             L2PcInstance assist8 = player.getParty().getPartyMembers().get(8);
  314.            
  315.             // checks
  316.             if (player.isCursedWeaponEquipped() || assist1.isCursedWeaponEquipped() || assist2.isCursedWeaponEquipped() || assist3.isCursedWeaponEquipped() || assist4.isCursedWeaponEquipped() || assist5.isCursedWeaponEquipped() || assist6.isCursedWeaponEquipped() || assist7.isCursedWeaponEquipped()
  317.                 || assist8.isCursedWeaponEquipped() || player.inObserverMode() || assist1.inObserverMode() || assist2.inObserverMode() || assist3.inObserverMode() || assist4.inObserverMode() || assist5.inObserverMode() || assist6.inObserverMode() || assist7.inObserverMode()
  318.                 || assist8.inObserverMode() || player.isInStoreMode() || assist1.isInStoreMode() || assist2.isInStoreMode() || assist3.isInStoreMode() || assist4.isInStoreMode() || assist5.isInStoreMode() || assist6.isInStoreMode() || assist7.isInStoreMode() || assist8.isInStoreMode()
  319.                 || !player.isNoble() || !assist1.isNoble() || !assist2.isNoble() || !assist3.isNoble() || !assist4.isNoble() || !assist5.isNoble() || !assist6.isNoble() || !assist7.isNoble() || !assist8.isNoble() || player.isAio() || assist1.isAio() || assist2.isAio() || assist3.isAio()
  320.                 || assist4.isAio() || assist5.isAio() || assist6.isAio() || assist7.isAio() || assist8.isAio() || player.getKarma() > 0 || assist1.getKarma() > 0 || assist2.getKarma() > 0 || assist3.getKarma() > 0 || assist4.getKarma() > 0 || assist5.getKarma() > 0 || assist6.getKarma() > 0
  321.                 || assist7.getKarma() > 0 || assist8.getKarma() > 0)
  322.             {
  323.                 player.sendMessage("You or your member does not have the necessary requirements.");
  324.                 assist1.sendMessage("You or your member does not have the necessary requirements.");
  325.                 assist2.sendMessage("You or your member does not have the necessary requirements.");
  326.                 assist3.sendMessage("You or your member does not have the necessary requirements.");
  327.                 assist4.sendMessage("You or your member does not have the necessary requirements.");
  328.                 assist5.sendMessage("You or your member does not have the necessary requirements.");
  329.                 assist6.sendMessage("You or your member does not have the necessary requirements.");
  330.                 assist7.sendMessage("You or your member does not have the necessary requirements.");
  331.                 assist8.sendMessage("You or your member does not have the necessary requirements.");
  332.                 return;
  333.             }
  334.            
  335.             // oly checks
  336.             if (player.isInOlympiadMode() || assist1.isInOlympiadMode() || assist2.isInOlympiadMode() || assist3.isInOlympiadMode() || assist4.isInOlympiadMode() || assist5.isInOlympiadMode() || assist6.isInOlympiadMode() || assist7.isInOlympiadMode() || assist8.isInOlympiadMode()
  337.                 || OlympiadManager.getInstance().isRegistered(player) || OlympiadManager.getInstance().isRegistered(assist1) || OlympiadManager.getInstance().isRegistered(assist2) || OlympiadManager.getInstance().isRegistered(assist3) || OlympiadManager.getInstance().isRegistered(assist4)
  338.                 || OlympiadManager.getInstance().isRegistered(assist5) || OlympiadManager.getInstance().isRegistered(assist6) || OlympiadManager.getInstance().isRegistered(assist7) || OlympiadManager.getInstance().isRegistered(assist8))
  339.             {
  340.                 player.sendMessage("You or your member is registered in the Olympiad.");
  341.                 assist1.sendMessage("You or your member is registered in the Olympiad.");
  342.                 assist2.sendMessage("You or your member is registered in the Olympiad.");
  343.                 assist3.sendMessage("You or your member is registered in the Olympiad.");
  344.                 assist4.sendMessage("You or your member is registered in the Olympiad.");
  345.                 assist5.sendMessage("You or your member is registered in the Olympiad.");
  346.                 assist6.sendMessage("You or your member is registered in the Olympiad.");
  347.                 assist7.sendMessage("You or your member is registered in the Olympiad.");
  348.                 assist8.sendMessage("You or your member is registered in the Olympiad.");
  349.                 return;
  350.             }
  351.            
  352.             // event checks
  353.             if (player.isInFunEvent() || assist1.isInFunEvent() || assist2.isInFunEvent() || assist3.isInFunEvent() || assist4.isInFunEvent() || assist5.isInFunEvent() || assist6.isInFunEvent() || assist7.isInFunEvent() || assist8.isInFunEvent())
  354.             {
  355.                 player.sendMessage("You or your member is registered in another event.");
  356.                 assist1.sendMessage("You or your member is registered in another event.");
  357.                 assist2.sendMessage("You or your member is registered in another event.");
  358.                 assist3.sendMessage("You or your member is registered in another event.");
  359.                 assist4.sendMessage("You or your member is registered in another event.");
  360.                 assist5.sendMessage("You or your member is registered in another event.");
  361.                 assist6.sendMessage("You or your member is registered in another event.");
  362.                 assist7.sendMessage("You or your member is registered in another event.");
  363.                 assist8.sendMessage("You or your member is registered in another event.");
  364.                 return;
  365.             }
  366.            
  367.             // dual box checks
  368.             /*
  369.              * if (player.getClient() != null && assist1.getClient() != null && assist2.getClient() != null && assist3.getClient() != null && assist4.getClient() != null && assist5.getClient() != null && assist6.getClient() != null && assist7.getClient() != null && assist8.getClient() != null) {
  370.              * String ip1 = player.getClient().getConnection().getInetAddress().getHostAddress(); String ip2 = assist1.getClient().getConnection().getInetAddress().getHostAddress(); String ip3 = assist2.getClient().getConnection().getInetAddress().getHostAddress(); String ip4 =
  371.              * assist3.getClient().getConnection().getInetAddress().getHostAddress(); String ip5 = assist4.getClient().getConnection().getInetAddress().getHostAddress(); String ip6 = assist5.getClient().getConnection().getInetAddress().getHostAddress(); String ip7 =
  372.              * assist6.getClient().getConnection().getInetAddress().getHostAddress(); String ip8 = assist7.getClient().getConnection().getInetAddress().getHostAddress(); String ip9 = assist8.getClient().getConnection().getInetAddress().getHostAddress(); if (ip1.equals(ip2) || ip1.equals(ip3) ||
  373.              * ip1.equals(ip4) || ip1.equals(ip5) || ip1.equals(ip6) || ip1.equals(ip7) || ip1.equals(ip8) || ip1.equals(ip9)) { player.sendMessage("Dual box is not allowed on tournament."); assist1.sendMessage("Dual box is not allowed on tournament.");
  374.              * assist2.sendMessage("Dual box is not allowed on tournament."); assist3.sendMessage("Dual box is not allowed on tournament."); assist4.sendMessage("Dual box is not allowed on tournament."); assist5.sendMessage("Dual box is not allowed on tournament.");
  375.              * assist6.sendMessage("Dual box is not allowed on tournament."); assist7.sendMessage("Dual box is not allowed on tournament."); assist8.sendMessage("Dual box is not allowed on tournament."); return; } }
  376.              */
  377.            
  378.             // Register party
  379.             if (Arena9x9.getInstance().register(player, assist1, assist2, assist3, assist4, assist5, assist6, assist7, assist8))
  380.             {
  381.                 player.sendMessage(player.getName() + " Bring up your sword! Your party is registered!");
  382.                 assist1.sendMessage(assist1.getName() + " Bring up your sword! Your party is registered!");
  383.                 assist2.sendMessage(assist2.getName() + " Bring up your sword! Your party is registered!");
  384.                 assist3.sendMessage(assist3.getName() + " Bring up your sword! Your party is registered!");
  385.                 assist4.sendMessage(assist4.getName() + " Bring up your sword! Your party is registered!");
  386.                 assist5.sendMessage(assist5.getName() + " Bring up your sword! Your party is registered!");
  387.                 assist6.sendMessage(assist6.getName() + " Bring up your sword! Your party is registered!");
  388.                 assist7.sendMessage(assist7.getName() + " Bring up your sword! Your party is registered!");
  389.                 assist8.sendMessage(assist8.getName() + " Bring up your sword! Your party is registered!");
  390.             }
  391.             else
  392.             {
  393.                 return;
  394.             }
  395.         }
  396.         else if (command.startsWith("remove"))
  397.         {
  398.             Arena2x2.getInstance().remove(player);
  399.         }
  400.         else
  401.         {
  402.             super.onBypassFeedback(player, command);
  403.         }
  404.     }
  405.    
  406.     private void showMessageWindow(L2PcInstance player)
  407.     {
  408.         String filename = "data/html/mods/tournament/" + getNpcId() + ".htm";
  409.        
  410.         filename = getHtmlPath(player, getNpcId(), 0);
  411.         NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  412.         html.setFile(filename);
  413.         html.replace("%objectId%", String.valueOf(getObjectId()));
  414.         html.replace("%npcname%", getName());
  415.         player.sendPacket(html);
  416.     }
  417. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement