Thread obsoleto Basi per Scriptare in Lua

Stato
Discussione chiusa ad ulteriori risposte.

AtlanticStaff

Utente Medio
Autore del topic
19 Marzo 2011
115
0
Miglior risposta
0
Salve comunity di sciax2. Oggi girando per la comunity ho notato che molti non conoscono il concetto base del Lua.
Questa guida avrà come unico scopo di dare delle basi agli utenti volenteriosi che si sono stufati di prendere cose già fatte dal web e iniziarsi a fare da se partendo dalle piccole cose.
Setto la Guida in vari Step.

1)Premesse
2)Introduzione.
3)Concetti Base.
4)Analisi di uno script.

1) Premesse:
Premetto che la guida non vi farà diventare Scripter di Lua, ma vi toglierà quei dubbi e vi darà una base per iniziare a farvi da soli senza l'aiuto del web.
Premetto che accetto critiche costruttive, consigli su come modificare la guida a fine di renderla migliore e più dettagliata, etc...
Dopo queste piccole premesse continuiamo..

2) Introduzione:
Il linguaggio Lua è un Linguaggio non tuilizzato solo su Metin2.
Il Lua è un linguaggio abbastanza complesso ma nell'ambito di metin2 risulta semplificato dato che ci sono poche ma importanti cose da tener conto.
Il Lua viene usato su Metin2 generalmente per creare script, ovvero tutte quelle funzioni che troviamo quando andiamo a cliccare su un NPC presente in Game.

3) Concetti Base.

Adesso iniziamo ad entrare nel vivo della Guida.
Il Lua come possiamo vedere è diviso in 2 parti su Metin2, ovvero:
-Presenta una parte Quest.
-Presenta una parte Script.
Molti di noi avranno visto degli Script e per chi li vede per la prima volta, chiude o cambia pagina dato che sembra Arabo italianizzato.
Ci capita di vedere cose come:
local
else
elseif
if
input
etc...
Abbiamo sentito parlare di Variabili negli script e ci siamo spessi domandati ma che sono queste variabili? La variabile identifica una porzione di memoria destinata a contenere dei dati.
Ad una variabile viene assegnata un nome per identificarla.
Come facciamo a dichiarare una variabile?
Semplicissimo. Usiamo una parola prima citata, ovvero "local"
Quindi per asssenare una variabile facciamo:
local nomedellanostravariabile (naturalmente invece di mettere "nomedellanostravariabile metteremo un altro nome a nostro piacimento).
In questo caso local serve a dichiarare la nostra variabile e "nomedellanostravariabile" è la nostra variabile.
Continuiamo con i concetti base...
serve a fare 2 casi separati quando 2 azioni non possono essere eseguite nello stesso tempo
è la continuazione dell'if , quindi serve a continuare lo script
serve per indicare se scegliere una cosa oppure l'altra.Esempio scegliere se cliccare su "Si" , "No" in uno script.
ha la funzione per far scrivere in game un determinato comando o una determinata cosa.Esempio: scrivere in game il value di un mob e farlo spownare.
Altri comandi:
-say_title Sarebbe quella parte Gialla presente in uno script.
-say serve a far parlare un Npc.
- pc.give_item2 ( "value item" , quantita ) : da un item
- pc.give_item ( "value item" , quantita ) : rimuove 1 item
- pc.count_item ( "valueitem" ) : è una variabile che restituisce degli item
- chat ( "messaggio" ) : scrive nella chat visibile solo da 1 pg
- notice_all ( "messaggio" ) : scrive nella chat dei game master (GM)
- pc.get_empire() : variabile che ridà il regno di provenienza ad 1 pg
- pc.get_job() : altra variabile che restituisce la razza al pg
Naturalmente ci sono altri comandi e non sto ad elencarveli tutti altrimenti diventerebbe un casino, ma ne parleremo se questa guida avrà successo e faremo una aggiornamento alla guida.

4) Analisi di uno script.
In giornata ho fatto uno semplice script per far capire le basi di uno script.
Parliamo di un teleporter semplicissimo e analizziamolo:
say_title ( "Teleporter By AtlanticStaff " )
say ( "Welcome" )
say ( "Sono il teleporter creato per sciax2" )
say ( "Vuoi essere teleportato per dare prova della guida?" )
local lol = select ( "Si" , "No" )
if lol == 2 then
say ( "Ok rispetto la tua scelta." )
say ( "Ritorna quando sarai pronto" )
return
end
if lol == 1 then
say ( "Benissimo valoroso Guerriero" )
say ( "Hai scelto di provare la guida fatta per sciax2" )
say ( "Ti auguro tanta fortuna" )
say ( " e mi auguro che qualcuno abbia capito un tantino su come scriptare " )
local villagiz = select ( "Prova per sciax2" , "Annulla" )
if villagiz ==2 then
return
end
say ( "Verrai Teleportarto a breve. " )
say ( "Tieniti pronto utente di sciax2 " )
wait ( )
pc . warp ( 138500 , 234900 )
return
end
Questo sopra citato è uno script per un teleporter che ti porta nelle coordinate scritte. Iniziamo con l'analisi approfondita:
say_title ( "Teleporter By AtlanticStaff " )
con il comando say_title la scritta dentro le parentesi si vedranno in Giallo.
say ( " Welcome " )
say ( "Sono il teleporter creato per sciax2" )
say ( "Vuoi essere teleportato per dare prova della guida?" )
Tutto ciò scritto tra parentesi e virgolette sarà il parlato di un npc.

