Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Error evento hidden drop [Jfrozen rev 1132]

Iniciado por heladito, Oct 16, 2025, 02:39 PM

Tema anterior - Siguiente tema

heladito

Hola, como estan? queria saber si alguno me podia dar una mano con un pequeño error que tengo al colocar el evento Hidden Drop para Jfrozen

Codigo evento
Index: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/actor/L2PcInstance.java
=========================================================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/actor/L2PcInstance.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/actor/L2PcInstance.java

import com.l2jfrozen.gameserver.model.entity.event.CTF;
import com.l2jfrozen.gameserver.model.entity.event.DM;
+/** Hide Event */
+import com.l2jfrozen.gameserver.model.entity.event.Hide;

import com.l2jfrozen.util.database.L2DatabaseFactory;
import com.l2jfrozen.util.random.Rnd;
+/** hide event */
+import com.l2jfrozen.gameserver.network.clientpackets.Say2;

        if (target.getItemLootShedule() != null && (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);
+                System.out.println("Automatic Hide Event finished with success.");
+                return;
+            }
+
        // Fixed it's not possible pick up the object if you exceed the maximum weight.
        if (_inventory.getTotalWeight() + target.getItem().getWeight() * target.getCount() > getMaxLoad())
        {
            sendMessage("You have reached the maximun weight.");
            return;
        }

Index: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/handler/AdminCommandHandler.java
============================================================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/handler/AdminCommandHandler.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/handler/AdminCommandHandler.java

import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminWho;
import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminZone;
+/** Hide Event */
+import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminGoHide;

    registerAdminCommandHandler(new AdminBuffs());
    registerAdminCommandHandler(new AdminAio());
+        /** Hide Event */
+        registerAdminCommandHandler(new AdminGoHide());

Index: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/handler/admincommandhandler/AdminGoHide.java
=======================================================================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/handler/admincommandhandler/AdminGoHide.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/handler/admincommandhandler/AdminGoHide.java

+/* 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 com.l2jfrozen.gameserver.handler.admincommandhandlers;
+
+import com.l2jfrozen.gameserver.handler.IAdminCommandHandler;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.entity.event.Hide;
+
+/**
+ *
+ * @author  Iracundus ( Remaded Sakretsos )
+ */
+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: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2ItemInstance.java
===================================================================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2ItemInstance.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2ItemInstance.java

/** Location of the item : Inventory, PaperDoll, WareHouse. */
private ItemLocation _loc;

/** Slot where item is stored. */
private int _locData;
+    
+    /** Hide Event */
+    private boolean hide;

    if(Config.LOG_ITEMS)
    {
        LogRecord record = new LogRecord(Level.INFO, "CHANGE:" + process);
        record.setLoggerName("item");
        record.setParameters(new Object[]
        {
                this, creator, reference
        });
        _logItems.log(record);
        record = null;
    }
}
+    
+    /** Hide Event */
+    public boolean isHide()
+    {
+            return hide;
+    }
+    
+    public void setHide(boolean j)
+    {
+            hide = j;
+    }
+

Index: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/entity/event/Hide.java
=======================================================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/entity/event/Hide.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/model/entity/event/Hide.java

