8 messaggi dal 23 maggio 2002
Stanchi di amministrare le partite usando lo scomodo client di Quake?

Allora fatevelo da soli!!!
(che aiuto eh?)

Quake accetta comandi "esterni" su una porta UDP (la 27910 per default, o altra specificata nel file di configurazione, ed e' la stessa a cui i client si connettono per giocare) con il seguente formato:

ÿÿÿÿrcon <password> <comando>

ÿ e' il valore 255, praticamente il server non fa nulla se prima non riceve quattro byte pieni (FF FF FF FF).
rcon e' il comando che attiva la Console remota, quindi il server sa che dopo ricevera' un ordine da eseguire su di se.

<password> deve essere uguale al valore contenuto nella variabile di ambiente (del server) rcon_password, se questa variabile e' null allora non sara' possibile amministrare da remoto il server. E' da tenere presente che e' possibile cancellare la rcon_password da remoto, quindi attenzione.

<comando> e' uno dei tanti comandi che il server accetta (basta una ricerca con google per conoscerli tutti).

E veniamo al codice ASP


dim objWSUdpCl
'creo l'oggetto
set objWSUdpCl = server.CreateObject("MSwinsock.winsock")

'scelgo il protocollo di trasporto:
'0 TCP (default)
'1 UDP
objWSUdpCl.Protocol = 1

'Specifico l'indirizzo del server di q2
objWSUdpCl.RemoteHost = "192.168.0.1"
'non usare 127.0.0.1 o localhost: non va bene

'dichiaro a quale porta del server attaccarmi
objWSUdpCl.RemotePort = "27910"
'objWSUdpCl.LocalIP = "127.0.0.1"
'dichiaro da quale porta locale trasmettere
objWSUdpCl.LocalPort = 59999

'apro la connessione
objWSUdpCl.Connect

'invio i dati (:sbav:) e aggiungo la costante vbcrlf per mandare a capo,
'senno' il server mi piglia tutto sulla stessa riga
objWSUdpCl.SendData "ÿÿÿÿrcon <password> <comando>" & vbcrlf

'comando di esempio:
'toglie quasi completamente la gravita' al livello corrente. Buon volo

objWSUdpCl.SendData "ÿÿÿÿrcon <password> set sv_gravity 100" & vbcrlf

'e felice atterraggio: ora la gravita' torna normale ^___^
objWSUdpCl.SendData "ÿÿÿÿrcon <password> set sv_gravity 800" & vbcrlf


'passo e chiudo
objWSUdpCl.close

' elimino l'oggetto dalla memoria, non si sa mai...
set objWSUdpCl = nothing


Per vederlo in funzione:
http://212.34.216.76
GLi utenti possono solo votare le mappe, il risultato del voto viene passato al server il giorno dopo.

il server di q2 invece lo trovate sullo stesso IP, ma sulla porta 27910

Buon divertimento


Grazie

---[ www.digiscout.it ]---

"This message was written using 100% recycled electrons"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.