Dopo l'ultimo say abbiamo fatto una domanda e quindi ci troviamo d'innanzi ad una scelta. Cliccare su "Si" o "No". Come fare?
local lol = select ( "Si" ,"No" )
"local" server per assegnare una variabile e la nostra variabile è "lol"
if lol == 2 then
questa stringa dice: se clicchiamo la seconda opzione (ovvero No) decideremo di non utilizzare lo script ovvero il teleporter.
say ( "Ok rispetto la tua scelta." )
say ( "Ritorna quando sarai pronto" )
Dato che abbiamo cliccato su "No" abbiamo rifiutato di utilizzare quel Npc e metteremo un messaggio a nostro piacimento.
"return" e "end" stanno a significare il termine dello script, cioè far chiudere lo script.
then in questo caso sta per indicare la prima opzione (ovvero "Si" ).
say ( "Benissimo valoroso Guerriero" )
say ( "Hai scelto di provare la guida fatta per sciax2" )
say ( "Ti auguro tanta fortuna" )
say ( " e mi auguro che qualcuno abbia capito un tantino su come scriptare " )
come detto in precedenza tutto il testo dopo il say sarà il parlato dell'npc.
local villagiz
come detto prima "local" server per assegnare una variabile e villagix "sarebbe la nostra variabile"
( "Prova per sciax2" , "Annulla" )
sono le due nostre opzioni che visualizzeremo sull'npc.
if villagiz ==2 then
in questa stringa scegliamo la seconda opzione e quindi annulliamo il tutto.
say ( "Verrai Teleportarto a breve. " )
say ( "Tieniti pronto utente di sciax2 " )
wait ( )
pc . warp ( 138500 , 234900 )
return
end
se invece andiamo a cliccare su Prova sciax verremmo teleportato nelle coordinate specificate.
pc . warp server per teleportare un npc (naturalmente dobbiamo aggiungerci delle coordinate).

Abbiamo finito l'analisi approfondita di uno script basilare. Ho cercato di fare il possibile per rendere semplice questa guida.
Per far si che uno script funzioni dobbiamo creare questi file:
nomefile.start.0.script
Lo script che abbiamo analizzato va messo quiì
nomefile.start.0.arg
Quì va messo il titolo di inizio sul Npc. Esempio: "Teleporter By AtlanticStaff"
nomefile.start.0.when
nel file .when, possiamo decidere se l'npc deve essere apribile a tutti oppure solo a un gm.
Se deve essere aperto a tutti scriviamo nel file .when
return pc . is_gm ( )
Se invece vogliamo renderlo pubblico all'utenza lo lasciamo in bianco.
Dove metterli questi file? Creiamo una cartella con il value del nostro npc e dentro di essa creiamo un'altra cartella chiamata chat e dentro la cartella chat mettiamo i 3 file sopra citati.


