Ir a contenido

Foto

Capítulo III - Profundicemos en los Whens


  • Please log in to reply
11 Respuesta(s) a este Tema
Metin2

#1
ElRaulxX

ElRaulxX

    Forero

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcar
  • 97 Mensaje(s)
  • Sexo:Masculino
  • Localización:Barcelona, España
En el anterior capítulo, keko os explico más o menos como podemos estructurar una quest. En este capítulo nos centraremos en el cuerpo, exactamente en los whens.
El uso de los whens es lo más básico dentro de una quest. A partir de aquí podremos desarrollar cualquier acción de una quest.

Estructura básica de un when.

Antes de todo, tenemos que recordar la estructura de un when:

Please Login or Register to see this Hidden Content

*Esta es la estructura básica. Podemos añadirle muchísimas más cosas que explicaré en este capítulo, pero de momento, no nos avancemos. Llamaremos [x] a una variable que nos sirva para todos los casos.

¿Qué pasaría si no siguiéramos esta estructura? Pues que nos saltaría este error:

Imagen enviada

Debéis recordar siempre que todos los whens siguen esa estructura. Sino, no funcionará y no la reconocerá el servidor.

Pero como la variable [X] que nos hemos inventado no existe, tendremos que poner algo en su lugar, ¿no?
Podemos poner muchas acciones que puede realizar el usuario (pc) dentro del servidor.
Voy a listarlas todas (o casi todas). Las pondré en orden de uso y dificultad. Es posible que algunas de ellas ahora no les encontréis utilidad en este momento. Es recomendable que dentro de un tiempo las volváis a repasar para acabar de entenderlas y poder darles su debido uso.

*Lo que está en cursiva puede ser sustituido.
idnpc.chat."texto" : Al utilizarlo se abrirá un dialogo con opciones. Al dar click al texto empieza el contenido del when.
idnpc.click : Al hacer click en el npc, empieza el contenido del when.
kill : Cuando el jugador mata un enemigo, comienza el contenido del when.
idmob.kill : Cuando el jugador mata al enemigo con idmob empieza el contenido del when.
party_kill : Cuando un miembro del grupo mata a un enemio, comienza el contenido del when.
idmob.party_kill : Cuando un miembro del grupo mata a aun enemigo con idmob, empieza el contenido del when.
login : Cuando el jugador se logea, empieza el contenido del when.
logout : Cuando el jugador se deslogea, empieza el contenido del when.
letter : Relacionado con las letters (explicación en otro capitulo).
button : Relacionado con las letters (explicación en otro capitulo).
info : Relacionado con las letters (explicación en otro capitulo).
nombre.timer : Cuando el timer llamado con nombre llega a 0, empieza el contenido del when.
nombre.server_timer : Cuando el server_timer llamado con nombre llega a 0, empieza el contenido del when.
nombre.target.click : Cuando haces click al tarjet nombre empieza el contenido del when.
nombre.target.arrive : Cuando llegas al punto con el tarjet nombre empieza el contenido del when.
( )

Unos cuantos ejemplos:

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content


Sabiendo todo esto que acabo de explicar ya tenemos una gran parte avanzada, pero ¡aquí no acaba toda la información de los whens!
Hasta ahora he puesto tan solo un when por quest ¿no se pueden poner más? ¡Claro que sí! Veamos:
(recordar cerrar todos los whens!)

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content



En este momento ya deberíais empezar a entender el funcionamiento básico de las quests. Si no es así, revisa estos 3 capitulos de nuevo antes de continuar el capítulo y el curso restante. Es importante que nunca escribáis algo que no entendáis. Si no, (me cito a mí mismo) pasaría esto en un futuro:
[/size][/font]

A mi parecer, este lenguaje os empezará siendo bastante sencillo. Aún así, esta sencillez puede ir complicándose hasta llegar al punto de que sino entendéis realmente el funcionamiento básico de las quests no entenderéis nada.


Expandiendo la estructura básica de un when.

Como dije antes, esa tan solo era la estructura básica de un when. Esta estructura podemos complicarla tanto como queramos añadiendo condiciones o juntando varias acciones de distintos whens.

Partiremos de la quest básica: (A partir de ahora tan solo pondré la parte del when. No os olvidéis nunca de poner el inicio de la quest y los states, igual que su correspondiente cierre)

Please Login or Register to see this Hidden Content


Empezaremos poniendo una condición. En este caso, que el usuario sea mayor de nivel 5.

Please Login or Register to see this Hidden Content


De esta manera (utilizando with) podemos añadirle una condición. Si el usuario no coincide con la condición, el servidor omitirá el when en el que estamos trabajando. Esto nos puede ahorrar escribir codigo. En vez de poner una condición dentro del when, la ponemos en el propio when (más información sobre las condiciones en el capítulo IV de keko).
Más ejemplos:

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content


Hasta ahora hemos trabajado con una sola condición ¿podemos añadir más? Claro!
Cogemos nuestro ejemplo anterior.

