Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Evento Hide Event By Iracundus

Iniciado por Swarlog, Ago 06, 2022, 02:18 AM

Tema anterior - Siguiente tema

Swarlog


### Eclipse Workspace Patch 1.0
#P Chr.6GMS
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 5263)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -51,6 +51,7 @@
 import net.sf.l2j.gameserver.ai.L2PlayerAI;
 import net.sf.l2j.gameserver.cache.HtmCache;
 import net.sf.l2j.gameserver.cache.WarehouseCacheManager;
+import net.sf.l2j.gameserver.clientpackets.Say2;
 import net.sf.l2j.gameserver.communitybbs.BB.Forum;
 import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager;
 import net.sf.l2j.gameserver.datatables.CharTemplateTable;
@@ -82,6 +83,7 @@
 import net.sf.l2j.gameserver.model.BlockList;
 import net.sf.l2j.gameserver.model.FishData;
 import net.sf.l2j.gameserver.model.ForceBuff;
+import net.sf.l2j.gameserver.model.Hide;
 import net.sf.l2j.gameserver.model.Inventory;
 import net.sf.l2j.gameserver.model.ItemContainer;
 import net.sf.l2j.gameserver.model.L2Attackable;
@@ -137,6 +139,7 @@
 import net.sf.l2j.gameserver.serverpackets.ChangeWaitType;
 import net.sf.l2j.gameserver.serverpackets.CharInfo;
 import net.sf.l2j.gameserver.serverpackets.ConfirmDlg;
+import net.sf.l2j.gameserver.serverpackets.CreatureSay;
 import net.sf.l2j.gameserver.serverpackets.EtcStatusUpdate;
 import net.sf.l2j.gameserver.serverpackets.ExAutoSoulShot;
 import net.sf.l2j.gameserver.serverpackets.ExDuelUpdateUserInfo;
@@ -3826,6 +3829,16 @@
          && (target.getOwnerId() == getObjectId() || isInLooterParty(target.getOwnerId())))
          target.resetOwnerTimer();
 
+         if(target.isHide()){
+        
+         getInventory().addItem("", Hide.rewardId, Hide.rewardCount, this, null);
+         sendPacket(new InventoryUpdate());
+         sendMessage("You won the event!");
+         Hide.cleanEvent();
+         Broadcast.toAllOnlinePlayers(new CreatureSay(0,Say2.ANNOUNCEMENT,"Hide Event","Winner is: "+getName()+".Event ended."));
+         target.setHide(false);
+         return;
+         }
  // Remove the L2ItemInstance from the world and send server->client GetItem packets
  target.pickupMe(this);
  if(Config.SAVE_DROPPED_ITEM) // item must be removed from ItemsOnGroundManager if is active
Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminGoHide.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminGoHide.java (revision 0)
+++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminGoHide.java (revision 0)
@@ -0,0 +1,59 @@
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+package net.sf.l2j.gameserver.handler.admincommandhandlers;
+
+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.model.Hide;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ *
+ * @author  Iracundus
+ */
+public class AdminGoHide implements IAdminCommandHandler
+{
+
+ private static String[] ADMIN_COMMANDS = {"admin_gohide"};
+
+ @Override
+ public boolean useAdminCommand(String command, L2PcInstance activeChar)
+ {
+ if(command.startsWith("admin_gohide")){
+ if(activeChar == null)
+ return false;
+
+ if(Hide.running == false){
+ activeChar.sendMessage("Event is not in progress");
+ return false;
+ }
+
+ int x = Hide.getX() , y = Hide.getY() , z = Hide.getZ();
+ activeChar.teleToLocation(x, y, z);
+ }
+
+ return true;
+ }
+
+
+ @Override
+ public String[] getAdminCommandList()
+ {
+ return ADMIN_COMMANDS;
+ }
+
+}
Index: java/net/sf/l2j/gameserver/model/L2ItemInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2ItemInstance.java (revision 5263)
+++ java/net/sf/l2j/gameserver/model/L2ItemInstance.java (working copy)
@@ -92,6 +92,8 @@
  /** Slot where item is stored */
  private int _locData;
 
+ private boolean hide;
+
  /** Level of enchantment of the item */
  private int _enchantLevel;
 
@@ -286,6 +288,14 @@
  }
  }
 
