Skip to content
Snippets Groups Projects
Commit bf85eecf authored by Rumen Nikiforov's avatar Rumen Nikiforov
Browse files

BETA: Adding new admin command !//scan [range] displays all NPCs around you...

BETA: Adding new admin command !//scan [range] displays all NPCs around you giving u ability to move to the NPC or delete it.
	* Reviewed by: FBIagent, MELERIX
parent 389b49e4
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!-- ADMIN COND EXCEPTIONS --> <!-- ADMIN COND EXCEPTIONS -->
<admin command="admin_exceptions" accessLevel="7" /> <admin command="admin_exceptions" accessLevel="7" />
<admin command="admin_set_exception" accessLevel="7" confirmDlg="true" /> <admin command="admin_set_exception" accessLevel="7" confirmDlg="true" />
<!-- ADMIN ADMIN --> <!-- ADMIN ADMIN -->
<admin command="admin_admin" accessLevel="7" /> <admin command="admin_admin" accessLevel="7" />
<admin command="admin_admin1" accessLevel="7" /> <admin command="admin_admin1" accessLevel="7" />
...@@ -632,6 +632,10 @@ ...@@ -632,6 +632,10 @@
<admin command="admin_zone_visual" accessLevel="7" /> <admin command="admin_zone_visual" accessLevel="7" />
<admin command="admin_zone_visual_clear" accessLevel="7" /> <admin command="admin_zone_visual_clear" accessLevel="7" />
<!-- ADMIN SCAN -->
<admin command="admin_scan" accessLevel="7" />
<admin command="admin_deleteNpcByObjectId" accessLevel="7" confirmDlg="true" />
<!-- VOICE COMMANDS --> <!-- VOICE COMMANDS -->
<admin command="banchat" accessLevel="7" /> <admin command="banchat" accessLevel="7" />
<admin command="debug" accessLevel="7" /> <admin command="debug" accessLevel="7" />
......
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
<td><button value="ListSpwn" action="bypass -h admin_list_spawns $qbox" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td><button value="ListSpwn" action="bypass -h admin_list_spawns $qbox" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
<td><button value="goPosition" action="bypass -h admin_list_positions $qbox 1" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td><button value="goPosition" action="bypass -h admin_list_positions $qbox 1" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
<td><button value="goSpawn" action="bypass -h admin_list_spawns $qbox 1" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td><button value="goSpawn" action="bypass -h admin_list_spawns $qbox 1" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
</tr><tr>
<td><button value="Scan" action="bypass -h admin_scan $qbox" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
</tr> </tr>
</table> </table>
<br> <br>
......
<html><title>L2J Main Admin Menu</title><body>
<center>
<table width=270 border=0 bgcolor="444444">
<tr>
<td><button value="Main" action="bypass -h admin_admin" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
<td><button value="Char" action="bypass -h admin_admin6" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
<td><button value="Game" action="bypass -h admin_admin2" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
<td><button value="GM" action="bypass -h admin_admin7" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
</tr>
</table><br>
<table width=270>
<tr>
<td width="54">Id</td>
<td width="54">Name</td>
<td width="54">Dist</td>
<td width="54">Delete</td>
<td width="54">Goto</td>
</tr>
%data%
</table>
</center>
</body>
</html>
\ No newline at end of file
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
# Load Handlers # Load Handlers
handlers/MasterHandler.java handlers/MasterHandler.java
handlers/admincommandhandlers/AdminScan.js
# AI Section # AI Section
......
/*
* Copyright (C) 2004-2013 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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.
*
* L2J DataPack 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/>.
*/
importPackage(java.util);
importPackage(java.lang);
importPackage(com.l2jserver.gameserver.cache);
importPackage(com.l2jserver.gameserver.datatables);
importPackage(com.l2jserver.gameserver.handler);
importPackage(com.l2jserver.gameserver.instancemanager);
importPackage(com.l2jserver.gameserver.model);
importPackage(com.l2jserver.gameserver.model.actor);
importPackage(com.l2jserver.gameserver.model.actor.instance);
importPackage(com.l2jserver.gameserver.network.serverpackets);
importPackage(com.l2jserver.gameserver.util);
/**
* @author UnAfraid
*/
AdminCommandHandler.getInstance().registerHandler(new JavaAdapter(IAdminCommandHandler,
{
// Override useAdminCommand() method.
useAdminCommand : function(command, player)
{
var st = new StringTokenizer(command, " ");
if (st.hasMoreTokens())
{
var cmd = st.nextToken();
if (cmd == 'admin_scan')
{
var radius = 500;
if (st.hasMoreTokens())
{
var obj = st.nextToken();
if (Util.isDigit(obj))
{
radius = obj;
}
}
var htm = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/admin/scan.htm");
var sb = new StringBuilder();
var it = player.getKnownList().getKnownCharactersInRadius(radius).iterator();
while (it.hasNext())
{
var character = it.next();
if (character instanceof L2Npc)
{
sb.append("<tr>");
sb.append("<td width=\"54\">" + character.getNpcId() + "</td>");
sb.append("<td width=\"54\">" + character.getName() + "</td>");
sb.append("<td width=\"54\">" + Math.round(Util.calculateDistance(player, character, false)) + "</td>");
sb.append("<td width=\"54\"><a action=\"bypass -h admin_deleteNpcByObjectId " + character.getObjectId() + "\"><font color=\"LEVEL\">Delete</font></a></td>");
sb.append("<td width=\"54\"><a action=\"bypass -h admin_move_to " + character.getX() + " " + character.getY() + " " + character.getZ() + "\"><font color=\"LEVEL\">Go to</font></a></td>");
sb.append("</tr>");
}
}
htm = htm.replaceAll("%data%", sb.toString());
player.sendPacket(new NpcHtmlMessage(0, htm));
}
else if (cmd = 'admin_deleteNpcByObjectId' && st.hasMoreTokens())
{
var objectId = st.nextToken();
if (Util.isDigit(objectId))
{
var it = player.getKnownList().getKnownCharacters().iterator();
while (it.hasNext())
{
var character = it.next();
if ((character instanceof L2Npc) && (character.getObjectId() == objectId))
{
character.deleteMe();
var spawn = character.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getNpcid()))
{
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
player.sendMessage(character.getName() + " have been deleted.");
this.useAdminCommand("admin_scan", player);
}
}
}
}
}
return true;
},
// Override getAdminCommandList() method.
getAdminCommandList : function()
{
return new Array("admin_scan", "admin_deleteNpcByObjectId");
}
}));
\ No newline at end of file
...@@ -500,6 +500,8 @@ ...@@ -500,6 +500,8 @@
<xs:enumeration value="admin_zone_reload" /> <xs:enumeration value="admin_zone_reload" />
<xs:enumeration value="admin_zone_visual_clear" /> <xs:enumeration value="admin_zone_visual_clear" />
<xs:enumeration value="admin_zone_visual" /> <xs:enumeration value="admin_zone_visual" />
<xs:enumeration value="admin_scan" />
<xs:enumeration value="admin_deleteNpcByObjectId" />
<xs:enumeration value="banchat" /> <xs:enumeration value="banchat" />
<xs:enumeration value="debug" /> <xs:enumeration value="debug" />
<xs:enumeration value="recall" /> <xs:enumeration value="recall" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment