- Awards
- 38
Hola a todos ,
Aquí les voy a escribir un pequeño tutorial como escribir un revscript Action fácilmente y lo que permite hacer.
Antes que nada crearemos un archivo.lua en nuestro servidor data/scripts
El tutorial se basará en un script de usar un ítem , con condiciones:
La función para esta es (onUse)
Empezaremos:
Crearemos un simple script que al usar el ítem 1111, indicado abajo del todo del script no de 1 Crystal coin.
El script funciona pero , no remueve el ítem que usamos por el cual agregaremos debajo del estado if:
Le pondremos un efecto al usar el ítem:
El const_me_fire puede ser reemplazado por un número , el número corresponde al número de efecto en el Assets Editor.
Ahora lo vamos a restringir un poco , para poder usar ese ítem , deberemos de haber hecho una quest recuerdo una quest es una storage,
Pero si no tenemos esa storage o quest hecha entonces no nos dirá nada , y debemos de informar al jugador porque o como entonces agregaremos un mensaje , que siempre debe de ponerse en el caso de que no pueda acceder si no tiene esa storage:
Aquí si no tenemos la quest hecha nos dirá que no podremos usar el ítem.
Ahora si quisiéramos crear otro ítem que nos de esa storage ( quest ) completada para poder usar ese ítem entonces crearemos un nuevo script :
De esta informa , indicamos en la primera línea si el player ya tiene la quest hecha “if player:getStorageValue(1111) > 1 then”
Y en caso contrario “else” le dará la quest “player:setStorageValue(1111, 1)”
Aquí hemos creado dos ítems uno para dar la quest y el otro para usar un ítem si tenemos la quest.
Podemos crear un local para evitar escribir las storages por ejemplo :
Se pueden hacer muchas cosas, en este tutorial es para una action pero se pueden bien en Creaturescripts , globalEvents y mucho más.
No duden en dejar un comentario si tienen dudas.
Aquí les voy a escribir un pequeño tutorial como escribir un revscript Action fácilmente y lo que permite hacer.
Antes que nada crearemos un archivo.lua en nuestro servidor data/scripts
El tutorial se basará en un script de usar un ítem , con condiciones:
La función para esta es (onUse)
Empezaremos:
Crearemos un simple script que al usar el ítem 1111, indicado abajo del todo del script no de 1 Crystal coin.
Código:
local miScript = Action()
funcion miScript.onUse(player, item, fromPosition, target)
if player then
player:addItem(2160, 1)
end
end
miScript:id(1111)
miScript:register()
El script funciona pero , no remueve el ítem que usamos por el cual agregaremos debajo del estado if:
Código:
item:remove(1)
Le pondremos un efecto al usar el ítem:
Código:
player:sendMagicEffect(CONST_ME_FIRE)
Ahora lo vamos a restringir un poco , para poder usar ese ítem , deberemos de haber hecho una quest recuerdo una quest es una storage,
Código:
if player:getStorageValue(1111) > 1 then
player:addItem(2160, 1)
item:remove(1)
end
Pero si no tenemos esa storage o quest hecha entonces no nos dirá nada , y debemos de informar al jugador porque o como entonces agregaremos un mensaje , que siempre debe de ponerse en el caso de que no pueda acceder si no tiene esa storage:
Código:
if player:getStorageValue(1111) > 1 then
player:addItem(2160, 1)
item:remove(1)
else
player:sendTextMessage(MESSAGE_INFO_DESCR, "You cannot use this item because you didn't complete the quest.")
end
Aquí si no tenemos la quest hecha nos dirá que no podremos usar el ítem.
Ahora si quisiéramos crear otro ítem que nos de esa storage ( quest ) completada para poder usar ese ítem entonces crearemos un nuevo script :
Código:
local itemQuest = Action()
function itemQuest.onUse(player, item, fromPosition, target)
if player:getStorageValue(1111) > 1 then
player:sendTextMessage(MESSAGE_INFO_DESCR, “You already have this quest.”)
else
player:setStorageValue(1111, 1)
player:sendTextMessage(MESSAGE_INFO_DESCR, “You received the quest.”)
end
itemQuest:id(2222)
itemQuest:register()
De esta informa , indicamos en la primera línea si el player ya tiene la quest hecha “if player:getStorageValue(1111) > 1 then”
Y en caso contrario “else” le dará la quest “player:setStorageValue(1111, 1)”
Aquí hemos creado dos ítems uno para dar la quest y el otro para usar un ítem si tenemos la quest.
Podemos crear un local para evitar escribir las storages por ejemplo :
Código:
local miItem = Action()
local miQuest = 1111
function miItem.onUse(player, item, fromPosition, target)
if player:getStorageValue(miQuest) then
player:addItem(2160, 1)
item:remove(1)
end
miItem:id(2222)
miItem:register()
Se pueden hacer muchas cosas, en este tutorial es para una action pero se pueden bien en Creaturescripts , globalEvents y mucho más.
No duden en dejar un comentario si tienen dudas.