1. Il nuovo Inforge! Stai usando la nuova versione di Inforge. Scopri le novità sul comunicato ufficiale.

[GUIDA]ALLE BASI DEL LUA ( 1000° POST)

Discussione in 'Metin2 Help Modding' iniziata da lyonel, 30 Luglio 2012.

Status Discussione:
Chiusa ad ulteriori risposte.
  1. lyonel

    lyonel Guest

    Premessa:
    Rilascio questa guida per iniziare a conoscere il linguaggio chiamato ".lua"; voi direte old e su questo non posso darvi torto ,perchè di fatto ci sono guide riguardanti il lua ,ma solo 2 sono comprensibili alla gente che si è appena appassionata al linguaggio o al mondo di metin2.
    Premesso questo e le mie scuse per gli errori ortogrammali passati,presenti e futuri in quest guida.

    Allora,il linguaggio lua nel mondo di metin si usa sopratuto per fare quest,dialoghi,e altre cose...
    io provero a spiegare il linguaggio in meno parole possibili =)


    Per Quanto Riguarda Dialoghi NPC.

    Scaricare e Aprire NotePad++

    Ogni conversazzione inizia con un titolo che si mette con il comando

    say_title ("Titolo")

    dopo il titolo viene immesso un testo che si mette con il comando

    say ("Testo")

    Questo è ciò che bisogna sapere per iniziare il lua =p

    Ora Decidiamo che il nostro npc deve venderci qualcosa e quindi come titolo usiamo una cosa banale come :

    say_title ("Venditore")

    come facciamo a sapere che lui ci vuole vendere qualcosa ?? ce lo deve dire; allora usiamo i "say" e strutturiamo il primo pezzo di dialogo

    Say_title ("Venditore")
    say ("Ciao Amico")
    say ("Ti stai avventurando sempre di più ")
    say ("Nel meraviglioso mondo di metin!")
    say ("Presto gli animali selvatici sarannò più forti")
    say ("Vorresti Comprare Delle Pozzioni Per Sopravivere?")


    Ecco abbiamo struturato il discorso ora che ci siamo fatti fare una domanda, dobbiamo rispondere ;e per fare ciò si creano delle variabili come si e no. Non staro qui a parlare molto
    perchè e meglio che vi faccio vedere prima il comando e poi spiegarvelo. La Varriabile si crea cosi:

    local variabile = select ("si" , "no" )

    ora il comando e quello sopra elencato ma non sara sempre cosi io ora ho ciamato la variabile "variabile" ma voi potrete chiamarla pure in un altro modo tipo

    local siono = select ( "si" , "ciao")

    come avete visto non ho cambiato solo il nome variabile ma anche le opzioni che voi potrete modificare a vostro piacimento :)

    fin qua e semplice ametetelo voi che non avete mai capito il lua non comenterete ma secondo me questa guida vi sara stata utile =) detto ciò continuiamo

    ora io gli fo creare delle opzioni ma dentro quelle opzioni dovro pur far fare qualcosa o no?
    certo che si allora si fa cosi

    local siono = select ( "si" , "no" )

    if siono == 1 then

    ecco qua xd che siamo arrivati alla parte più difficile per chi inizia la sua aventura
    nel linguaggio lua
    ogni variabile si distingue con il nome visto prima che in questo caso è "siono"
    ma come fa il game a distinguere il si e il no? non puo se non glielo diciamo noi allora
    si usano gli " if " e gli "elseif" che ora andremo a vedere
    ora prima di vedere "elseif" che è la stessa cosa di un "if" cambia solo la posizione e meglio spiegare la stringa soprastante

    if = (in inglese) se
    siono = nome variabbile
    ==
    1 then = sarebbe la prima opzione che si indica con il numero 1

    if si usa solo alla prima opzione di una variabile
    mentre elseif si usa per le altre =p

    quindi riassunto script .

    Say_title ("Venditore")
    say ("Ciao Amico")
    say ("Ti stai avventurando sempre di più ")
    say ("Nel meraviglioso mondo di metin!")
    say ("Presto gli animali selvatici sarannò più forti")
    say ("Vorresti Comprare Delle Pozzioni Per Sopravivere?")

    local siono = select ( "si" , "no" )
    if siono == 1 then

    pc.giveitem2 (value item , numero item)
    if pc . gold >= 500000 then
    pc . changegold ( - 500000 )
    return
    end

    elseif siono == 2 then
    return
    end



    a ecco qua questo e tutto un npc cembra lungo ma è una cosa che se imparata si fa in 30 secondi
    e non per dire =)
    ma io vi o spiegato fino al "if siono == 1 then"
    cosa sono tutti quei comandi sotto??
    semplice questo

    pc.giveitem2 (value item , numero item)

    serve a far ottenere a un player l'item e il numero immessi tipo se voglio che il player ottenga una velenosa +9 scrivero

    pc.giveitem2 (189, 1)
    ovvero value spada velenosa +9 e quantità

    ma non vogliamo dargliela gratis allora si usano questi comandi


    if pc . gold >= 500000 then
    pc . changegold ( - 500000 )


    che sono la quantita yang

    if pc . gold >= 500000 then

    cioè 500k

    e il comando che toglie al player la quantita yang scritta

    pc . changegold ( - 500000 )




    deto ciò che è riimasto solo

    return
    end

    elseif siono == 2 then
    return
    end

    "
    return
    end
    "
    si spiegano da soli sono la parte che chiudono una opzione di una variabile in questo caso del si
    facendogli vendere ecc..
    e chiudere script

    mentre

    elseif siono == 2 then
    retrun
    end


    e semplicemente la chiusura dello script
    visto che premendo no si rifiuta
    si scrive solo return end

    ora salvate lo script con il nome " change_empire.start.0.script "
    creare una cartella e rinominarla nel value del npc che vogliate
    dentro di essa creare una cartella chiamata " chat "
    e dentro " chat " inserire il file salvato
    ora riaprite note pad++ e scrivete "Nome Che Volete Dare Al Neg " con le virgolette e salvate con
    il nome " change_empire.start.0.arg "
    e in file creare un altro documento di testo ma lasciarlo vuoto e salvarlo con il nome " change_empire.start.0.when "

    quindi voi su desckstop avrete 1 cartella chiamata con il valu npc ( io uso 9003 bottegaia)
    dentro la cartella chat e dentro chat i 3 file

    9003 > chat > i 3 file fatti
    sopra =/

    =) ho detto tutto ciò che serviva per imparare la base di uno script forse non mi saro spiegato al massimo come detto in cima io non sono un genio del lua ma spero che molti di voi che leggendo la guida abbiano imparato qualcosa e spero che voi non premiate subito la X in alto a destra ma comentiate xd non so come dire

    PS:so gia che almeno qualcuno verra a criticare ma ameno io ho fatto ciò che ritenevo gusto =)
     
    #1 lyonel, 30 Luglio 2012
    Ultima modifica di un moderatore: 30 Luglio 2012
    A Dante909, xNaTex, || A l i 3 N © || e 1 altro utente piace questo messaggio.
  2. CrazyOutPut

    CrazyOutPut Utente Silver
    Utente Silver

    :
    17 Febbraio 2010
    Messaggi:
    602
    Mi Piace:
    62
    Molto utile per chi lo sconosce, bravo.
    Pero la continuerei aggiungendo altri comandi, tipo: pc . remove_item, pc . count_item, say_item, affect.remove_collect, wait (), pc.get_level, horse . ride, affect.add_collect, d . notice e via dicendo... la miglioreresti ulteriormente.
     
  3. .Eternal.Coding.

    .Eternal.Coding. Utente Gold
    Utente Gold

    :
    19 Febbraio 2011
    Messaggi:
    4.268
    Mi Piace:
    436
    Molto utile ;) Anche se non mi interessa il LUA +1 e like D:
     
  4. || A l i 3 N © ||

    || A l i 3 N © || Utente Gold
    Utente Gold

    :
    25 Ottobre 2011
    Messaggi:
    1.378
    Mi Piace:
    490
    guida altamente basilare, non male per i principianti... Like e +1 (il +1 te lo do perchè ci sn gia guide cosi, ma non cosi ordinate ;))
     
  5. LF95

    LF95 Utente Gold
    Utente Gold

    :
    12 Febbraio 2010
    Messaggi:
    2.065
    Mi Piace:
    1.222
    Premessa: questo forum vieta gli insulti, pertanto ogni volta che vedi due asterischi vicini (**), usa la tua immaginazione per sostituirli agli insulti che meno ti garbano.

    Partiamo dal titolo:
    [GUIDA]ALLE BASI DEL LUA ( 1000° POST)
    Lasciamo perdere il fatto che hai 503 messaggi... Ma ** ** ** ** ** **, scrivere "guida alle basi del lua di Metin2" ti faceva schifo? C'è già troppa disinformazione in giro, con gente che crede che Lua == Metin2.

    Poi, ;e per fare ciò si creano delle variabili come si e no. Ma almeno le rileggi le ** che scrivi?

    Ancora, "elseif" che è la stessa cosa di un "if" cambia solo la posizione e meglio spiegare la stringa soprastante. NO, grandissimo **, l'elseif non è la stessa cosa di un if. Impara a "programmare" prima di fare le guide.

    a ecco qua questo e tutto un npc cembra lungo ma è una cosa che se imparata si fa in 30 secondi Davvero, io son dell'idea che tu non legga affatto ciò che scrivi.

    fin qua e semplice ametetelo voi che non avete mai capito il lua non comenterete ma secondo me questa guida vi sara stata utile =) detto ciò continuiamo

    ora io gli fo creare delle opzioni ma dentro quelle opzioni dovro pur far fare qualcosa o no?

    Sisi, utilissima, come un calcio nelle balle.

     
    A FaMy, Spikelino, .Eternal.Coding. e 3 altri utenti piace questo elemento.
  6. Ryosaku

    Ryosaku Utente Gold
    Utente Gold

    :
    19 Febbraio 2010
    Messaggi:
    1.709
    Mi Piace:
    903
    In questa "guida" dici tutto e niente. Per esempio se io voglio scrivere una quest come inizio? Con un say_title ed un say?
    Prima devi dichiarare il nome della quest, dichiari lo stato di start, poi dichiari l'npc o chi per esso che esegue l'azione, e poi viene la parte che hai spiegato tu.
    In ogni caso questa non è una guida dato che con un say_title, un say ed un select non crei di certo una quest.
    Se proprio devi creare una guida, creala con una base.
    E non uscire con la scusa "ho detto che è solo una base", ma una base senza un inizio corretto non si regge in piedi senza contare che non basta un say per fare una vera quest.

    - - - Updated - - -

    Ah dimenticavo, sezione errata :|
     
    A Daruma piace questo elemento.
  7. xNaTex

    xNaTex Utente Bronze
    Utente Bronze

    :
    12 Maggio 2012
    Messaggi:
    81
    Mi Piace:
    2
    Bella guida, semplice per chi di LUA ne sa poco o niente, magari aggiungendo qualche altra opzione con la spigazione vicino diventa miglione :D Like
     
  8. Ununoctio

    Ununoctio Guest

    Questo non è lua, tu non spieghi niente in questa guida sul lua.
    Inoltre il lua non si limita alle 4 funzioni di metin2. ma è un linguaggio vero e proprio. I say, ecc sono FUNZIONI scritte in lua. Consiglio a chi vuole programmare seriamente di evitare questa guida.
     
    #8 Ununoctio, 30 Luglio 2012
    Ultima modifica di un moderatore: 30 Luglio 2012
  9. CrazyOutPut

    CrazyOutPut Utente Silver
    Utente Silver

    :
    17 Febbraio 2010
    Messaggi:
    602
    Mi Piace:
    62
    1. Bhe... il lua di metin ha un lua tutto particolare, non si mette in dubbio ma riguardo la sezione si intuisce.
    2. lol questa bella xD non ci ho fatto caso sinceramente "Poi, ;e per fare ciò si creano delle variabili come si e no. "
    3. non mettiamo in dubbio che un elseif sia uguale ad un if ù.ù.

    1. Lui immagino abbiamo scritto come iniziare un .script non una quest, che non richiede:
    quest nomequest begin
    state start begin


    --BOSSE
    when value.use/chat ecc.. begin

    2. si questo è vero un say_title, un say ed un select non possono creare una quest ma già danno un input per lo meno.

    3. A me sembra una base per iniziare o_O poi non so tu

    Linkami una guida dove impasta tutto ciò che riguarda un linguaggio di programmazione in una sola guida.

    N.B chi vuole iniziare a programmare "Seriamente" intanto si da un inizio con questa che è propio la base (con la manca di inizio quest come diceva Ryo), poi si cera altre sul web come si fa con ogni linguaggio...

    Io la penso cosi.

    Comunque riquoto quello che avevo scritto

     
    A || A l i 3 N © || piace questo elemento.
  10. Ununoctio

    Ununoctio Guest

    Mi spieghi che ca**o significa?
     
Sto caricando...
Status Discussione:
Chiusa ad ulteriori risposte.