Um membro me pediu ajuda em um código e acabei desenvolvendo ele todo para ele e estou disponibilizando para todos, o que esse mod faz ? Anúncia o Hero que estiver logando no servidor só se a classe atual dele for a classe Base, e no anúncio também fala o nome da classe daquele player.
Quem puder mandar prints para complementar o tópico eu agradeço.
Index: config/players.properties =================================================================== --- config/players.properties (revisão 2) +++ config/players.properties (cópia de trabalho) @@ -45,6 +45,11 @@ # Death Penalty chance if killed by mob (in %), 20 by default DeathPenaltyChance = 20 +# Announce Hero Login only you stay in Base Class +# Default : False +# Author : Tayran.JavaDev +AnnounceHeroLoginBaseClass = false + #============================================================= # Inventory / Warehouse #============================================================= Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revisão 2) +++ java/net/sf/l2j/Config.java (cópia de trabalho) @@ -666,6 +666,12 @@ public static int CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN = 1; // default 1 public static int CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN = 1; // default 1 public static int CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN = 5; // default 5 + + public static boolean ANNOUNCE_HERO_ONLY_BASECLASS; // -------------------------------------------------- @@ -1080,6 +1086,7 @@ private static final void loadPlayers() { final ExProperties players = initProperties(PLAYERS_FILE); + ANNOUNCE_HERO_ONLY_BASECLASS = players.getProperty("AnnounceHeroLoginBaseClass", false); STARTING_ADENA = players.getProperty("StartingAdena", 100); EFFECT_CANCELING = players.getProperty("CancelLesserEffect", true); HP_REGEN_MULTIPLIER = players.getProperty("HpRegenMultiplier", 1.); Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (revisão 2) +++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (cópia de trabalho) @@ -68,6 +68,7 @@ import net.sf.l2j.gameserver.scripting.QuestState; import net.sf.l2j.gameserver.scripting.ScriptManager; import net.sf.l2j.gameserver.taskmanager.GameTimeTaskManager; +import net.sf.l2j.gameserver.util.Broadcast; public class EnterWorld extends L2GameClientPacket { @@ -232,6 +233,12 @@ if (activeChar.isAlikeDead()) activeChar.sendPacket(new Die(activeChar)); + if (activeChar.getActiveClass() == activeChar.getBaseClass() && activeChar.isHero() && Config.ANNOUNCE_HERO_ONLY_BASECLASS) + { + Broadcast.announceToOnlinePlayers("O Heroi " + activeChar.getName() + " da profissao " + returnClassName(activeChar.getBaseClass()) + " esta Online!"); + } + + activeChar.updateEffectIcons(); activeChar.sendPacket(new EtcStatusUpdate(activeChar)); activeChar.sendSkillList(); @@ -335,6 +342,81 @@ activeChar.sendPacket(ActionFailed.STATIC_PACKET); } + /** + * @author Tayran.JavaDev + * @param classid for search Name + * @return the Class Name + */ + public static String returnClassName(int classid) + { + switch (classid) + { + case 88: + return "Duelist"; + case 89: + return "DreadNought"; + case 90: + return "Phoenix Knight"; + case 91: + return "Hell Knight"; + case 92: + return "Sagittarius"; + case 93: + return "Adventurer"; + case 94: + return "Archmage"; + case 95: + return "Soultaker"; + case 96: + return "Arcana Lord"; + case 97: + return "Cardinal"; + case 98: + return "Hierophant"; + case 99: + return "Eva Templar"; + case 100: + return "Sword Muse"; + case 101: + return "Wind Rider"; + case 102: + return "Moonlight Sentinel"; + case 103: + return "Mystic Muse"; + case 104: + return "Elemental Master"; + case 105: + return "Eva Saint"; + case 106: + return "Shillien Templar"; + case 107: + return "Spectral Dancer"; + case 108: + return "Ghost Hunter"; + case 109: + return "Ghost Sentinel"; + case 110: + return "Storm Screamer"; + case 111: + return "Spectral Master"; + case 112: + return "Shillen Saint"; + case 113: + return "Titan"; + case 114: + return "Grand Khauatari"; + case 115: + return "Dominator"; + case 116: + return "Doomcryer"; + case 117: + return "Fortune Seeker"; + case 118: + return "Maestro"; + } + return ""; + } + @Override protected boolean triggersOnActionRequest() {
Créditos : Tayran.JavaDev