Se la Guida verrà ben apprezzata sarò lieto di continuarla con aggiornamenti andando a fare qualcosina di più complesso e andare nello specifico in modo da far capire a tutti come usare gli altri comandi.
Spero che inizierete a scriptare a mi auguro di avervi aiutato minimamente con questa guida.
Distinti Saluti,
AtlanticStaff.
Fonte AtlanticStaff For Sciax2.it​
 
Ultima modifica:
Riferimento: Basi per Scriptare in Lua

Serviva come guida bravo per l'impegno ;)
 
Riferimento: Basi per Scriptare in Lua

bellissima guida continua così
 
Riferimento: Basi per Scriptare in Lua

4 commenti buoni su 4. Thanks!
Bhe preparerò una prossima guida con comandi avanzati per poi finire alla creazione di quest.
Se avete dubbi su qualcosa che non è chiaro sarò a vostra disposizione per chiarimenti.
Ricordo che la Guida non ha come scopo fare un Teleporter, ma di far capire le basi per scriptare per poi andare a fare NPC personalizzati.
 
Riferimento: Basi per Scriptare in Lua

La sintassi è molto semplice.

Ottima guida, complimenti.
 
Riferimento: Basi per Scriptare in Lua

Salve comunity di sciax2. Oggi girando per la comunity ho notato che molti non conoscono il concetto base del Lua.
Questa guida avrà come unico scopo di dare delle basi agli utenti volenteriosi che si sono stufati di prendere cose già fatte dal web e iniziarsi a fare da se partendo dalle piccole cose.
Setto la Guida in vari Step.

1)Premesse
2)Introduzione.
3)Concetti Base.
4)Analisi di uno script.

1) Premesse:
Premetto che la guida non vi farà diventare Scripter di Lua, ma vi toglierà quei dubbi e vi darà una base per iniziare a farvi da soli senza l'aiuto del web.
Premetto che accetto critiche costruttive, consigli su come modificare la guida a fine di renderla migliore e più dettagliata, etc...
Dopo queste piccole premesse continuiamo..

2) Introduzione:
Il linguaggio Lua è un Linguaggio non tuilizzato solo su Metin2.
Il Lua è un linguaggio abbastanza complesso ma nell'ambito di metin2 risulta semplificato dato che ci sono poche ma importanti cose da tener conto.
Il Lua viene usato su Metin2 generalmente per creare script, ovvero tutte quelle funzioni che troviamo quando andiamo a cliccare su un NPC presente in Game.

3) Concetti Base.

Adesso iniziamo ad entrare nel vivo della Guida.
Il Lua come possiamo vedere è diviso in 2 parti su Metin2, ovvero:
-Presenta una parte Quest.
-Presenta una parte Script.
Molti di noi avranno visto degli Script e per chi li vede per la prima volta, chiude o cambia pagina dato che sembra Arabo italianizzato.
Ci capita di vedere cose come:

Abbiamo sentito parlare di Variabili negli script e ci siamo spessi domandati ma che sono queste variabili? La variabile identifica una porzione di memoria destinata a contenere dei dati.
Ad una variabile viene assegnata un nome per identificarla.
Come facciamo a dichiarare una variabile?
Semplicissimo. Usiamo una parola prima citata, ovvero "local"
Quindi per asssenare una variabile facciamo:
local nomedellanostravariabile (naturalmente invece di mettere "nomedellanostravariabile metteremo un altro nome a nostro piacimento).
In questo caso local serve a dichiarare la nostra variabile e "nomedellanostravariabile" è la nostra variabile.
Continuiamo con i concetti base...
serve a fare 2 casi separati quando 2 azioni non possono essere eseguite nello stesso tempo
è la continuazione dell'if , quindi serve a continuare lo script
serve per indicare se scegliere una cosa oppure l'altra.Esempio scegliere se cliccare su "Si" , "No" in uno script.
ha la funzione per far scrivere in game un determinato comando o una determinata cosa.Esempio: scrivere in game il value di un mob e farlo spownare.
Altri comandi:
-say_title Sarebbe quella parte Gialla presente in uno script.
-say serve a far parlare un Npc.
- pc.give_item2 ( "value item" , quantita ) : da un item
- pc.give_item ( "value item" , quantita ) : rimuove 1 item
- pc.count_item ( "valueitem" ) : è una variabile che restituisce degli item
- chat ( "messaggio" ) : scrive nella chat visibile solo da 1 pg
- notice_all ( "messaggio" ) : scrive nella chat dei game master (GM)
- pc.get_empire() : variabile che ridà il regno di provenienza ad 1 pg
- pc.get_job() : altra variabile che restituisce la razza al pg
Naturalmente ci sono altri comandi e non sto ad elencarveli tutti altrimenti diventerebbe un casino, ma ne parleremo se questa guida avrà successo e faremo una aggiornamento alla guida.

4) Analisi di uno script.
In giornata ho fatto uno semplice script per far capire le basi di uno script.
Parliamo di un teleporter semplicissimo e analizziamolo:

Questo sopra citato è uno script per un teleporter che ti porta nelle coordinate scritte. Iniziamo con l'analisi approfondita:
con il comando say_title la scritta dentro le parentesi si vedranno in Giallo.
Tutto ciò scritto tra parentesi e virgolette sarà il parlato di un npc.

Dopo l'ultimo say abbiamo fatto una domanda e quindi ci troviamo d'innanzi ad una scelta. Cliccare su "Si" o "No". Come fare?
"local" server per assegnare una variabile e la nostra variabile è "lol"
questa stringa dice: se clicchiamo la seconda opzione (ovvero No) decideremo di non utilizzare lo script ovvero il teleporter.
Dato che abbiamo cliccato su "No" abbiamo rifiutato di utilizzare quel Npc e metteremo un messaggio a nostro piacimento.
"return" e "end" stanno a significare il termine dello script, cioè far chiudere lo script.
then in questo caso sta per indicare la prima opzione (ovvero "Si" ).
come detto in precedenza tutto il testo dopo il say sarà il parlato dell'npc.
come detto prima "local" server per assegnare una variabile e villagix "sarebbe la nostra variabile"
sono le due nostre opzioni che visualizzeremo sull'npc.
in questa stringa scegliamo la seconda opzione e quindi annulliamo il tutto.
se invece andiamo a cliccare su Prova sciax verremmo teleportato nelle coordinate specificate.
pc . warp server per teleportare un npc (naturalmente dobbiamo aggiungerci delle coordinate).

Abbiamo finito l'analisi approfondita di uno script basilare. Ho cercato di fare il possibile per rendere semplice questa guida.
Per far si che uno script funzioni dobbiamo creare questi file:
Lo script che abbiamo analizzato va messo quiì
Quì va messo il titolo di inizio sul Npc. Esempio: "Teleporter By AtlanticStaff"
nel file .when, possiamo decidere se l'npc deve essere apribile a tutti oppure solo a un gm.
Se deve essere aperto a tutti scriviamo nel file .when
Se invece vogliamo renderlo pubblico all'utenza lo lasciamo in bianco.
Dove metterli questi file? Creiamo una cartella con il value del nostro npc e dentro di essa creiamo un'altra cartella chiamata chat e dentro la cartella chat mettiamo i 3 file sopra citati.


Se la Guida verrà ben apprezzata sarò lieto di continuarla con aggiornamenti andando a fare qualcosina di più complesso e andare nello specifico in modo da far capire a tutti come usare gli altri comandi.
Spero che inizierete a scriptare a mi auguro di avervi aiutato minimamente con questa guida.
Distinti Saluti,
AtlanticStaff.
Fonte AtlanticStaff For Sciax2.it​

Hai fatto un errore, non ho mai visto uno script in lua, ma è palese in ogni linguaggio, hai terminato l'if con return ed End quindi hai cliccato annulla, avresti dovuto aggiungere un altro if == 1 se non sbaglio per permettere di teleportarti...
 
Riferimento: Basi per Scriptare in Lua

Hai fatto un errore, non ho mai visto uno script in lua, ma è palese in ogni linguaggio, hai terminato l'if con return ed End quindi hai cliccato annulla, avresti dovuto aggiungere un altro if == 1 se non sbaglio per permettere di teleportarti...

Hai aperto un thread di oltre 1 anno fa! Chiudo e avverto. ;)
 
Stato
Discussione chiusa ad ulteriori risposte.