1. Aggiunta di Cvar
Per aggiungere una Cvar abbiamo bisogno dell’
SDK (Software Development Kit) del gioco che vogliamo modificare,
di un compilatore di C++ e di conoscere un minimo di questo linguaggio. Per preparare l’SDK all’utilizzo vedete il
tutorial
Preparazione del sorgente dell’SDK di Doom3 - Quake4; se invece avete già tutto pronto, continuate pure con la lettura di
questo tutorial.
Le Cvar, nell’SDK, vengono dichiarate come
idCvar (Cvar della id) e questa operazione viene fatta principalmente in due luoghi
o, per meglio dire, su due file:
“\source\game\gamesys\syscvar.cpp”
e
“\source\game\gamesys\syscvar.h”
In
syscvar.cpp la nostra nuova Cvar va scritta nel seguente modo:
|
idCVar NOMESDK( "NOMECONSOLE", "VALORE PREDEFINITO", INFO_FLAG | TYPE_FLAG, "DESCRIZIONE");
|
esempio:
|
idCVar g_gyppitest( "g_gyppitest", "1", CVAR_GAME | CVAR_BOOL, "test");
|
NOMESDK: è il nome della nostra idCvar nell’SDK;
NOMECONSOLE: è il nome della nostra idCvar come la troveremo in console;
VALORE PREDEFINITO: il valore che essa avrà quando non verranno impostati altri valori;
INFO_FLAG | TYPE_FLAG: indicano le proprietà della Cvar (vedere l’elenco di sotto);
DESCRIZIONE: una breve descrizione di cosa fa e/o come funziona la Cvar: è facoltativo.
Elenco TYPE_FLAG:
CVAR_BOOL: tipo booleano, ha solo due valori, 0 e 1 (falso e vero);
CVAR_INTEGER: tipo intero, ammette qualsiasi numero intero;
CVAR_FLOAT: tipo flottante, ammette qualsiasi valore anche con la virgola;
Elenco INFO_FLAG:
CVAR_GAME: notifica che la Cvar riguarda il gioco;
CVAR_RENDERER: notifica che la Cvar riguarda il rendering del gioco (poco usata, si preferisce CVAR_GAME);
CVAR_ARCHIVE: notifica che questa Cvar va inserita nel file DoomConfig.cfg o Quake4Config.cfg e che verrà comandata anche da lì;
CVAR_NETWORKSYNC: notifica che questa Cvar riguarda una funzione di networking, usualmente utilizzata per il multiplayer;
CVAR_SERVERINFO: indica che la Cvar contiene informazioni sul server;
CVAR_USERINFO: indica che la Cvar contiene informazioni sul giocatore;
CVAR_INIT: indica che questa Cvar può essere modificata solo allo Startup (avvio) del gioco, tramite linea di comando;
CVAR_ROM: indica che questa Cvar è in sola lettura, quindi può essere definita solo tramite il codice dell’SDK;
CVAR_NOCHEAT: indica che questa Cvar non è da ritenere come un “trucco”.
NOTA: è possibile impostare più INFO_FLAG ma non più di una TYPE_FLAG, ogni flag va divista col carattere
“|”.
In syscvar.h la nostra nuova Cvar va scritta nel seguente modo:
NOMESDK: scrivete il nome che avete già scritto in
syscvar.cpp.
La vostra Cvar è pronta per l’uso.
2. Impostazione dei valori di una Cvar
Ora potete impostarne il valore in vari modi: dipende maggiormente dalla INFO_FLAG impostata ma solitamente si utilizza
la CVAR_GAME, con cui potrete impostare il valore della Cvar dallo
startup del gioco, da cfg, da console, da gui,
e naturalmente dallo stesso SDK.
Ecco alcuni esempi; ipotizziamo di aver creato una
Cvar di nome
g_gyppitest.
a) Per impostare la Cvar da una GUI:
|
consoleCMD "NOMECVAR VALORE";
|
Esempio:
|
consoleCMD "g_gyppitest 1";
|
b) Per impostare la Cvar dall’sdk o da script:
|
NOMECVAR.SetTIPO(VALORE);
|
Il TIPO può essere BOOL se è un valore booleano, come valore ha solo True o False;
INTEGER o FLOAT.
Esempi:
g_gyppitest.SetBool(True);
g_gyppitest.SetInteger(1);
g_gyppitest.SetFloat(1.0);
|
c) Per impostare la Cvar da console:
Esempio:
d) Per impostare la Cvar da startup (dobbiamo aggiungere al collegamento al gioco):
Esempio:
e) Per impostare la Cvar via cfg (autorun.cfg, doomConfig.cfg o Quake4Config.cfg):
|
SET (o SETX) NOMECVAR VALORE
|
Esempio:
In questo caso il
SET serve per impostare un valore alla
Cvar che terrà solo per questa esecuzione del
gioco.
SET
X dove
X indica una possibile variante serve per impostare la Cvar e darle un attributo speciale;
SET
A: imposta la Cvar e gli da l’attributo archivio (e quindi copiata in doomConfig.cfg o Quake4Config.cfg);
SET
S: imposta la Cvar e gli da l’attributo server info (informazione del server);
SET
T: imposta la Cvar e gli da l’attributo tool (strumento);
SET
U: imposta la Cvar e gli da l’attributo user info (informazione utente).
Buon Lavoro!