+/* 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 com.l2jfrozen.gameserver.model.entity.event;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.network.clientpackets.Say2;
+import com.l2jfrozen.gameserver.network.SystemMessageId;
+import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay;
+import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
+import com.l2jfrozen.gameserver.util.Broadcast;
+import com.l2jfrozen.util.random.Rnd;
+import com.l2jfrozen.gameserver.model.L2World;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+
+public class Hide{
+    
+    public static final int rewardId = (Config.HIDE_EVENT_REWARD_ID);
+    public static final int rewardCount = (Config.HIDE_EVENT_REWARD_COUNT);
+    private static Hide _instance;
+    private final int delay = (Config.HIDE_EVENT_DELAY_BEFORE_START);
+    private final static int itemId = (Config.HIDE_EVENT_ITEM_WILL_DROP);
+    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!"));
+        System.out.println("Automatic Hide event finished with success.");
+    }
+    
+    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 aboarded with success.");
+    }
+    
+    public static Hide getInstance(){
+        if(_instance == null)
+            _instance = new Hide();
+        return _instance;
+    }
+    
+    public class Check implements Runnable{
+        @Override
+        public void run(){
+            checkAfterTime();
+        }
+    }
+    public class Event implements Runnable{
+        @Override
+        public void run(){
+            startEvent();    
+        }
+    }
+}

Index: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/GameServer.java
==========================================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/GameServer.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/gameserver/GameServer.java

import com.l2jfrozen.gameserver.model.entity.Hero;
import com.l2jfrozen.gameserver.model.entity.MonsterRace;
+import com.l2jfrozen.gameserver.model.entity.event.Hide;

    CursedWeaponsManager.getInstance();
    TaskManager.getInstance();
+        /** Hide Event */
+        if (Config.HIDE_EVENT)
+        {
+        Hide.getInstance();
+        }

Index: C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/Config.java
===========================================================================
--- C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/Config.java
+++ C:/Workspace/L2jFrozen_GameServer/head-src/com/l2jfrozen/Config.java

public static String PVP1_CUSTOM_MESSAGE;
public static String PVP2_CUSTOM_MESSAGE;
+    /** Hide Event Enabled */
+    public static boolean HIDE_EVENT;
+    public static int HIDE_EVENT_REWARD_ID;
+    public static int HIDE_EVENT_REWARD_COUNT;
+    public static int HIDE_EVENT_ITEM_WILL_DROP;
+    public static int HIDE_EVENT_DELAY_BEFORE_START;
+


        PVP1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!");
        PVP2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!");
+            /** Hide Event */
+            HIDE_EVENT = Boolean.parseBoolean(L2JFrozenSettings.getProperty("HideEvent", "false"));
+            HIDE_EVENT_REWARD_ID = Integer.parseInt(L2JFrozenSettings.getProperty("HideEventRewardId", "2807"));
+            HIDE_EVENT_REWARD_COUNT = Integer.parseInt(L2JFrozenSettings.getProperty("HideEventRewardCount", "1"));
+            HIDE_EVENT_ITEM_WILL_DROP = Integer.parseInt(L2JFrozenSettings.getProperty("HideEventItemWillDrop", "2807"));
+            HIDE_EVENT_DELAY_BEFORE_START = Integer.parseInt(L2JFrozenSettings.getProperty("HideEventDelayBeforeStart", "180000"));
+

Index: C:/Workspace/L2jFrozen_GameServer/config/functions/l2jfrozen.properties
==============================================================================
--- C:/Workspace/L2jFrozen_GameServer/config/functions/l2jfrozen.properties
+++ C:/Workspace/L2jFrozen_GameServer/config/functions/l2jfrozen.properties
+
+# -----------------------------------------
+# Hide Event -
+# -----------------------------------------
+# Default = False
+HideEvent = True
+HideEventRewardId = 2807
+HideEventRewardCount = 20
+HideEventItemWillDrop = 6579
+#Hide Event Start Every ( 180000 Milliseconds )
+#Milliseconds ( 180000 milliseconds = 180 seconds )
+HideEventDelayBeforeStart = 18000

Linea del error

Broadcast.toAllOnlinePlayers(new CreatureSay(0,Say2.ANNOUNCEMENT,"Hide Event","Winner is: "+getName()+". Event ended."));

En la parte de "ANNOUNCEMENT" esta el error y no se que poner ya.

No puedes ver este adjunto.

Swarlog

Posiblemente no tengas dicha funcion en vuestro proyecto:

Broadcast.toAllOnlinePlayers

Lo que puedes hacer es reemplazarlo por otro más común, que detecta players y envía el mensaje:

for (L2PcInstance player : L2World.getInstance().getPlayers())
			{
				if (player != null)
				{
					player.sendPacket(new CreatureSay(0,Say2.ANNOUNCEMENT,"Hide Event","Winner is: "+getName()+". Event ended.")));
				}
			}