A low resource c++ urban terror bot that keeps track of players on specified servers and applies bans keeping the servers hacker clean :)
FS#66 - Modifica ad analyzer
Attached to Project:
2Steps2Hell's -BanBot-
Opened by Simone (Zamy) - Wednesday, 13 October 2010, 21:42 GMT+2
Last edited by n3m3s1s (n3m3s1s) - Thursday, 28 October 2010, 20:42 GMT+2
Opened by Simone (Zamy) - Wednesday, 13 October 2010, 21:42 GMT+2
Last edited by n3m3s1s (n3m3s1s) - Thursday, 28 October 2010, 20:42 GMT+2
|
DetailsInseriamo nel bot uno scheduler che gestisce quali comandi inviare ai server, quindi:
Modifica lievemente corposa da fare ad analyzer: ogni comando non viene più inviato direttamente alla classe Connection (e quindi al server), ma viene suddiviso in blocchi da dare in pasto allo scheduler. Quindi come reazione di ogni evento, si ha: -creazione di un blocco di istruzioni (IstructionsBlock) -man mano che si avanza per la gestione dell'evento, si inseriscono nel blocco le istruzioni coi comandi appositi. -alla fine si dà il blocco in pasto allo scheduler. Quindi occorre sostitutire il soggetto di tutti i comandi da inviare (adesso sono tipo server->say(...); , dovranno essere tipo block->say(...);) ed eliminare qualsiasi riferimento di Analyzer alla classe connection: non dovrà più usarla. Buon lavoro e benvenuto ufficialmente a bordo ;) |
This task depends upon
Closed by n3m3s1s (n3m3s1s)
Thursday, 28 October 2010, 20:42 GMT+2
Reason for closing: Implemented
Additional comments about closing: Patcheed
Thursday, 28 October 2010, 20:42 GMT+2
Reason for closing: Implemented
Additional comments about closing: Patcheed
Le righe indicate sono il numero della riga nella patch, non nel codice sorgente
In analyzer.cpp:
costruttore ( Analyzer() )
- 27: eliminare, completamente sbagliato
- 35: eliminare, non hai blocchi nel costruttore
- aggiungere la creazione dell'oggetto scheduler (N.B. : facendo "Scheduler* m_scheduler;" non crei l'oggetto, ma solo il PUNTATORE all'oggetto. Per creare per esempio un oggetto block, prima crei il puntatore (se non esiste già) con "InstructionsBlock* block;" e poi crei l'oggetto con "block = new IstrctionsBlock();". Ovviamente puoi fare direttamente "InstructionsBlock* block = new InstructionBlock();").
tutti i metodi che inviano comandi al server (per esempio clientUserInfo):
- creare il blocco localmente (in alcune parti manca la creazione del blocco, in altre viene creato solo il puntatore ma non l'oggetto).
- se il blocco è stato creato ed esiste quindi un blocco da inviare allo scheduler (per metodi come ban, esiste sempre alla fine, per altri come clientUserInfo, non sempre c'è) inviarlo allo scheduler.
- "m_scheduler->addInstructionBlock( block, Server::PriorityLevel());": non esiste un metodo statico chiamato PriorityLevel. C'è un enum: Server::LOW, Server::MEDIUM & Server::HIGH.
In analyzer.cpp:
costruttore ( Analyzer() )
- 27: eliminare, completamente sbagliato
- aggiungere la creazione dell'oggetto scheduler
Questi due si possono fare assieme, mettendo il costruttore dello scheduler tra le parentesi.