Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/tmp_r) is not within the allowed path(s): (/membri:/membri2) in /membri/x2s2hx/bugtracker/includes/class.flyspray.php on line 997
FS#66 : Modifica ad analyzer

2Steps2Hell's -BanBot-

A low resource c++ urban terror bot that keeps track of players on specified servers and applies bans keeping the servers hacker clean :)
Tasklist

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
Task Type Feature Request
Category Backend / Core
Status Closed
Assigned To Davide (BackEnd)
Operating System Linux
Severity Medium
Priority High
Reported Version ver 1.x
Due in Version 1.2
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Inseriamo 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
Comment by n3m3s1s (n3m3s1s) - Monday, 25 October 2010, 11:55 GMT+2
Allora, rimando indietro la tua patch con i seguenti errori:

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.
Comment by Simone (Zamy) - Monday, 25 October 2010, 12:10 GMT+2
Rettifica:
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.
Comment by n3m3s1s (n3m3s1s) - Thursday, 28 October 2010, 20:42 GMT+2
Aggiunto la patch di backend con delle modifiche. In allegato la patch applicata

Loading...