Guida Come ottimizzare il vostro codice

J4Rr3x

Nuovo utente
Autore del topic
27 Dicembre 2013
44
28
Miglior risposta
0
Salve a tutti!
Oggi sono qui a suggerirvi/spiegarvi come ottimizzare al meglio la vostra gamemode (lato codice), iniziamo!

Indice:
  1. Stock, forward/public, plain functions, macro
  2. Define, enum & const
  3. Uso della keyword 'static'

Guida:

Stock, forward/public, plain functions, macro:
Molti scripter nelle loro gamemode usano gli 'stock' oppure 'forward' per creare delle funzioni, ma molto spesso (se non sempre) quest'ultimi non servono!

La keyword 'stock', così come quella 'const', servono a "dire" al compilatore che deve "nascondere" queste funzioni se non vengono richiamati nella gamemode e/o filterscript.
Le keyword 'forward' e 'public', bisogna usarli solamente quando si ha bisogno di richiamare una funzione da un'altra (es. un timer).
Le 'plain functions', invece, sono funzioni che non hanno una keyword che li precede durante la dichiarazione e sono molto più veloci durante l'esecuzione.
Infine, le 'macro' sono dei semplici '#define' dove i parametri sono definiti con %0, %1, %2 e cosi via. Le 'macro' sono molto più veloci anche delle 'plain functions'.

Esempi:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!



Quindi:
Gli 'stock' vanno utilizzati solamente durante la creazione di un include, quando non si sa l'utente utilizzerà tutte le funzione che comprende l'include; i 'forward' e 'public' quando si ha bisogno di chiamare la funzione da, per esempio, un timer

Define, enum & const
Spesso e volentieri girando nei forum mi capita di vedere gente che chiede aiuto perché dopo l'inserimento di un fs alcuni dialog della loro gm non appare più, dunque, questo accade perché il dialog della gm e del fs sono uguali. Per evitare questo piccolo conflitto e rendere più veloce l'apparizione del dialog si possono usare gli 'enum', esempio:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
In modo tale che il server allochi dinamicamente l'id al dialog e non si vada in contro ai conflitti scritti prima.

Il secondo modo per rendere ancora più veloce la vostra GM è l'uso dei 'const' anzicché la direttiva '#define', esempio:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Utilizzando 'const' il valore non potrà essere modificato successivamente (se provate a modificarlo, il compilatore vi darà un errore).



Uso della keyword 'static'
Se prima vi siete chiesti perché ho usato 'static' anzicché 'new' eccovi la risposta:
La keywords 'new' va usata quando si usano i moduli (che spiegherò successivamente), cioè: Io creato la variabile 'new pLogged[MAX_PLAYERS] = false;' e la devo modificare nel file 'x.pwn'
La keywords 'static' va usata, invece, ovunque si sappia che la variabile non dovrà essere modificare al di fuori di quel file.


Spero che questi piccoli consigli vi siano stati d'aiuto! Buon scripting!

Presto aggiuingerò altri consigli.