|
Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo. Caso seja registrado, efetue login. Esqueceu sua senha? Clique aqui Recomendamos o uso do Mozilla Firefox para uma melhor visualização. |
|
| Início | Postados Hoje | Marcar Fóruns Como Lidos | Álbums | Banidos | SE Team | Medalhas |
|
|||||||
| Registrar | Loteria VIP | Staff SE | Regras do fórum | Comunidade | Arcade | Postados Hoje | Pesquisar | Experience |
|
|
|
||||||||||||||||||||||||
|
|
![]() |
|
|
Ferramentas do Tópico | Modos de Exibição |
|
|
#1 |
|
Membro - Karma
![]() Registrado em: Sep 2009
Localização: Rio Verde GO
Posts: 383
Agradeceu: 265
Agradecido 274 Vezes em 113 Posts
Nome Real: Paulo Eduardo Ferreira
|
Uso:
/ / find_dualbox - encontra IPs on-line com 2 ou mais chars / / find_dualbox 4 - encontra IPs on-line com 4 ou mais chars (basta alterar o número para o que você quiser) Código:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Index: data/html/admin/dualbox.htm
===================================================================
--- data/html/admin/dualbox.htm (revision 0)
+++ data/html/admin/dualbox.htm (revision 0)
@@ -0,0 +1,13 @@
+<html><body>
+<table width=260><tr>
+<td width=40><button value="Main" action="bypass -h admin_admin" width=40 height=15 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
+<td width=180><center>IPs with dualboxes (%multibox%): </center></td>
+<td width=40><button value="Back" action="bypass -h admin_show_characters 0" width=40 height=15 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
+</tr></table>
+<br>
+%results%
+<br><br>
+<a action="bypass -h admin_find_dualbox 3\>Find dualbox with 3+ chars</a><br1>
+<a action="bypass -h admin_find_dualbox 4\>Find dualbox with 4+ chars</a><br1>
+<a action="bypass -h admin_find_dualbox 5\>Find dualbox with 5+ chars</a><br1>
+</body></html>
\ No newline at end of file
Index: data/scripts/handlers/admincommandhandlers/AdminEditChar.java
===================================================================
--- data/scripts/handlers/admincommandhandlers/AdminEditChar.java (revision 6101)
+++ data/scripts/handlers/admincommandhandlers/AdminEditChar.java (working copy)
@@ -16,7 +16,12 @@
import java.sql.Connection;
import java.sql.PreparedStatement;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.logging.Logger;
@@ -82,6 +87,7 @@
"admin_find_character", //find a player by his name or a part of it (case-insensitive)
"admin_find_ip", // find all the player connections from a given IPv4 number
"admin_find_account", //list all the characters from an account (useful for GMs w/o DB access)
+ "admin_find_dualbox", //list all the IPs with more than 1 char logged in (dualbox)
"admin_save_modifications", //consider it deprecated...
"admin_rec", // gives recommendation points
"admin_settitle", // changes char title
@@ -168,6 +174,19 @@
listCharacters(activeChar, 0);
}
}
+ else if (command.startsWith("admin_find_dualbox"))
+ {
+ int multibox = 2;
+ try
+ {
+ String val = command.substring(19);
+ multibox = Integer.parseInt(val);
+ }
+ catch (Exception e)
+ {
+ }
+ findDualbox(activeChar, multibox);
+ }
else if (command.equals("admin_edit_character"))
editCharacter(activeChar);
// Karma control commands
@@ -552,13 +571,9 @@
String account = "N/A";
try
{
- StringTokenizer clientinfo = new StringTokenizer(player.getClient().toString(), " ]:-[");
- clientinfo.nextToken();
- clientinfo.nextToken();
- clientinfo.nextToken();
- account = clientinfo.nextToken();
- clientinfo.nextToken();
- ip = clientinfo.nextToken();
+ String clientInfo = player.getClient().toString();
+ account = clientInfo.substring(clientInfo.indexOf("Account: ")+9, clientInfo.indexOf(" - IP: "));
+ ip = clientInfo.substring(clientInfo.indexOf(" - IP: ")+7,clientInfo.lastIndexOf("]"));
}
catch (Exception e)
{
@@ -896,4 +911,65 @@
throw new IllegalArgumentException("Malformed character name");
}
+ /**
+ * @param activeChar
+ * @throws IllegalArgumentException
+ */
+ private void findDualbox(L2PcInstance activeChar, int multibox) throws IllegalArgumentException {
+ Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers().values();
+ L2PcInstance[] players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]);
+
+ Map<String,List<L2PcInstance>> ipMap = new HashMap<String, List<L2PcInstance>>();
+
+ String ip = "0.0.0.0";
+ L2GameClient client;
+
+ final Map<String, Integer> dualboxIPs = new HashMap<String, Integer>();
+
+ for (L2PcInstance player: players)
+ {
+ client = player.getClient();
+ if (client.isDetached())
+ {
+ continue;
+ }
+ else
+ {
+ ip = client.getConnection().getSocket().getInetAddress().getHostAddress();
+ if (ipMap.get(ip) == null)
+ ipMap.put(ip, new ArrayList<L2PcInstance>());
+ ipMap.get(ip).add(player);
+
+ if (ipMap.get(ip).size() >= multibox)
+ {
+ Integer count = dualboxIPs.get(ip);
+ if (count == null)
+ dualboxIPs.put(ip, 0);
+ else
+ dualboxIPs.put(ip, count+1);
+ }
+ }
+ }
+
+ List<String> keys = new ArrayList<String>(dualboxIPs.keySet());
+ Collections.sort(keys, new Comparator<String>(){
+ public int compare(String left, String right){
+ return dualboxIPs.get(left).compareTo(dualboxIPs.get(right));
+ }
+ });
+ Collections.reverse(keys);
+
+ final StringBuilder results = new StringBuilder();
+ for (String dualboxIP : keys)
+ {
+ StringUtil.append(results, "<a action=\"bypass -h admin_find_ip " + dualboxIP + "\">" + dualboxIP + " (" + dualboxIPs.get(dualboxIP) + "</a><br1>");
+ }
+
+ NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
+ adminReply.setFile("data/html/admin/dualbox.htm");
+ adminReply.replace("%multibox%", String.valueOf(multibox));
+ adminReply.replace("%results%", results.toString());
+ activeChar.sendPacket(adminReply);
+ }
+
}
Código:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
INSERT INTO `admin_command_access_rights` VALUES ('admin_find_dualbox','1');
|
|
|
| Os Seguintes 6 Usuários disseram Obrigado(a) para B1Z4R0 por gostarem deste post : |
cachorrolouco (10-02-2010), Handy (23-05-2010), lelebrr (07-02-2010), macabriNn (07-02-2010), ManoeL-ADM (07-02-2010), Nakashimi (10-09-2011)
|
| Links Patrocinados |