Progenosis
Member
- Joined
- Sep 6, 2011
- Messages
- 131
- Reaction score
- 18
I have a script running on my server, the script makes 3 rocks disappears and also the lever, what I want now is to make the lever appear again once the rocks appear again.
At this moment, when the lever is activated the 3 rocks disappear and also the lever, thats ok for me, but after 3 seconds the rocks appear again but not the lever :/
Please help!
At this moment, when the lever is activated the 3 rocks disappear and also the lever, thats ok for me, but after 3 seconds the rocks appear again but not the lever :/
Please help!
Code:
leverpos = {x=913, y=960, z=8, stackpos=1}
-- wall positions - don't change stackpos.
wall0pos = {x=911, y=959, z=8, stackpos=1}
wall1pos = {x=912, y=959, z=8, stackpos=1}
wall2pos = {x=913, y=959, z=8, stackpos=1}
-------------
function del(pos, id)
local thing = getTileItemById(pos, id).uid
if thing > 0 then
doRemoveItem(thing)
end
end
function reset_walls(pos, id)
local thing = getTileItemById(pos, id).uid
if thing < 1 then
doCreateItem(id, 1, pos)
end
end
function reset_lever(pos)
local lev = getTileItemById(pos, 1946).uid
if lev > 0 then
doTransformItem(lev, 1945)
end
end
local eventLever = 0
local eventDel = {}
local eventReset = {}
local pause = 500 -- 0.5 sec.
local reset_after = 3 * 1000 -- 3 seconds
local wall_id = 1304 -- itemid of the walls
local walls = { -- wall positions
{x=911, y=959, z=8},
{x=912, y=959, z=8},
{x=913, y=959, z=8}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.itemid == 1945 then
doRemoveItem(item.uid, 1945)
doCreatureSay(cid, "En 3 segundos las rocas volveran a su posicion original!", TALKTYPE_ORANGE_2, getCreaturePosition(cid));
for i = 1, #walls do
eventDel[i] = addEvent(del, pause * i, walls[i], wall_id)
eventReset[i] = addEvent(reset_walls, reset_after + pause * i, walls[i], wall_id)
end
eventLever = addEvent(reset_lever, reset_after + pause * #walls, fromPosition)
elseif item.itemid == 1946 then
stopEvent(eventLever)
for i = 1, #eventDel do
stopEvent(eventDel[i])
end
for i = 1, #eventReset do
stopEvent(eventReset[i])
end
for i = 1, #walls do
reset_walls(walls[i], id)
end
doCreateItem(item.uid,1945,leverpos)
end
return true
end