Please Login or Register to see this Hidden Content

Ahora queremos que, demás de ser mayor de nivel 5, posea el item con vnum 19:

Please Login or Register to see this Hidden Content

De esta manera (utilizando and) podemos añadirle todas las condiciones que queramos, poniendo siempre antes un with.

Partiremos de nuevo (aunque ahora algo diferente) de dos whens básicos.

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content


Podemos juntarlos? Claro! Veamos:

Please Login or Register to see this Hidden Content

De esta manera (utilizando or) podemos poner que la acción se efectúe en diversas situaciones o con diferentes condiciones.
Todo lo que hemos visto hasta ahora podemos combinarlo como queramos.

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content

Please Login or Register to see this Hidden Content


Podemos hacer tantas combinaciones de whens como queramos. Tan solo es saber entender el funcionamiento de las quests.
Y lo más importante! Sin práctica no se aprende!
La mejor manera de aprender quest es mirar otras quests ya echas e intentar imitarlo, hacer pruebas y pruebas hasta ver el funcionamiento, o leer este curso.
Pero claro! Solo con este curso no vais a aprender. Recordar que, sin práctica, nada se aprende!
  • A KeKo, Joakin47, izaviona y a 5 más les gusta esto

Imagen enviada


Imagen enviada

Imagen enviada


#2
Rafa23Alzira

Rafa23Alzira

    Forero Experto

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 2.015 Mensaje(s)
Capitulo mas corto pero para mi el mas practico de los 3. Poco a poco voy aprendiendo, intentare hacer alguna quest sencilla y os la pondré aquí para que me digáis fallos o recomendaciones.
  • ElRaulxX likes this

#3
Pathits!

Pathits!

    Experimentado

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 315 Mensaje(s)
Es la contiene mayor información y conocimiento que todas pero me enredo xD
  • ElRaulxX likes this

#4
Santy!.

Santy!.

    Forero Experto

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.047 Mensaje(s)
muchas gracias ademas me distes una idea :trollface:
  • ElRaulxX likes this

#5
KeKo

KeKo

    Forero Experto

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.475 Mensaje(s)
Buena raul, me gusto el guiño (no se si alguien se habra fijado) a los programadores novatos para los que tan aprendiendo lua xd:

say("¡Hola mundo!")


Que es lo tipico que hace una persona cuando aprender a programar, un programa que diga Hello World.

P.D: Siguiente capi me toca a mi.

#6
ElRaulxX

ElRaulxX

    Forero

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcar
  • 97 Mensaje(s)
  • Sexo:Masculino
  • Localización:Barcelona, España

Buena raul, me gusto el guiño (no se si alguien se habra fijado) a los programadores novatos para los que tan aprendiendo lua xd:



Que es lo tipico que hace una persona cuando aprender a programar, un programa que diga Hello World.

P.D: Siguiente capi me toca a mi.

No podemos hacer un curso sin decir eso :D

Imagen enviada


Imagen enviada

Imagen enviada


#7
destroyer

destroyer

    Novato

  • Miembro
  • Marcar
  • 2 Mensaje(s)
Un curso genial , en cuestión de minutos aprendes sobre la estructura basica de una quest y ya puedes realizar tu primera quest , la verda faltaba una guia asi para que todos pudieramos aprender sobre el lenguaje quest. Felicitaciones por este gran curso !!
  • ElRaulxX likes this

#8
fuuton97

fuuton97

    Forero Profesional

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 610 Mensaje(s)
Excelente Raúl, ya he tenido muchas ideas de crear quest, otra cosa, si es posible que hagas la guía de como poner o la función para que te cargue una imagen en la quest, así como en el .sg :okay:

#9
Santy!.

Santy!.

    Forero Experto

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.047 Mensaje(s)
seeeee eso.

#10
SeMa™

SeMa™

    Forero Experto

  • Developer
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.795 Mensaje(s)
  • Sexo:Indefinido
Muy buena Raul y Keko , ya voy aprendiendo algo ^^

#11
iluvatar

iluvatar

    Interesado

  • Miembro
  • MarcarMarcarMarcarMarcar
  • 43 Mensaje(s)

Excelente Raúl, ya he tenido muchas ideas de crear quest, otra cosa, si es posible que hagas la guía de como poner o la función para que te cargue una imagen en la quest, así como en el .sg :okay:


Mira la mision de caza ahi aparesen:

setbgimage('level_bg.tga')

y luego mas adelante

addimage(20,12,special.levelup_img[special.levelup_quest[lev][s*2-1]])

eso lo puedes utilizar para poner imagenes en las misiones de forma simple, reemplazando y/o agregando las imagenes que quieras cargar.

#12
Desagradable

Desagradable

    Interesado

  • Miembro
  • MarcarMarcarMarcarMarcar
  • 57 Mensaje(s)

gracias por tu me gusta






0 Usuario(s) están leyendo este Tema

0 miembro(s), 0 invitado(s), 0 usuario(s) anónimo(s)