(https://www.united-extreme.com/u3games/foro/index.php?action=dlattach;attach=632)
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