[GUIA] PROGRAMACIÓN BÁSICA LUA

Topic created · 5 Mensajes · 2944 Visitas
  • **Buenas, primero me presento: Mi nombre es Álvaro Royo, soy Ingeniero de Software y os voy a enseñar de una vez a tener una idea BÁSICA de programación para hacer quests.
    (Esto no es un curso de quest, cursos de quests ya hay muchos.)
    COMENCEMOS:

    Lua: Es un lenguaje relativamente antiguo, bastante simple, usa pocos conectores como puntos y comas.
    Se usa sobre todo en la industria de análisis de funciones por eso lo usan muchas empresas de videojuegos para sus programas.

    Muchos de vosotros conocereis ya el Python, bien sabreis que el python es un lenguaje que asimila el sangrado. ¿sangrado?: ejemplo de codigo con sangrado y sin sangrado:
    CON SANGRADO:
    [php]
    if a == 1 then
    print "a es igual a 1"
    end[/php]

    SIN SANGRADO:
    [php]
    if a == 1 then
    print "a es igual a 1"
    end[/php]

    ¿Para que esta explicación?
    Solo para llegar a la conclusión de que en LUA no hay que respetar el sangrado.
    De todas formas siempre es aconsejable tener cierto orden en los códigos por si alguna vez necesitais realizar un programa extenso.

    También añado: Lua no es un lenguaje solo para metin, lo digo por la gente que piensa que es muy limitado. Lua realiza CASI todas las mismas funciones que un lenguaje como C++ o JAVA.

    Despues de una pequeña introducción sobre LUA, pasamos a la primera clase de programación:

    Variable es una palabra que almacena un valor, me explico:
    Yo puedo crear la variable texto y almacenar dentro de ella el valor "esto es un texto". Y acudir a ella en cualquier parte del código.
    Ejemplo (LUA):
    [php]locale texto = "esto es un texto"
    print texto
    # El programa en este caso imprimiría en pantalla: esto es un texto[/php]

    Como pudieron ver ya vimos algo de LUA que deben saber: las variables hay que presentarlas con el prefijo locale y el nombre de la variable, como en el ejemplo.
    Vale cualquier nombre pero no pueden poner espacios ni caracteres especiales como acentos, eñes, arrobas, asteristos etc... Para representar los espacios pueden usar barra baja: get_level

    TIPOS DE VARIABLES:
    Se pueden distinguir varios tipos de variables: string (texto), int (numero sin comas[ 1 ]), float (numero con comas [ 1,54 ]), boolean (verdadero o falso [ true - false ])
    Para las quest en LUA solo nos servirán estas.

    STRING: Tiene que ir entre "", por ejemplo "texto".
    NUMERICO, FLOAT O INT: Simplemente el número.
    BOOLEAN: Solo true o false ¡ En minusculas sin "" !

    Los tipos de variable son importantísimos ya que si no sabemos que tipo de variable nos devuelve una función, no sabremos con que podemos compararlo, ya que como es obvio no podemos preguntarlos si 1 es mayor que a...

    Con las variables numéricas se pueden realizar operaciones matematicas, veremos las más simples por ahora:
    SUMA: +
    RESTA: -
    MULTIPLICAR: *
    DIVIDIR: /

    [php]locale num = 5

    print num + 4 # Esto seria igual a 9
    print num - 3 # Esto seria igual a 2
    print num * 5 # Esto seria igual a 25
    print num / 5 # Esto seria igual a 1[/php]
    Por supuesto disponemos de potencias, raices, logaritmos etc... pero no creo que quieran resolver nada parecido en Metin2. De todas formas todo esta en Google.

    Lo segundo más importante que hay que saber en programación son las sentencias if y los bucles.

    La sentencia if que en español seria si: si a es igual 1 haz esto.
    En LUA el if tiene tres palabras: if, then y end

    if [lo que comparamos] then
    [lo que ocurre si es cierta la comparación]
    end

    Hace una comparación de una variable con otra o con un valor.
    Para comparar en los if o bucles usaremos lo siguiente:
    IGUAL A: ==
    DISTINTO A: !=
    MAYOR QUE: >
    MENOR QUE: <
    MAYOR O IGUAL A: >=
    MENOR O IGUAL A: **

  • Pinta muy bien, en unos cuantos de capítulos de tus guías, aprenderán a tener 1 nivel normal en lua para hacer quest en sus servidores.
    Hay te dejo mi +1 😉

  • Buen aporte para empezar a iniciarse en el mundo de la programación, así los que empiecen en estos aspectos podrán empezar a hacer cosas por sí mismos 😉

  • Grax men Esto ta gueno
    una ayuda
    como aria para condicionar el cambio de lv de un pj a un mision
    oicea por ejemplo para que un pj pueda pasar de lv 15 a lv 16 tenga que realizar una mision como destruir 10 metin

  • Hombre supongo que los metines que quieres romper son entre esos levels, pongamos que son estos: 8003 8004 8005.

    [php]when 8003.kill or 8004.kill or 8005.kill begin
    if pc.getqf("Metindestruido") >= 10 then
    pc.delqf("Metindestuido") ##Siempre recomiendo cargar las bases de datos lo menos posible por eso yo siempre uso delqf cuando el qf termina su funcion.
    while pc.get_level() < 16 do
    pc.give_exp2(pc.get_next_exp())
    end
    end
    pc.setqf("Metindestruido",pc.getqf("Metindestruido")+1)
    end
    ## Supongo que te referiras a eso...
    [/php]