+ public boolean isHide(){
+ return hide;
+ }
+
+ public void setHide(boolean j){
+ hide = j;
+ }
+
  // No logging (function designed for shots only)
  public void changeCountWithoutTrace(String process, int count, L2PcInstance creator, L2Object reference)
  {
Index: java/net/sf/l2j/gameserver/model/Hide.java
===================================================================
--- java/net/sf/l2j/gameserver/model/Hide.java (revision 0)
+++ java/net/sf/l2j/gameserver/model/Hide.java (revision 0)
@@ -0,0 +1,120 @@
+package net.sf.l2j.gameserver.model;
+
+
+import net.sf.l2j.gameserver.ThreadPoolManager;
+import net.sf.l2j.gameserver.clientpackets.Say2;
+import net.sf.l2j.gameserver.network.SystemMessageId;
+import net.sf.l2j.gameserver.serverpackets.CreatureSay;
+import net.sf.l2j.gameserver.serverpackets.SystemMessage;
+import net.sf.l2j.gameserver.util.Broadcast;
+import net.sf.l2j.util.Rnd;
+
+public class Hide{
+
+ public static final int rewardId = 2807;
+ public static final int rewardCount = 50;
+ private static Hide _instance;
+ private final int delay = 180000;
+ private final static int itemId = 7683;
+ private final static int itemCount = 1;
+ public static boolean running = false;
+ private static int x;
+ private static int y;
+ private static int z = 0;
+ private final int[][] teleports = { {116496,145020,-2569} , {18605,145378,-3129} , {-83083,150505,-3134} };
+ static L2ItemInstance item = null;
+
+ public static int getX(){
+ return x;
+ }
+
+ public static int getY(){
+ return y;
+ }
+
+ public static int getZ(){
+ return z;
+ }
+
+ public static int getItemId(){
+ return itemId;
+ }
+
+ public static int getItemCount(){
+ return itemCount;
+ }
+
+ public void startEvent(){
+ running = true;
+ System.out.println("Automatic Hide Event started with success.");
+ int s = Rnd.get(teleports.length);
+ x = teleports[s][0];
+ y = teleports[s][1];
+ z = teleports[s][2];
+ SystemMessage sm = new SystemMessage(SystemMessageId.S2_WAS_DROPPED_IN_THE_S1_REGION);
+ sm.addZoneName(getX(), getY(), getZ());
+ sm.addItemName(itemId);
+ item = new L2ItemInstance(Rnd.get(65535),itemId);
+ L2World.getInstance().storeObject(item);
+ item.setCount(itemCount);
+ item.setHide(true);
+ item.getPosition().setWorldPosition(x, y ,z);
+        item.getPosition().setWorldRegion(L2World.getInstance().getRegion(item.getPosition().getWorldPosition()));
+        item.getPosition().getWorldRegion().addVisibleObject(item);
+        item.setProtected(false);
+        item.setIsVisible(true);
+        L2World.getInstance().addVisibleObject(item, item.getPosition().getWorldRegion(), null);
+    
+       
+   
+        Broadcast.toAllOnlinePlayers(new CreatureSay(0,Say2.ANNOUNCEMENT,"Hide Event","Event started, Item dropped: "+item.getItem().getName()+", find it and win!"));
+        Broadcast.toAllOnlinePlayers(sm);
+        ThreadPoolManager.getInstance().scheduleGeneral(new Check(), 60000);
+ }
+
+ public void checkAfterTime(){
+ if(running == false)
+ return;
+ if(item.isHide())
+ item.setHide(false);
+ item.decayMe();
+ L2World.getInstance().removeObject(item);
+ cleanEvent();
+ Broadcast.toAllOnlinePlayers(new CreatureSay(0,Say2.ANNOUNCEMENT,"Hide Event","Unfortunately,none find the item , event finished!"));
+ }
+
+ public static void cleanEvent(){
+ x = 0;
+ y = 0;
+ z = 0;
+ running = false;
+ if(item != null){
+ item.decayMe();
+ L2World.getInstance().removeObject(item);
+ }
+ item = null;
+ }
+
+ private Hide(){
+ ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Event(), delay, delay);
+ System.out.println("Automatic Hide event loaded with success.");
+ }
+
+ public static Hide getInstance(){
+ if(_instance == null)
+ _instance = new Hide();
+ return _instance;
+ }
+
+ public class Check implements Runnable{
+ public void run(){
+ checkAfterTime();
+ }
+ }
+
+ public class Event implements Runnable{
+ public void run(){
+ startEvent();
+ }
+ }
+}
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- java/net/sf/l2j/gameserver/GameServer.java (revision 5263)
+++ java/net/sf/l2j/gameserver/GameServer.java (working copy)
@@ -90,6 +90,7 @@
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGeodata;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGm;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGmChat;
+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGoHide;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHeal;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHelpPage;
 import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminInvul;
@@ -218,6 +219,7 @@
 import net.sf.l2j.gameserver.instancemanager.SiegeManager;
 import net.sf.l2j.gameserver.model.AutoChatHandler;
 import net.sf.l2j.gameserver.model.AutoSpawnHandler;
+import net.sf.l2j.gameserver.model.Hide;
 import net.sf.l2j.gameserver.model.L2Manor;
 import net.sf.l2j.gameserver.model.L2PetDataTable;
 import net.sf.l2j.gameserver.model.L2World;
@@ -518,6 +520,7 @@
 
  _adminCommandHandler = AdminCommandHandler.getInstance();
  _adminCommandHandler.registerAdminCommandHandler(new AdminAdmin());
+ _adminCommandHandler.registerAdminCommandHandler(new AdminGoHide());
  _adminCommandHandler.registerAdminCommandHandler(new AdminInvul());
  _adminCommandHandler.registerAdminCommandHandler(new AdminDelete());
  _adminCommandHandler.registerAdminCommandHandler(new AdminKill());
@@ -604,6 +607,7 @@
  CoupleManager.getInstance();
 
         TaskManager.getInstance();
+        Hide.getInstance();
 
  GmListTable.getInstance();