Gladicek

L2j Event Love Your Gatekeeper

May 2nd, 2012
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.73 KB | None | 0 0
  1.                                                                     /*
  2.  * This program is free software: you can redistribute it and/or modify it under
  3.  * the terms of the GNU General Public License as published by the Free Software
  4.  * Foundation, either version 3 of the License, or (at your option) any later
  5.  * version.
  6.  *
  7.  * This program is distributed in the hope that it will be useful, but WITHOUT
  8.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9.  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10.  * details.
  11.  *
  12.  * You should have received a copy of the GNU General Public License along with
  13.  * this program. If not, see <http://www.gnu.org/licenses/>.
  14.  */
  15. package events.LoveYourGatekeeper;
  16.  
  17. import com.l2jserver.gameserver.datatables.SkillTable;
  18. import com.l2jserver.gameserver.model.actor.L2Npc;
  19. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  20. import com.l2jserver.gameserver.model.quest.Quest;
  21. import com.l2jserver.gameserver.model.quest.QuestState;
  22. import com.l2jserver.gameserver.model.quest.State;
  23. import com.l2jserver.gameserver.instancemanager.QuestManager;
  24. import com.l2jserver.gameserver.network.SystemMessageId;
  25. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  26.  
  27. /******************************************
  28.  * @author Gladicek                       *
  29.  * Retail Event 'Love Your Gatekeeper'    *
  30.  *****************************************/
  31.  
  32. public class LoveYourGatekeeper extends Quest
  33. {
  34.   // Volunteer
  35.   private static final int NpcId = 32477;
  36.   // Item
  37.   private static final int ItemId = 12814; // Shadow Item - Gatekeeper Transformation Stick
  38.  // Time
  39.  private static final int _hours = 24;
  40.  // Spawns for Npc
  41.    private static final int[][] _spawns =
  42.     {
  43.         {  82766,  149438, -3464, 33865 },
  44.         {  82286,   53291, -1488, 15250 },
  45.         { 147060,   25943, -2008, 18774 },
  46.         { 148096,  -55466, -2728, 40541 },
  47.         {  87116, -141332, -1336, 52193 },
  48.         {  43521,  -47542,  -792, 31655 },
  49.         {  17203,  144949, -3024, 18166 },
  50.         { 111164,  221062, -3544,  2714 },
  51.         { -13869,  122063, -2984, 18270 },
  52.         { -83161,  150915, -3120, 17311 },
  53.         {  45402,   48355, -3056, 49153 },
  54.         { 115616, -177941,  -896, 30708 },
  55.         { -44928, -113608,  -192, 30212 },
  56.         { -84037,  243194, -3728,  8992 },
  57.         {-119690,   44583,   360, 29289 },
  58.         {  12084,   16576, -4584, 57345 }
  59.     };
  60.  
  61.     public LoveYourGatekeeper(int questId, String name, String descr)
  62.     {
  63.         super(questId, name, descr);
  64.         addStartNpc(NpcId);
  65.     addFirstTalkId(NpcId);
  66.     addTalkId(NpcId);
  67.    
  68.     for(int[] _spawn : _spawns)
  69.             addSpawn(NpcId, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
  70.     }
  71.  
  72.     @Override
  73.     public String onFirstTalk(L2Npc npc, L2PcInstance player)
  74.     {
  75.         QuestState st = player.getQuestState(getName());
  76.         if (st == null)
  77.         {
  78.             Quest q = QuestManager.getInstance().getQuest(getName());
  79.             st = q.newQuestState(player);
  80.         }
  81.         return "32477.htm";
  82.     }
  83.  
  84.   @Override
  85.     public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  86.     {
  87.         String htmltext = "";
  88.     Quest q = QuestManager.getInstance().getQuest(getName());
  89.         QuestState st = player.getQuestState(getName());
  90.     htmltext = event;
  91.        
  92.         if (event.equalsIgnoreCase("transform_stick"))
  93.         {
  94.             if (st.getQuestItemsCount(57) > 10000)
  95.             {
  96.                 long _curr_time = System.currentTimeMillis();
  97.                 String value = q.loadGlobalQuestVar(player.getAccountName());
  98.                 long _reuse_time = value == "" ? 0 : Long.parseLong(value);
  99.        
  100.                 if (_curr_time > _reuse_time)
  101.                 {
  102.                     st.setState(State.STARTED);
  103.                     st.takeItems(57, 10000);
  104.                     st.giveItems(ItemId, 1);
  105.                     q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (_hours * 3600000)));
  106.           return null;
  107.                 }
  108.                 else
  109.                 {
  110.                     long remainingTime = (_reuse_time - System.currentTimeMillis()) / 1000;
  111.                     int hours = (int) (remainingTime / 3600);
  112.                     int minutes = (int) ((remainingTime % 3600) / 60);
  113.                     SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);
  114.                     sm.addItemName(ItemId);
  115.                     sm.addNumber(hours);
  116.                     sm.addNumber(minutes);
  117.                     player.sendPacket(sm);
  118.           return null;
  119.                 }
  120.      }
  121.      else
  122.      {
  123.         htmltext = "32477-3.htm";
  124.      }
  125.    }      
  126.   else if (event.equalsIgnoreCase("transform"))
  127.     {
  128.             if (player.getFirstEffect(107) != null)
  129.       return null;
  130.             else
  131.             {
  132.                 npc.setTarget(player);
  133.         npc.doCast(SkillTable.getInstance().getInfo(26074, 1));
  134.             }
  135.       return null;
  136.     }                        
  137.      return htmltext;
  138.  }            
  139.          
  140.     public static void main(String[] args)
  141.     {
  142.         new LoveYourGatekeeper(-1, "LoveYourGatekeeper", "events");
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment