Noticias:

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

Menú Principal

Mensajes entre ventanas

Iniciado por Swarlog, Ago 16, 2022, 02:42 AM

Tema anterior - Siguiente tema

Swarlog



Con este codigo lo q logran es la posibilidad de hacer anuncios por medio de la pantalla q son muy llamativos. By fissban ^^

### Eclipse Workspace Patch 1.0
#P L2J_Server
Index: java/com/l2jserver/gameserver/util/Broadcast.java
===================================================================
--- java/com/l2jserver/gameserver/util/Broadcast.java  (revision 5572)
+++ java/com/l2jserver/gameserver/util/Broadcast.java  (working copy)
@@ -20,12 +20,14 @@
import java.util.logging.Level;
import java.util.logging.Logger;
 
+import com.l2jserver.Config;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CharInfo;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
import com.l2jserver.gameserver.network.serverpackets.RelationChanged;
 
@@ -173,11 +175,23 @@
    * <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T SEND Server->Client packet to this L2Character (to do this use method toSelfAndKnownPlayers)</B></FONT><BR>
    * @param mov
    */
+
+
    public static void toAllOnlinePlayers(L2GameServerPacket mov)
    {
      L2World.getInstance().forEachPlayer(new ForEachPlayerBroadcast(mov));
    }
 
+  //new by Fissban
+  public static void announceToOnlinePlayersScreen(String text)
+  {
+      ExShowScreenMessage cs;
+      cs = new ExShowScreenMessage (text, Config.WELCOME_MESSAGE_TIME);
+      toAllOnlinePlayers(cs);
+
+  }
+
+
    public static void announceToOnlinePlayers(String text, boolean isCritical)
    {
      CreatureSay cs;
 
### Eclipse Workspace Patch 1.0
#P L2J_Server
Index: java/com/l2jserver/gameserver/Announcements.java
===================================================================
--- java/com/l2jserver/gameserver/Announcements.java  (revision 5572)
+++ java/com/l2jserver/gameserver/Announcements.java  (working copy)
@@ -237,7 +237,14 @@
    {
      Broadcast.toAllOnlinePlayers(sm);
    }
+
+  //add by fissban
+  public void announceToAllScreen(String texto_ehh)
+  {
+      Broadcast.announceToOnlinePlayersScreen(texto_ehh);
+  }
 
    public void announceToInstance(SystemMessage sm, int instanceId)
    {
      Broadcast.toPlayersInInstance(sm, instanceId);

Y el llamado lo hacen asi:
Announcements.getInstance().announceToAllScreen("Fissban te Amamos");

Por si quieren hacer un handler para q solo el admi pueda hablar con este metodo es a

### Eclipse Workspace Patch 1.0
#P L2J_DataPack
Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java
===================================================================
--- dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java  (revision 9083)
+++ dist/game/data/scripts/handlers/admincommandhandlers/AdminAnnouncements.java  (working copy)
@@ -63,7 +63,8 @@
      "admin_list_autoann",
      "admin_reload_autoann",
      "admin_add_autoann",
      "admin_del_autoann"
+      "admin_mensaje"// custom by fissban show screen announcements
    };
 
    @Override
@@ -284,6 +285,13 @@
          AutoAnnounceTaskManager.getInstance().deleteAutoAnnounce(Integer.parseInt(token));
          listAutoAnnouncements(activeChar);
      }
+      //custom msj para los admi by Fissban
+      else if (command.startsWith("admin_mensaje"))
+      {
+            command = command.substring(13);
+            command = activeChar.getName() + ": " + command;
+            Announcements.getInstance().announceToAllScreen(command);
+      }
      return true;
    }

y para usarlo es simplemente poniendo //mensaje "texto"

PD1: tal como has dicho, la adaptacion la dejo libre a quien la quiera
PD2: yo eh usado Config.WELCOME_MESSAGE_TIME para marcar el tiempo pero ustedes pueden poner lo q quieran