non serve conoscerlo benissimo il C#, basta saperne qualcosa e capire un po' come è strutturato il source di warrock, ammetto che ci ho messo un po' all'inizio a capire la logica e comunque anche dopo non è che abbia capito tutto, anche perchè mi sono fermato per fare altro. Comunque quello che ho capito mi è stato sufficiente per poterci lavorare e sistemare un po' di cose.
Ti consiglio di fare come ho fatto io, andare di breakpoint
Cerca di capire i vari files cosa potrebbero fare (dal nome si capisce abbastanza), poi metti i breakpoint dove ti pare di capire che fa qualcosa che ti interessa e controlla se l'esecuzione si ferma li quando pensi tu e poi steppa per vedere cosa fa e come si comporta, cosi capisci molto.
L'altra cosa da fare quanto prima è loggare su disco i pacchetti di rete. Cerca nel codice i punti dove i pacchetti di rete entrano ed escono e loggali su disco, facendo cosi poi confronti certe situazioni nel gioco con i pacchetti. Es, spari allo zombie e controlli che pacchetti sono entrati e usciti.
Facendo cosi trovi anche dove sono le situazioni in cui qualcosa non va e puoi mettere a posto.
Non ti inganno, io ci ho messo un po' prima di cominciare a sistemare qualcosa, credo che almeno una settimana mi sia andata tutta solo per studiare come le cose funzionavano, poi ho cominciato a fixare un po' qua e un po' lo.
Per metterti sulla buona strada ti dico di vedere sti files che sono quelli che ti daranno piu soddisfazioni:
HANDLE_ROOM_DATA.cs <= questo è importantissimo, ci trovi molta della logica del game
virtualUser.cs
virtualRoom.cs <= qui tra le altre cose ci trovi la gestione dei wave degli zombie
MapdataManager.cs <= qui indaghi i problemi del minigun e dell incubatore
Packet.cs <= qui puoi lavorare su pacchetti di rete quando vuoi capire cosa succede in certe situazioni
Vehicles.cs <= qui ti studi come fa ad entrare e uscire dai veicoli (e forse anche minigun, non ricordo ora)
Ti dico subito che molti errori nel gioco sono dovuti a tabelle incomplete o inesistenti sul database, quindi in quei casi basta che riempi la tabella con dati congrui e funziona tutto, dove manca la tabella te la crei capendo dal codice cosa si aspetta.
Tanti altri errori invece sono causati da pacchetti di rete malformati, sbagliati o mancanti del tutto, qui il fix è piu difficile, devi loggare tutti i pacchetti in ingresso e uscita su disco e studiarteli, cioè giochi, fai qualcosa e poi vedi che pacchetti sono passati. In questo modo capisci quando qualche pacchetto non è stato elaborato giusto o quando qualche pacchetto dal server al client non ha avuto l'effetto desiderato, allora sai che è li che devi lavorare, su quel pacchetto.
Ultimo consiglio, parti a studiare dal file HANDLE_ROOM_DATA, perchè è autosplicativo, ci sono tutta una serie di casi di gioco tipo:
Citazione:case Subtype.DamageVehicle:
secondo te cosa fa questo? semplice, in caso di danneggiamento del veicolo esegue un blocco di codice.
E come questo ce ne sono tanti altri, allora se parti da qui e metti i breakpoint nei vari casi e poi steppi cominci a capire come ragiona il codice e poi da li pian piano saprai muoverti sempre meglio fino a capire come sistemare le cose
In bocca al lupo
[edit]
mi sono accorto che ho ripetuto le stesse cose 2 volte, sto messo male o.o