BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Pedido action

Pedido action

#1 Pedido action el Miér Ene 08, 2014 3:26 pm

Amy Azzkaban


Miembro
Hola! Necesito si me ayudan con un pequeño script. Lo que necesito es que al jalar una palanca se remueva una roca con id 1304 y la palanca es de id 1945... ahora bién, al jalar la palanca debe quedar en id 1946... con eso está todo bién, pero lo que necesito aparte es que al jalar la palanca no se pueda volver a jalar hasta un minuto mas. En otras palabras la palanca debe quedar jalada durante un minuto, y despues sola vuelva a la posisión original.

Me ayudan?
Gracias.

#2 Re: Pedido action el Miér Ene 08, 2014 4:37 pm

Carlitos Flow


Miembro
Código:

function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
pos = {x=XXX, y=YYY, z=ZZZ}
stoneId = 1304 -- ID de la stone
time = 60 -- En segundos...
}

if item.itemid == 1945 then -- ID de la palanca
if getTileItemById(config.pos, config.stoneId).uid > 0 then
doRemoveItem(getTileItemById(config.pos, config.stoneId).uid)
doCreatureSay(cid, 'The stone will be removed for '..config.time..' sec', TALKTYPE_MONSTER)
addEvent(doCreateItem, config.time * 1000, config.stoneId, 1, config.pos)
else
doPlayerSendCancel(cid, 'The stone is removed already.')
end
end
return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end

Código:

<action actionid="XXXX" event="script" value="removeStone.lua"/>

http://flowland.sytes.net/?subtopic=latestnews

#3 Re: Pedido action el Miér Ene 08, 2014 7:18 pm

Belerofonte


Administrador
[GOD]Carlitos Flow escribió:
Código:

function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
pos = {x=XXX, y=YYY, z=ZZZ}
stoneId = 1304 -- ID de la stone
time = 60 -- En segundos...
}

if item.itemid == 1945 then -- ID de la palanca
if getTileItemById(config.pos, config.stoneId).uid > 0 then
doRemoveItem(getTileItemById(config.pos, config.stoneId).uid)
doCreatureSay(cid, 'The stone will be removed for '..config.time..' sec', TALKTYPE_MONSTER)
addEvent(doCreateItem, config.time * 1000, config.stoneId, 1, config.pos)
else
doPlayerSendCancel(cid, 'The stone is removed already.')
end
end
return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end

Código:

<action actionid="XXXX" event="script" value="removeStone.lua"/>

¿Pruebas los scripts después de crearlo & antes de publicarlos? lo digo porque:
Loading actions... [Error - LuaInterface::loadFile]
Data/actions/scripts/removeStone.lua:5: '}' expected (to close '{' at line 3) near 'stoneId'
[Error - Event::checkScript] Cannot load script (Data/actions/scripts/removeStone.lua)
Data/actions/scripts/removeStone.lua:5: '}' expected (to close '{' at line 3) near 'stoneId'

¡Bah!, sólo fue un detallito, las comas en la tabla:
Código:
local config = {
pos = {x=XXX, y=YYY, z=ZZZ},
stoneId = 1304, -- ID de la stone
time = 60, -- En segundos...
}

Y respecto a:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Hola! Necesito si me ayudan con un pequeño script. Lo que necesito es que al jalar una palanca se remueva una roca con id 1304 y la palanca es de id 1945... ahora bién, al jalar la palanca debe quedar en id 1946... con eso está todo bién, pero lo que necesito aparte es que al jalar la palanca no se pueda volver a jalar hasta un minuto mas. En otras palabras la palanca debe quedar jalada durante un minuto, y despues sola vuelva a la posisión original.

Me ayudan?
Gracias.

Si se le da a la palanca en ese plazo de tiempo la cual se acciona igualmente ó si finaliza el plazo
de tiempo, la roca efectivamente vuelve a su posición inicial pero no la palanca, por lo que podrías:
Código:
   local config = {
    pos = {x=986, y=1003, z=8}, -- Coordenada donde se haya la stone.
    stoneId = 1304, -- itemID de la stone.
    time = 60, -- Tiempo transcurrido para que la stone vuelva. (en segundos)
 str = 28761, -- Storage Value que gustes.
    }
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    if os.time(t) > getGlobalStorageValue(config.str) then
    doRemoveItem(getTileItemById(config.pos, config.stoneId).uid)
    doCreatureSay(cid, 'The stone will be removed for '..config.time..' sec', TALKTYPE_MONSTER)
 setGlobalStorageValue(config.str, (os.time(t) + config.time))
 doTransformItem(item.uid, item.itemid+1)
    addEvent(doCreateItem, config.time * 1000, config.stoneId, 1, config.pos)
 addEvent (doTransformItem, config.time * 1000, item.uid, item.itemid)
    else
    doPlayerSendCancel(cid, 'The stone is removed already.')
    end
    return true
    end

Y poner la palanca con UniqueID y con ella la línea del Actions.xml, es decir:
Código:
<action uniqueid="XXXX" event="script" value="removeStone.lua"/>

Ésto último es porque en ActionID con este script modificado me seguía dando un error de "piedra no encontrada" que con UniqueID no ocurre.



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#4 Re: Pedido action el Jue Ene 16, 2014 7:17 am

Amy Azzkaban


Miembro
Muchas gracias en unos minutos mas lo agrego a mi servidor.

#5 Re: Pedido action Hoy a las 2:25 pm

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .