D3 Q4 Modding - livello avanzato

TUTORIALS

-     Livello Base
-     Livello Intermedio
-     Livello avanzato






































 






















































































































































 
Aggiunta di Cvar per Doom3 \ Quake4


0. Introduzione alle Cvar.

Le Cvar, o Console Variables, sono valori variabili presenti in console.
Una Cvar può essere utilizzata in vari modi e per vari scopi, anche se la maggior parte delle volte esse vengono utilizzare per salvare impostazioni temporanee e non. Quando si crea una Cvar si deve considerare quale compito essa svolgerà e assegnarle quindi un “tipo”. Assegnare ad una Cvar un tipo significa dire al gioco come dovrà gestire i valori che la nostra Cvar potrà avere; ad esempio, se serve una Cvar che abbia solo due valori, tipo vero o falso, le daremo il tipo “Boolean” (valore Booleano, ovvero a sole due possibilità, 1/0, vero/falso, ok/errato, e così via).


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:

extern idCVar NOMESDK;


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:

NOMECVAR VALORE

 Esempio:
g_gyppitest 1



d) Per impostare la Cvar da startup (dobbiamo aggiungere al collegamento al gioco):

+NOMECVAR VALORE

 Esempio:
+g_gyppitest 1



e) Per impostare la Cvar via cfg (autorun.cfg, doomConfig.cfg o Quake4Config.cfg):

SET (o SETX) NOMECVAR VALORE

 Esempio:
SET g_gyppitest 1


In questo caso il SET serve per impostare un valore alla Cvar che terrà solo per questa esecuzione del gioco.

SETX dove X indica una possibile variante serve per impostare la Cvar e darle un attributo speciale;

SETA: imposta la Cvar e gli da l’attributo archivio (e quindi copiata in doomConfig.cfg o Quake4Config.cfg);

SETS: imposta la Cvar e gli da l’attributo server info (informazione del server);

SETT: imposta la Cvar e gli da l’attributo tool (strumento);

SETU: imposta la Cvar e gli da l’attributo user info (informazione utente).


Buon Lavoro!

       

_____________________________________________________________________________

Ok. Questo è quanto. Se hai dei dubbi su qualche punto, posta pure le tue domande sul nostro Forum.


Creative Commons License
Aggiunta di Cvar per Doom3 - Quake4
Tutorial by Gyppi for HG&LD            
- 17 agosto 2006 -