[blockquote]
[size=150]File di Configurazione[/size]
Cosa sono i file di configurazione(.cfg)?
I file di configurazione sono file di testi con l'estensione ".cfg" piuttosto che la classica ".txt". Questi file vengono utilizzati per memorizzare bind e valori di cvar(variabili lato client), che ti permettono di muoverti ed interagire con quello che è il mondo di Urban Terror.
I giocatori con piö esperienza creeranno i propri file di configurazione, con o senza script, in maniera tale che il gioco sia ottimizzato per rendere migliore il loro gioco.
Si possono fare molte con i file di configurazione, dalla modifica delle impostazione di rete per rendere la connessione sempre ottimale a togliere qualche fps al proprio sistema, oppure semplicemente per avere i tasti di gioco dove preferiscono.
Ci sono due importanti file di configurazione. Il q3config.cfg è l'unico file che tutti hanno nella propria directory di Urban Terror. Il file q3config.cfg contiene tutte le impostazioni e le variabili utilizzate da Urban Terror. Tutte le modifiche che si fanno in SETUP -> CONTROL vengono riportate specularmente su questo file. Si raccomanda di non modificare manualmente questo file, ma si puo tranquillamente guardare con un visualizzatore di file di testo (esempio WordPad), il file non dovrebbe essere protetto da scrittura.
Il file autoexec.cfg è quello nel quale è possibile effettuare tutte le proprie personalizzazioni. Esso sovrascrive tutti i valori ed i bind del file di configurazione principale; in caso di necessità permette l'esecuzione di molti altri sottofile di configurazione(che obrobrio l'italiano) e puo essere utilizzato per memorizzare script. Se hai bisogno di personalizzare la tue configurazioni, ti consigliamo di farlo modificando questo file.
Come si puo modificare l'autoexec.cfg?
Per modificare il file autoexec.cfg basta aprirlo con blocco note o qualsiasi altro editor di testo e modificare il necessario. Una volta che si ha finito di apporre le proprie modifiche, salvarlo sulla propria cartella q3ut4. Raccomandiamo di usare QBind, uno script editor avanzato per giochi con motore Quake; esso permette di modificare in maniera familiare ed intuitiva gli script/configurazioni listati qua sotto.
Come si eseguono i file .cfg?
Per eseguire un file di configurazione basta abbassare la console digitando la tilde[~].
Un volta apparsa la console, digitare uno slash(/) seguito da exec ed il nome del file .cfg che si vuole eseguire. Ad esempio: [code]/exec myconfig.cfg[/code]
Perchè le mie configurazioni non funzionano?
Normalmente il file autoexec.cfg vien eseguito senza intoppi, ma alcune volte la sua esecuzione puo fallire.
Di solito questo accade per colpa di una pesante frammentazione del disco, quindi per prima cosa provare a fare un defrag della propria unità disco.
Se il file autoexec.cfg continua a non funzionare, cliccare col destro sul collegamento di ioUrbanTerror e, sul menö a tendina comparso, selezionare "Proprietà ". Selezionare l'opzione "Collegamento" e, in "Target:", controllare che sia presente la stringa:
[code]"C:\Program Files\UrbanTerror\ioUrbanTerror.exe"[/code]
Ora aggiungere la seguente stringa:
[code]+exec autoexec.cfg[/code]
Il tuo comando dovrebbe essere come questo:
[code]"C:\Program Files\UrbanTerror\ioUrbanTerror.exe" +exec autoexec.cfg[/code]
Non dovrebbe ancora eseguirlo correttamente, quindi lanciare il gioco, far scendere la console con il tasto tilde[~] ed, una volta che la console è apparsa, digitare il seguente comando:
[code]/bind X "exec autoexec.cfg"[/code]
Dove "X" è un tasto e tua scelta. Noi ti raccomandiamo inoltre di inserire lo stesso comando nel tuo file autoexec.cfg. Ogni volta che si lancierà il gioco, si dovrà quindi premere X per eseguire il proprio file autoexec.
Nel caso il bind non funzionasse si puo anche inserire il seguente comando da console:
[code]/exec autoexec.cfg[/code]
In ogni caso entrambe i metodi sopra descritti richiederanno la pressione del tasto X o la digitazione del comando ogni volta che il gioco verrà avviato.
Generatori di file di configurazione:
Se la modifica o l'aggiornamento dei propri file di configurazione viene vista come un compito troppo difficile oppure non si è sicuri delle CVARs e di come esse debbano essere impostate, si puo provare ad utilizzare un generatore di configurazioni.
Due di questi generatori sono elencati qua sotto:
* [url=http://www.the-yarn.net/forums/index.php?page=q3cg]Sar's Q3 Config Generator[/url]
* [url=http://www.fileplanet.com/82373/80000/fileinfo/cfgGen]CfgGen[/url]
* [url=http://fileforum.betanews.com/detail/QBind_Free_Edition_for_Windows_2000/947089915/2]QBind[/url]
[size=150]Scripting[/size]
Cos'è uno script?
Uno script è un insieme di comandi che permettono di assegnare azioni. Gli scripts possono essere utilizzati per:
1) aumentare flesibilità di controllo (es. bind per selezionare armi multiple)
2) eseguire funzioni multiple con un unico tasto (es. registrazione di una demo)
3) facilitare la personalizzazione delle configurazioni per svariate mods (es. Urban Terror)
Cio che si leggerà piö in basso è una guida base di scrittura di scripts che potrà esservi utile nella scrittura dei propri scripts personali. Visitate [url=http://thebind.planetquake.gamespy.com/]The bind:Arena[/url] per vedere qualche esemprio di alcuni fantastici scripts e [url=http://q3console.planetquake.gamespy.com/]Commander Keen's Quake 3 Arena Console Page[/url] per tutti i differenti comandi di console e variabili di cui avranno bisogno i vostri scripts e [url=http://ucguides.savagehelp.com/Quake3/AquaQuake3Guide.html]Upset Chaps Quake3 & Team Arena Guide[/url] per ulteriori informazioni.
Organizzazzione dello Script
Gli scripts devono esere salvati in un file .cfg separato dal vosto 3config.cfg. La ragione di cio e che Quake III sovrascrive il file q3config ogni volta che lanciate il gioco o cambiate le impsotazioni e pertanto cancellera i vostri scripts.
Io metto tutto i miei scripts in un autoexec.cfg. Se non sapete come metternee uno insime, visitate "Tweaking Your Controls:Making an Autoexec section for a quick lesson"
Quando scrivete gli scripts, usate //comments per annotarvi cio che lo script è in grado di fare. Vi aiuterà per una migliore oganizzazione nella vostra configurazione e se volete dare i vostri scripts ad altre persone, renderà piö chiaro cio che fa. Quake III non eseguirà nulla dio cio che è preceduto dalle doppie backslashes (//).
Esempio di (//) doppie backslashes:
[code]//tasti funzione
bind F1 "ui_selectteam" //Visualizza l'interfaccia di selezione team
bind F2 "ui_selectgear" //Visualizza l'interfaccia armi e equipaggiamento
bind F3 "ui_radio" //Visualizza il radio menu
bind F3 "toggle cg_drawFPS" //Visualizza il Frames per Second
bind F4 "toggle cg_drawTimer" //Visualizza il timer
bind F5 "toggle cg_thirdperson" //Visualizza il modello in terza persona
bind F6 "toggle cg_drawhands" //Visualizza l'arma
bind F11 "screenshot" //Scatta uno screenshot
[/code]
Puoi anche utilizzare il comando "echo" per visualizzare durante il gioco degli auto-messaggi quando lo script è attivato. Discuteremo di cio piö tardi, ma puoi andare a vedere nella sezione esempi e osservare gli scripts di "zoom toggle" e di "demo recording" per vedere cos'è un auto-messaggio che do a me stesso quando lo script è attivato.
Binds di base
Bindare un tasto per compiere una sola azione e il passo piö semplice per iniziare. Partiremo con il bind "x" per selezionare lo SPAS12 (weapon 4) . La sintassi è
[code]bind [key] "[comand]"[/code]
Quindi se vogliamo il tasto X come bind per lo SPAS12 , sostituiamo X per [key] e "weapon 7" per [command] . Questo ci da :
[code]bind x "weapon 7" //Select SPAS12.[/code]
Questo è stato abbastanza semplice , andiamo avanti .
Bind Multipli
Possiamo anche bindare un tasto per fare eseguire molteplici comandi. Si ricorda che Quake III esegue i comandi nell'ordine in cui vengono specificati percio fate attenzione. Per esempio , bindiamo un tasto per selezionare l'arma migliore tra SPAS12 (weapon 4) e il G36 (weapon 9) . La sintassi è :
[code]bind [key] "[command 1]"; [command 2] " // I commenti vanno qui[/code]
Bisogna separare i comandi con il punto e virgola (;) cosi che Quake possa riconoscere dove ogni comando inizia e si conclude. Proviamo ad usare il tasto "X" come [key],weapon 4 come [command 1], e weapon 9 come [command 2]. Il risultato dovrebbe essere:
[code]bind x "weapon 4; weapon 9" //Seleziona le armi migliori SPAS12 e G36[/code]
Quando premi "x" , il bind seleziona l'arma primaria (esempio weapon 4), poi immediatamente l'arma secondaria (esempio weapon 9). In effetti, se si disponesse di entrambe le armi nel proprio inventario, il bind selezionerebbe l'ultima della sequenza.
Se si ha solo una delle armi essa sarà l'unica trovata, pertanto verrà selezionata.
Data la possibilità di scegliere tra i due, scriviamo per primo "weapon 4" perchè si è deciso di avere come ultima arma il G36.
E' possibile scrivere sotto forma di stringa un'insieme di comandi perchè siano eseguiti tutti assieme.
Questo bind, per esempio, rimuove dalla visuale tutte le cose fastidiose (esempio icone, armi, proiettili rimasti etc), fà uno screenshot e fà ritornare l'HUD com'era prima.
[code]bind F11 "cg_draw2d 0;cg_drawhands 0; wait; wait; wait; screenshot; toggle cg_draw2d; toggle cg_drawhands"[/code]
(Si provi il bind per vedere il suo funzionamento).
Script Ricorsivi
Invece di selezionare l'arma migliore, cosa facciamo se vogliamo switchare tra due armi cine l'UMP45 e l'GM4 o rendere possibile lo zoom a 3x o 6x? Per far cio è richiesto uno script che chiameremo script ricorsivo. Per ricorsivo si intende che è possibile scorrere lo script stesso, un numero infinito di volte. L'obbiettivo è quello di eseguire una serie di comandi quando viene premuto il tasto bindato, quindi ribindare il tasto per l'esecuzione di un'altra serie di comandi per la pressione successiva.
Il procedimento è:
Dare un nome e una breve descrizione allo script: è possibile dare un nome identificativo e una descrizione allo script che si sta creando anteponendo un "//" (doppio backslah). In questo modo il motore di Quake III non interpreta la riga come un comando vero e proprio, ma come un commento. Dare un nome “significativo†sarà di aiuto in futuro (ad esempio) per ritrovare piö velocemente lo script all'interno del file oppure, nel caso si decida di condividere lo script con altri, potrà intuitivamente far capire loro a cosa serve (es: // 3x – 6x Zoom Toggle)
Scrivere ogni singola operazione dello script (step) su una riga a se stante:
[code]set [scriptline(n)] "[command]; set [nextscriptline] vstr [scriptline(n+1)]; echo [comment]" [/code]
La keyowrd 'set' comunica al Quake III engine che si sta per definire una riga conenente una sequenza di comandi che verranno raggruppati e identificati con il nome [scriptline]
[list][scriptline(n)] – è il nome dell'iterazione (o 'step', passo) all'interno dello script. Se si ha a che fare con un cospicuo numero di step è buona norma iniziare a numerare da 1 ed incrementare via via. Se lo script sarà composto da pochi step, allora possiamo utilizzare anche nomi piö semplici.
[/list]
[list][command] – è il comando (o gruppo di comandi, separati da un “;†come visto nella sezione relativa ai bind multipli) che deve essere eseguito da questo step.
[/list]
[list]set [nextscriptline] vstr [scriptline(n+1)]– esegue il bind tra la variabile dinamica [nextscriptline] e il contenuto dello step identificato da [nextscriptline(n+1)]. In poche parole fa si che la prossima volta che verrà attivato il trigger associato a [nextscriptline], verrà eseguito [nextscriptline(n+1)]. Piö avanti viene chiarito meglio questo concetto.
[/list]
[list]echo [comment] – una stringa che verrà visualizzata come messaggio all'interno del gioco ogni volta che lo step verrà attivato.[/list]
Assegnare ad una variabile dinamica il primo “step†da eseguire nella sequenza: una volta completata la scrittura degli step, utilizzare set [nextscriptline] vstr [scriptline(n+1)] in maniera tale da bindare la variabile [nextscriptline] allo step identificato da [scriptline(n+1)]. In questo modo, la prima volta che verrà “attivata†[scriptline], essa non farà altro che eseguire lo step [scriptline(n+1)], che equivarrà alla PRIMA serie di operazioni che vogliamo come risultato. La variabile si dice dinamica perché lo script opera in modo da mutare il suo valore.
Fare il “bind†tra un tasto e la variabile dinamica: infine deve essere creata l'associazione tra un tasto e la variabile dinamica che fa da referente ai vari step. In questo modo, lo script diventa utilizzabile a tutti gli effetti.
[code]bind b "vstr nextzoomtoggle"[/code]
Di seguito un esempio di script per “switchare†da uno zoom 3x – 6x :
[img]http://urtmanual.hsoclan.co.uk/images/c/c6/Scripting.jpg[/img]
[list]Punto 1: nome e commento dello script. Scrivo “Punto†invece che “Step†in quanto questa seconda dicitura potrebbe essere fuorviante.[/list]
[list]Punto 2: definisco i due “step†(intese come operazioni atomiche dello script) principali: uno che imposta lo zoom a 6X ed uno che lo imposta a 3X;
[/list]
[list]Punto 3: definisco la variabile dinamica e le assegno il primo “step†da eseguire;[/list]
[list]Punto 4: faccio il bind tra un tasto e la variabile dinamica (per utilizzarla effettivamente)[/list]
Ma come funziona?
Analizziamo il tutto partendo dal basso: premo “b†e mi viene eseguito cio che trovo associato a nextzoomtoggle, che inizialmente è zoomtoggle1. Quindi come risultato ho che: lo zoom viene impostato a 6X (cg_zoomfov 15) e imposto il mouse “sensibileâ€, in maniera da velocizzare gli spostamenti. Successivamente alla variabile nextzoomtoggle viene associato (in maniera identica a come fatto al Punto 3) lo “step†identificato da zoomtoggle2, ed infine a video apparirà la scritta “6X magnificationâ€.
A questo punto premo nuovamente “bâ€. Adesso il valore di nextzoomtoggle non è piö zoomtoggle1, ma zoomtoggle2 quindi, conseguentemente, verranno eseguiti i comandi identificati da questo step, portando zoom e sensibilità ai valori definiti per il 3X. Questo step si occupa di “ripristinare†il valore di nextzoomtoggle a zoomtoggle1, in modo tale che alla prossima pressione di “bâ€, sia quest'ultimo step ad essere eseguito.
Queste sono le basi dello scripting ricorsivo con le quali creare catene piö complesse.
[/blockquote]
L'ho tradotto dal manuale ufficiale di Urban Terror 4.1
AGGIORNATO
(traduzione fatta dal clan aCe)