Jump to content

[SHARE] AdminNpcChat


Flash™

Recommended Posts

My first share

I made this Admin command handler

that allows GM to make NPC say whatever they

want, I Don't know if this already exist

but I didn' t see it in the current datapack so I made one...

 

Gracia Epilogue

 

 

http://pastebin.com/ZziQ8aQx

 

MasterHandler.java

                 AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminZone());
                 AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminTownWar());
+                AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminNpcChat());
                 _log.config("Loaded " + AdminCommandHandler.getInstance().size() + "  AdminCommandHandlers");
         }

admin_command_access_rights.sql



('admin_townwar_end','1'),
+
+-- Npchat
+('admin_npchat_menu','1'),
+('admin_npchat','1');


AdminNpcChat.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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
* 
* @author Flash
*/




package handlers.admincommandhandlers;

import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
public class AdminNpcChat implements IAdminCommandHandler
{

private static final String[] ADMIN_COMMANDS =
{
	"admin_npchat",
	"admin_npchat_menu"
};

public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
	if (command.startsWith("admin_npchat"))
		handleNPChat(command, activeChar);
	if (command.startsWith("admin_npchat_menu"))
		AdminHelpPage.showHelpPage(activeChar, "Npchat_menu.htm");
	return true;
}

           public String[] getAdminCommandList()
{
	return ADMIN_COMMANDS;
}

/**
 * @param command
 * @param activeChar
 */
private void handleNPChat(String command, L2PcInstance activeChar)
{
	try
	{
	L2Object target = activeChar.getTarget();
	L2Npc npc = null;
	if (target instanceof L2Npc)
	{
                        int offset = 0;
		npc = (L2Npc) target;
                        int npcId = npc.getNpcId();
	        int npcObjId = npc.getObjectId();
                        String text;
		if (command.startsWith("admin_npchat_menu")) 
			offset = 18; 
		else
			offset = 13; 
		text = command.substring(offset);


		npc.broadcastPacket(new NpcSay(npcObjId, 0, npcId, text));
	}
	else
	{
		activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
		return;
	}

	}
	catch (StringIndexOutOfBoundsException e)
	{
		// empty message.. ignore
	}
}
}



Npchat_menu.htm 

<html>
<title>NPC Says</title><body>
Instructions:<br>
Target the NPC and write whatever you want to make the NPC say.
<br>
<center>Text:<multiedit var="texto" width=250 height=50></center>
<table width="160">
<tr>
<td><center><button value="Say" action="bypass -h admin_npchat_menu $texto" width=80 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></center></td>
</tr></table><br><br><br>
</body>
</html>

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...