Ultima modifica da un moderatore:
Indice:
○ Introduzione;
○ Cos'è una funzione;
○ A cosa serve creare una funzione per le quest;
○ Preparazione al lavoro;
○ Primo Passo;
○ Secondo Passo;
○ Terzo Passo;
○ Testiamo insieme;
○ Ricapitolando;
○ Riconoscimenti.
_____________________________________________
Introduzione
Salve, con questa guida vi insegnerò a creare una nuova funzione utilizzabile per creare le nostre quest. Il procedimento è abbastanza semplice, ma cerchiamo di capire nel dettaglio a cosa ci stiamo riferendo.
_____________________________________________
Cos'è una funzione
Una funzione è una "relazione" (non saprei come altrimenti definirla) che ad un valore di un insieme restituisce un valore di un'altra funzione. Per fare un esempio, la funzione "pc.give_exp(x)" restituisce un dato valore ai file di gioco che corrispondono all'esperienza "x" al personaggio che sta eseguendo lo script.
Potete trovare tutte le funzioni del file game e del questlib nel file "quest_functions" nella cartella "../game/share/locale/location/quest/".
_____________________________________________
A cosa serve creare una funzione per le quest
Creare una nuova funzione può essere utile a diversi fini: principalmente lo scopo è quello di semplificare i nostri script. Questo perché, a mio parere (e di molti altri), per diventare dei bravi Coder, una cosa fondamentale è l'ordine.
_____________________________________________
Preparazione al lavoro
Per quanto riguarda l'editor, consiglio Notepad++ in quanto è possibile, tramite un pannello, impostare un linguaggio di lettura (nel nostro caso LUA) che aiuta molto a tenere ordine nello script evidenziando le seguenze e macro-seguenze, commenti al testo, comandi registrati, etc.
I file che dobbiamo modificare per creare una nuova funzione e poterla utilizzare sono:
• questlib.lua;
• quest_functions;
• inforge.quest[¹].
[¹]: per testare una "funzione esempio" creata per questa guida, creeremo un file chiamato "inforge.quest" e lo posizioneremo nella directory ./quest/ della nostra macchina, la stessa di origine degli altri 2 file.
_____________________________________________
Primo Passo
Il primo passo è preceduto da un pre-primo passo (): scegliere il nome della nostra funzione, per questa guida io scelgo "nabbizza()".
Fatto il pre-primo passo, passiamo all'azione vera e propria.
Apriamo il file "questlib.lua" in "../game/share/locale/location/quest/" e facciamoci un po' di spazio tra gli script facendo ben attenzione a non toccarli, di soltio conviene mettersi a scriptare all'inizio o alla fine del file. Per comodità, io metto il segno del testo all'inizio, prima della prima lettera e con ENTER vado giù 5 o 6 righe in modo da avere lo spazio per lavorare e non rischiare di intoccare le altre funzioni.
Per indicare che ciò che andremo a scrivere sono le specifiche della nostra funzione scriviamo:
Facendo ciò abbiamo aperto una prima seguenza (function) che terremo a mente per chiudere poi lo script con i rispettivi comandi (end).
_____________________________________________
Secondo Passo
Ipotiziamo di voler far sì che la funzione "nabbizza()" stampi il nome del nostro personaggio preceduto da "Lo sai che " e che dopo il nome ci sia " è nabbo?". In tal modo, se il mio personaggio si chiamasse "zeiph", ed in uno script eseguissi "nabbizza()", il risultato sarebbe che mi verrebbe stampato «Lo sai che zeiph è nabbo?».
La cosa è semplice, con la parola "return [arg]" (dove "arg" è l'oggetto risultato della funzione), noi facciamo in modo che la nostra funzione restituisca qualunque cosa vogliamo.
Nel nostro caso è ancora più semplice poiché ci basta utilizzare la funzione say() e verrà eseguita come risultato della funzione nabbizza(); scriviamo:
Salviamo e chiudiamo.
_____________________________________________
Terzo Passo
Creata la nostra funzione, adesso dobbiamo renderla utilizzabile nei nostri script, per far ciò dobbiamo aggiungerla nel file "quest_functions" (questo file viene chiamato in causa dagli script utilizzati per compilare i fie ".quest").
Basta aprire il file, aggiungere una nuova riga e scrivere
_____________________________________________
Testiamo insieme
Con questo abbiamo finito la procedura per creare una nuova funzione; adesso proviamola!
Creiamo un file nella directory "../quest" e nominiamolo "inforge.quest"
Scriviamo come di routine:
Con questo codice diciamo:
Missione inforge inizia seguenza,
Stato missione start (lo status iniziale di tutte le quest) inizia,
Quando chiunque (non essendo specificato) effetua il login inizia.
È il punto adatto per testare la nostra funzione, quindi scriviamo:
Infine chiudiamo tutte le seguenze iniziate (quest, state e when) utilizzando 3 end, salviamo il file, lo compiliamo (di solito basta eseguire il file "./quest/qc [arg]").
Chiudiamo e riapriamo i processi dei file di gioco, logghiamo e leggeremo «Lo sai che "il mio personaggo" e' nabbo?».
_____________________________________________
Ricapitolando
Riassumendo ecco il codice da aggiungere in "../game/share/locale/?zone?/quest/questlib.lua" per creare la funzione nabbizza():
Dopodichè aggiungiamo la funzione nel file "../game/share/locale/?zone?/quest/quest_functions":
Infine per testarla creiamo un nuovo file "../game/share/locale/?zone?/quest/inforge.quest" con quanto segue, lo salviamo, lo compiliamo e riavviamo i processi del gioco per testarla:
_____________________________________________
Riconoscimenti
Questa guida è stata interamente creata da me (non sono a casa e non potendo far nulla ho deciso di perdere un po' di tempo così) e non è stata copiata. Siete liberi di usarla e copiarla dove vi pare, sarebbe gradito che almeno citaste la fonte.
Grazie, spero che sia utile a molti,
Erich, DragoniaMetin2 Team.
○ Introduzione;
○ Cos'è una funzione;
○ A cosa serve creare una funzione per le quest;
○ Preparazione al lavoro;
○ Primo Passo;
○ Secondo Passo;
○ Terzo Passo;
○ Testiamo insieme;
○ Ricapitolando;
○ Riconoscimenti.
_____________________________________________
Introduzione
Salve, con questa guida vi insegnerò a creare una nuova funzione utilizzabile per creare le nostre quest. Il procedimento è abbastanza semplice, ma cerchiamo di capire nel dettaglio a cosa ci stiamo riferendo.
_____________________________________________
Cos'è una funzione
Una funzione è una "relazione" (non saprei come altrimenti definirla) che ad un valore di un insieme restituisce un valore di un'altra funzione. Per fare un esempio, la funzione "pc.give_exp(x)" restituisce un dato valore ai file di gioco che corrispondono all'esperienza "x" al personaggio che sta eseguendo lo script.
Potete trovare tutte le funzioni del file game e del questlib nel file "quest_functions" nella cartella "../game/share/locale/location/quest/".
_____________________________________________
A cosa serve creare una funzione per le quest
Creare una nuova funzione può essere utile a diversi fini: principalmente lo scopo è quello di semplificare i nostri script. Questo perché, a mio parere (e di molti altri), per diventare dei bravi Coder, una cosa fondamentale è l'ordine.
_____________________________________________
Preparazione al lavoro
Per quanto riguarda l'editor, consiglio Notepad++ in quanto è possibile, tramite un pannello, impostare un linguaggio di lettura (nel nostro caso LUA) che aiuta molto a tenere ordine nello script evidenziando le seguenze e macro-seguenze, commenti al testo, comandi registrati, etc.
I file che dobbiamo modificare per creare una nuova funzione e poterla utilizzare sono:
• questlib.lua;
• quest_functions;
• inforge.quest[¹].
[¹]: per testare una "funzione esempio" creata per questa guida, creeremo un file chiamato "inforge.quest" e lo posizioneremo nella directory ./quest/ della nostra macchina, la stessa di origine degli altri 2 file.
_____________________________________________
Primo Passo
Il primo passo è preceduto da un pre-primo passo (): scegliere il nome della nostra funzione, per questa guida io scelgo "nabbizza()".
Fatto il pre-primo passo, passiamo all'azione vera e propria.
Apriamo il file "questlib.lua" in "../game/share/locale/location/quest/" e facciamoci un po' di spazio tra gli script facendo ben attenzione a non toccarli, di soltio conviene mettersi a scriptare all'inizio o alla fine del file. Per comodità, io metto il segno del testo all'inizio, prima della prima lettera e con ENTER vado giù 5 o 6 righe in modo da avere lo spazio per lavorare e non rischiare di intoccare le altre funzioni.
Per indicare che ciò che andremo a scrivere sono le specifiche della nostra funzione scriviamo:
Codice:
function nabbizza()
Facendo ciò abbiamo aperto una prima seguenza (function) che terremo a mente per chiudere poi lo script con i rispettivi comandi (end).
_____________________________________________
Secondo Passo
Ipotiziamo di voler far sì che la funzione "nabbizza()" stampi il nome del nostro personaggio preceduto da "Lo sai che " e che dopo il nome ci sia " è nabbo?". In tal modo, se il mio personaggio si chiamasse "zeiph", ed in uno script eseguissi "nabbizza()", il risultato sarebbe che mi verrebbe stampato «Lo sai che zeiph è nabbo?».
La cosa è semplice, con la parola "return [arg]" (dove "arg" è l'oggetto risultato della funzione), noi facciamo in modo che la nostra funzione restituisca qualunque cosa vogliamo.
Nel nostro caso è ancora più semplice poiché ci basta utilizzare la funzione say() e verrà eseguita come risultato della funzione nabbizza(); scriviamo:
Codice:
function nabbizza()
local nome_personaggio = pc.name()
say("Lo sai che "..nome_personaggio.." e' nabbo?")
end
_____________________________________________
Terzo Passo
Creata la nostra funzione, adesso dobbiamo renderla utilizzabile nei nostri script, per far ciò dobbiamo aggiungerla nel file "quest_functions" (questo file viene chiamato in causa dagli script utilizzati per compilare i fie ".quest").
Basta aprire il file, aggiungere una nuova riga e scrivere
Codice:
nabbizza()
_____________________________________________
Testiamo insieme
Con questo abbiamo finito la procedura per creare una nuova funzione; adesso proviamola!
Creiamo un file nella directory "../quest" e nominiamolo "inforge.quest"
Scriviamo come di routine:
Codice:
quest [/COLOR][COLOR=#B22222]inforge [/COLOR][COLOR=#b22222]begin
state start begin
when login begin[/COLOR][COLOR=#b22222]
[/COLOR]
Con questo codice diciamo:
Missione inforge inizia seguenza,
Stato missione start (lo status iniziale di tutte le quest) inizia,
Quando chiunque (non essendo specificato) effetua il login inizia.
È il punto adatto per testare la nostra funzione, quindi scriviamo:
Codice:
nabbizza()
Chiudiamo e riapriamo i processi dei file di gioco, logghiamo e leggeremo «Lo sai che "il mio personaggo" e' nabbo?».
_____________________________________________
Ricapitolando
Riassumendo ecco il codice da aggiungere in "../game/share/locale/?zone?/quest/questlib.lua" per creare la funzione nabbizza():
Codice:
function nabbizza()
local nome_personaggio = pc.name()
say("Lo sai che "..nome_personaggio.." e' nabbo?")
end
Codice:
nabbizza()
Codice:
quest[/COLOR] [COLOR=#B22222]inforge [/COLOR][COLOR=#b22222]begin
state start begin
when login begin
nabbizza()
end
end
end[/COLOR]
_____________________________________________
Riconoscimenti
Questa guida è stata interamente creata da me (non sono a casa e non potendo far nulla ho deciso di perdere un po' di tempo così) e non è stata copiata. Siete liberi di usarla e copiarla dove vi pare, sarebbe gradito che almeno citaste la fonte.
Grazie, spero che sia utile a molti,
Erich, DragoniaMetin2 Team.