Haciendo Scripts Lua para Servers
Página 1 de 1. • Compartir •
Haciendo Scripts Lua para Servers
Guia sacada de www.eotfans.net
Link: Ver pagina original
En esta guia explicare cada una de las cosas que usaremos para hacer
Scripts en lenguage Lua para OTServ, partiendo desde lo basico, tambien
mantendre los dos posts siguientes en el caso de que necesite agregar
informacion.
Esta guia fue solicitada por Marzelo y espero que le sirva a mucha
gente mas, realmente espero que aprendan a hacer scripts por su cuenta.
No habia tenido tiempo, pero ahora que tengo un poco avanazare un poco en ella.
Simbolos mas usados.
Comparacion
> indicara que el valor de la izquierda es mayor al de la derecha.
< indicara que el valor de la derecha es mayor al de la izquierda.
>= indicara que el valor de la izquierda es mayor o igual al de la derecha.
<= indicara que el valor de la derecha es igual o mayor al de la izquierda.
== indicara que ambos valores son iguales.
~= indicara que ambos valores no son iguales.
Calculos
= esto ara que un valor pase a ocupar otro valor.
- calculo resta, tambien se usa para dar un valor negativo.
+ calculo suma.
* calculo multiplicacion.
/ calculo division.
Puntuaciones
. se usa para muchas cosas, una de sus principales funciones en lua es definir un parametro de una funcion y/o valor.
, se usa para muchas cosas, una de sus principales funciones en lua es separar parametros de una funcion y/o valor.
Parentesis
{ } abre y cierra una tabla.
( ) abre y cierra los parametros de una funcion y/o valor.
[ ] se usa para varias cosas, una des sus principales funcion en lua es abrir y cerrar subparametros en una funcion y/o valor.
Comillas
" " se usa para introducir texto en nuestra operacion.
' ' se usa para introducir texto en nuestra operacion.
si las comillas no se cierran correctamente esto dejara nula la operacion.
\ se usa para anular una comilla.
ejemplos
el valor "nivel rdel player" pasa a tomar el valor de una variante que luego explicare como hacer.
el valor "nivel requerido" pasa a tomar el valor de 50.
si el nivel del player es mayos a ...
si el nivel del player es menor a ...
si el nivel del player es mayor o igual a ...
si el nivel del player es menor o igual a ...
si el nivel del player es igual a ..
en este ejemplo tenemos varias cosas presentes, como el valor
"posicion" pasa a tomar el valor indicado en la tabla, en la cual los
parametros tambien pasan a tomar un valor indicado con "=", y los
cuales estan separados por una coma ",".
el valor1 pasa a tomar el lugar de nuestra tabla, la cual tienes sus
parametros, luego hacemos un llamado al valor1, separando sus
parametros con un punto "."
en los casos que nuestro texto debe llevar una comilla por cosa de
estetica anularemos la comilla con un "\", y nuestra comilla sera
mostrada.
ejemplos de calculos simples.
ejemplo de calculos haciendo llamados a valores asignados.
Palabras Claves mas usadas
function dara inicio a nuestra funcion.
if pone una condicion a un evento.
else es la contradiccion de nuestra condicion.
elseif es la contradiccion de nuestra condicion, pero a la vez crea una nueva condicion.
and agrega una condicion a un if, la cual debe ser cumplida junto con el.
or es una condicion que se agrega a un if, la cual a la ves en una contradiccion.
end finaliza una function y/o un if.
local es un valor que puede ser llamado en cualquier momento de nuestra operacion.
then si se cumple la condicion da inicio a la serie de eventos.
not contradiccion a un if.
cada if, elseif debe llevar un then.
y cada if, function debe llevar su end.
ejemplos
una funcion.
notece en este ejemplo que cada if y elseif lleva un then y que por cada function y/o if tenemos un end,
tambien regresemos a los simbolos basicos y notece que item.itemid es
un parametro del valor item, y que tenemos presente comparaciones.
n este ejemplo tenemos presente un valor local, al cual hicimos llamados varias veces en la operacion, tambien tenemos presente la palabra clave and la cual usamos para cumplir dos condiciones, tambien esta presente un else que es lo que ocurrira si no se cumple las condiciones.
tenemos presente un or.
ejemplo de como usar un not
Funciones
la funcion es lo que desencadenara nuestro script, es lo que dara
inicio a una seria de eventos, cada funcion debe llegar su resprectivo end.
tambien se le llama funcion a loes eventos que abran dentro de nuestra funcion, ejemplos.
ellos no necesitan un end.
Tipos de funciones
Movements
se usa cuando quieres que al caminar sobre un objeto ocurra algo.
se usa cuando quieras que caminar fuera de un objeto ocurra algo.
se usa cuando quieres que al poner un item en tu cuerpo ocurra algo.
se usa cuando quieres que al quitar un item desde tu cuerpo ocurra algo.
se usa cuando quieres que al agregar un item en algun lugar ocurra algo.
se usa cuando quieras que al quitar un item desde un lugar ocurra algo.
ejemplos
Parametros presentes en las funciones
cid = es la criatura que ejecuta la accion, movimiento, etc.
item = en el caso de StepIn y StepOut, es el item que
debes pisar o abandonar, en el caso de onEquip y onDeEquip es el item
que te pondras o quitaras.
pos = es la pocision (sqm) donde esta el item (piso).
slot = en que parte del cuerpo te pondras el item, o desde donde lo quitaras.
moveitem = es el item que agregaremos o quitaremos desde la pos.
tileitem = es el item en el cual agregaremos o quitaremos otro item.
Subparametros
item.uid = si el item tiene unique id, se usara esto para verificarla.
item.itemid = se usara esto para verificar el id del item.
item.actionid = si el item tiene actiond id, se usara esto para verificarla.
moveitem.itemid =s e usara esto para verificar el id del item agregado o quitado.
tileitem.uid = si el item(sqm,piso) tiene unique id, se usara esto para verificarla.
tileitem.actionid = si el item(sqm,piso) tiene action id, se usara esto para verificarla.
tileitem.itemid = verifica el id del piso o sqm.
pos.x
pox.y
pos.z
pos.stackpos verifica la posicion x, y, z y el stackpos del item.
Como agregas estas funciones al archivo xml
uniqueid="2050" se usara para cuando queremos realizar un paso dentro o fuera de un item con unique id.
itemid="2050" se usara cuando queramos ejecutar un paso dentro o fuera de un item con determinada id.
actionid="2050" se usara cuando queramos ejecutar un paso dentro o fuera de un item con determinada action id
podemos cambiar el slot por:
-head
-necklace
-backpack
-armor
-right-hand
-left-hand
-legs
-feet
-ring
uniqueid="2051" se usara cuando se agregue o quite un item con unique id.
itemid="2051" se usara cuando se agregue o quite un item con determinado id.
actionid="2051" se usara cuando se agregue o quite un item con action id.
Por ahora es todo cuando me aga un tiempo, continuare la guia
saludos.
Link: Ver pagina original
En esta guia explicare cada una de las cosas que usaremos para hacer
Scripts en lenguage Lua para OTServ, partiendo desde lo basico, tambien
mantendre los dos posts siguientes en el caso de que necesite agregar
informacion.
Esta guia fue solicitada por Marzelo y espero que le sirva a mucha
gente mas, realmente espero que aprendan a hacer scripts por su cuenta.
No habia tenido tiempo, pero ahora que tengo un poco avanazare un poco en ella.
Simbolos mas usados.
Comparacion
> indicara que el valor de la izquierda es mayor al de la derecha.
< indicara que el valor de la derecha es mayor al de la izquierda.
>= indicara que el valor de la izquierda es mayor o igual al de la derecha.
<= indicara que el valor de la derecha es igual o mayor al de la izquierda.
== indicara que ambos valores son iguales.
~= indicara que ambos valores no son iguales.
Calculos
= esto ara que un valor pase a ocupar otro valor.
- calculo resta, tambien se usa para dar un valor negativo.
+ calculo suma.
* calculo multiplicacion.
/ calculo division.
Puntuaciones
. se usa para muchas cosas, una de sus principales funciones en lua es definir un parametro de una funcion y/o valor.
, se usa para muchas cosas, una de sus principales funciones en lua es separar parametros de una funcion y/o valor.
Parentesis
{ } abre y cierra una tabla.
( ) abre y cierra los parametros de una funcion y/o valor.
[ ] se usa para varias cosas, una des sus principales funcion en lua es abrir y cerrar subparametros en una funcion y/o valor.
Comillas
" " se usa para introducir texto en nuestra operacion.
' ' se usa para introducir texto en nuestra operacion.
si las comillas no se cierran correctamente esto dejara nula la operacion.
\ se usa para anular una comilla.
ejemplos
- Código:
nivel del player = variante
el valor "nivel rdel player" pasa a tomar el valor de una variante que luego explicare como hacer.
- Código:
nivel requerido = 50
el valor "nivel requerido" pasa a tomar el valor de 50.
- Código:
nivel del player > nivel requerido
si el nivel del player es mayos a ...
- Código:
nivel del player < nivel requerido
si el nivel del player es menor a ...
- Código:
nivel del player >= nivel requerido
si el nivel del player es mayor o igual a ...
- Código:
nivel del player <= nivel requerido
si el nivel del player es menor o igual a ...
- Código:
nivel del player == nivel requerido
si el nivel del player es igual a ..
- Código:
nivel del player ~= nivel requerido
- Código:
posicion = {x = 1000, Y = 1000, z = 7}
en este ejemplo tenemos varias cosas presentes, como el valor
"posicion" pasa a tomar el valor indicado en la tabla, en la cual los
parametros tambien pasan a tomar un valor indicado con "=", y los
cuales estan separados por una coma ",".
- Código:
valor1 = {mensaje = "Hola", color = 15}
doPlayerSendTextMessage(cid, valor1.color, valors1.mensaje)
el valor1 pasa a tomar el lugar de nuestra tabla, la cual tienes sus
parametros, luego hacemos un llamado al valor1, separando sus
parametros con un punto "."
- Código:
doPlayerSendTextMessage(cid, "Hello i\'m alejandro", 15)
en los casos que nuestro texto debe llevar una comilla por cosa de
estetica anularemos la comilla con un "\", y nuestra comilla sera
mostrada.
- Código:
valor = 1 + 1
valor = 2 - 1
valor = 5 * 1
valor = 9 / 3
ejemplos de calculos simples.
- Código:
valor1 = 50
valor2 = 90
valor total = valor1 + valor2
ejemplo de calculos haciendo llamados a valores asignados.
Palabras Claves mas usadas
function dara inicio a nuestra funcion.
if pone una condicion a un evento.
else es la contradiccion de nuestra condicion.
elseif es la contradiccion de nuestra condicion, pero a la vez crea una nueva condicion.
and agrega una condicion a un if, la cual debe ser cumplida junto con el.
or es una condicion que se agrega a un if, la cual a la ves en una contradiccion.
end finaliza una function y/o un if.
local es un valor que puede ser llamado en cualquier momento de nuestra operacion.
then si se cumple la condicion da inicio a la serie de eventos.
not contradiccion a un if.
cada if, elseif debe llevar un then.
y cada if, function debe llevar su end.
ejemplos
- Código:
function onUse(parametros)
hacer algo....
end
una funcion.
- Código:
function onUse(cid, item, frompos, item2, topos)
if item.itemid > 2000 then
hacer algo....
elseif item.itemid < 2000 then
hacer algo....
end
end
notece en este ejemplo que cada if y elseif lleva un then y que por cada function y/o if tenemos un end,
tambien regresemos a los simbolos basicos y notece que item.itemid es
un parametro del valor item, y que tenemos presente comparaciones.
- Código:
function onUse(cid, item, frompos, item2, topos)
local nivel = getPlayerLevel(cid)
if nivel > 1 and nivel < 8 then
hacer algo....
elseif nivel > 8 and nivel < 20 then
hacer algo....
else
hacer algo....
end
end
n este ejemplo tenemos presente un valor local, al cual hicimos llamados varias veces en la operacion, tambien tenemos presente la palabra clave and la cual usamos para cumplir dos condiciones, tambien esta presente un else que es lo que ocurrira si no se cumple las condiciones.
- Código:
function onUse(cid, item, frompos, item2, topos)
local nivel = getPlayerLevel(cid)
if nivel == 8 or nivel == 20 then
hacer algo....
else
hacer algo....
end
end
tenemos presente un or.
- Código:
function onUse(cid, item, frompos, item2, topos)
if not isPlayer(cid) == 1 then
hacer algo....
else
hacer algo....
end
end
ejemplo de como usar un not
Funciones
la funcion es lo que desencadenara nuestro script, es lo que dara
inicio a una seria de eventos, cada funcion debe llegar su resprectivo end.
tambien se le llama funcion a loes eventos que abran dentro de nuestra funcion, ejemplos.
- Código:
getPlayerFood(cid)
getPlayerHealth(cid)
ellos no necesitan un end.
Tipos de funciones
Movements
- Código:
function onStepIn(cid, item, pos)
end
se usa cuando quieres que al caminar sobre un objeto ocurra algo.
- Código:
function onStepOut(cid, item, pos)
end
se usa cuando quieras que caminar fuera de un objeto ocurra algo.
- Código:
function onEquip(cid, item, slot)
end
se usa cuando quieres que al poner un item en tu cuerpo ocurra algo.
- Código:
function onDeEquip(cid, item, slot)
end
se usa cuando quieres que al quitar un item desde tu cuerpo ocurra algo.
- Código:
function onAddItem(moveitem, tileitem, pos)
end
se usa cuando quieres que al agregar un item en algun lugar ocurra algo.
- Código:
function onRemoveItem(moveitem, tileitem, pos)
end
se usa cuando quieras que al quitar un item desde un lugar ocurra algo.
ejemplos
- Código:
function onStepIn(cid, item, pos)
if isPlayer(cid) == 1 then
doPlayerSendTextMessage(cid,22,"Hola.")
end
end
- Código:
function onStepOut(cid, item, pos)
if isPlayer(cid) == 1 then
doPlayerSendTextMessage(cid,22,"Chao.")
end
end
- Código:
function onEquip(cid, item, slot)
doPlayerAddHealth(cid, 100)
end
- Código:
function onDeEquip(cid, item, slot)
doPlayerAddHealth(cid, -100)
end
- Código:
function onAddItem(moveitem, tileitem, pos)
posicion = {x=1000,y=1000,z=7}
doSummonCreature("rat", posicion)
end
- Código:
function onRemoveItem(moveitem, tileitem, pos)
posicion = {x=1000,y=1000,z=7}
doSummonCreature("rat", posicion)
end
Parametros presentes en las funciones
cid = es la criatura que ejecuta la accion, movimiento, etc.
item = en el caso de StepIn y StepOut, es el item que
debes pisar o abandonar, en el caso de onEquip y onDeEquip es el item
que te pondras o quitaras.
pos = es la pocision (sqm) donde esta el item (piso).
slot = en que parte del cuerpo te pondras el item, o desde donde lo quitaras.
moveitem = es el item que agregaremos o quitaremos desde la pos.
tileitem = es el item en el cual agregaremos o quitaremos otro item.
Subparametros
item.uid = si el item tiene unique id, se usara esto para verificarla.
item.itemid = se usara esto para verificar el id del item.
item.actionid = si el item tiene actiond id, se usara esto para verificarla.
moveitem.itemid =s e usara esto para verificar el id del item agregado o quitado.
tileitem.uid = si el item(sqm,piso) tiene unique id, se usara esto para verificarla.
tileitem.actionid = si el item(sqm,piso) tiene action id, se usara esto para verificarla.
tileitem.itemid = verifica el id del piso o sqm.
pos.x
pox.y
pos.z
pos.stackpos verifica la posicion x, y, z y el stackpos del item.
Como agregas estas funciones al archivo xml
- Código:
<movevent event="StepIn" uniqueid="2050" script="nombre.lua" />
<movevent event="StepOut" uniqueid="2050" script="nombre.lua" />
uniqueid="2050" se usara para cuando queremos realizar un paso dentro o fuera de un item con unique id.
itemid="2050" se usara cuando queramos ejecutar un paso dentro o fuera de un item con determinada id.
actionid="2050" se usara cuando queramos ejecutar un paso dentro o fuera de un item con determinada action id
- Código:
<movevent event="Equip" itemid="2136" slot="necklace" script="nombre.lua" />
<movevent event="DeEquip" itemid="2136" slot="necklace" script="nombre.lua" />
podemos cambiar el slot por:
-head
-necklace
-backpack
-armor
-right-hand
-left-hand
-legs
-feet
-ring
- Código:
<movevent event="AddItem" tileitem="1" uniqueid="2051" script="nombre.lua" />
<movevent event="RemoveItem" tileitem="1" uniqueid="2051" script="nombre.lua" />
uniqueid="2051" se usara cuando se agregue o quite un item con unique id.
itemid="2051" se usara cuando se agregue o quite un item con determinado id.
actionid="2051" se usara cuando se agregue o quite un item con action id.
Por ahora es todo cuando me aga un tiempo, continuare la guia
saludos.

Vampiro-

Cantidad de envíos: 9
Edad: 18
Localización: España
Fecha de inscripción: 30/06/2008
Tu Personaje
Nivel:


(39/39)
Vida:


(340/340)
Magia:


(965/965)

Permiso de este foro:
No puedes responder a temas en este foro.



