• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua PoI Script

Hammel

Mapper
Joined
Dec 14, 2009
Messages
37
Reaction score
0
Could someone help me with this script?

Code:
local wall1pos = {x=458, y=1386, z=11, stackpos=1}
local wall2pos = {x=459, y=1386, z=11, stackpos=1}
local leverpos1 = {x=450, y=1412, z=11, stackpos=1}
local leverpos2 = {x=454, y=1385, z=12, stackpos=1}
local leverpos3 = {x=493, y=1390, z=12, stackpos=1}
local leverpos4 = {x=460, y=1412, z=13, stackpos=1}
local leverpos5 = {x=457, y=1419, z=12, stackpos=1}
local leverpos6 = {x=467, y=1417, z=12, stackpos=1}
local leverpos7 = {x=481, y=1407, z=13, stackpos=1}
local leverpos8 = {x=481, y=1387, z=11, stackpos=1}
local leverpos9 = {x=498, y=1381, z=13, stackpos=1}
local leverpos10 = {x=450, y=1405, z=13, stackpos=1}
local leverpos11 = {x=496, y=1402, z=14, stackpos=1}
local leverpos12 = {x=494, y=1383, z=11, stackpos=1}
local leverpos13 = {x=453, y=1371, z=11, stackpos=1}
local leverpos14 = {x=494, y=1408, z=12, stackpos=1}

function onUse(cid, item, frompos, item2, topos)

local wall1 = getThingfromPos(wall1pos)
local wall2 = getThingfromPos(wall2pos)

local lever1 = getThingfromPos(leverpos1)
local lever2 = getThingfromPos(leverpos2)
local lever3 = getThingfromPos(leverpos3)
local lever4 = getThingfromPos(leverpos4)
local lever5 = getThingfromPos(leverpos5)
local lever6 = getThingfromPos(leverpos6)
local lever7 = getThingfromPos(leverpos7)
local lever8 = getThingfromPos(leverpos8)
local lever9 = getThingfromPos(leverpos9)
local lever10 = getThingfromPos(leverpos10)
local lever11 = getThingfromPos(leverpos11)
local lever12 = getThingfromPos(leverpos12)
local lever13 = getThingfromPos(leverpos13)
local lever14 = getThingfromPos(leverpos14)

if (lever1.itemid == 1946 and lever2.itemid == 1946 and lever3.itemid == 1946 and lever4.itemid == 1946 and lever5.itemid == 1946 and lever6.itemid == 1946 and lever7.itemid == 1946 and lever8.itemid == 1946 and lever9.itemid == 1946 and lever10.itemid == 1946 and lever11.itemid == 1946 and lever12.itemid == 1946 and lever13.itemid == 1946 and lever14.itemid == 1946 and wall1.itemid == 0) then
doSendMagicEffect(wall1pos, 13)
doSendMagicEffect(wall2pos, 13)
doCreateItem(1304,1,wall1pos)
doCreateItem(1304,1,wall2pos)
    doTransformItem(item.uid,1945)
elseif (lever1.itemid == 1946 and lever2.itemid == 1946 and lever3.itemid == 1946 and lever4.itemid == 1946 and lever5.itemid == 1946 and lever6.itemid == 1946 and lever7.itemid == 1946 and lever8.itemid == 1946 and lever9.itemid == 1946 and lever10.itemid == 1946 and lever11.itemid == 1946 and lever12.itemid == 1946 and lever13.itemid == 1946 and lever14.itemid == 1946 and wall1.itemid == 1304) then
doSendMagicEffect(wall1pos, 2)
doSendMagicEffect(wall2pos, 2)
doRemoveItem(wall1.uid,1)
doRemoveItem(wall2.uid,1)
    doTransformItem(item.uid,1946)
            addEvent(onTimer5, 1*60*1000) --2minutes
else 
doPlayerSendCancel(cid,"You have not pulled all 15 levers.") 
	end
	function onTimer5() --creates wall back
    doTransformItem(getThingFromPos({x=456, y=1388, z=11, stackpos=1}).uid, 1945)--lever pos
    doCreateItem(1304,1,{x=458, y=1386, z=11})-- Stone pos
        doCreateItem(1304,1,{x=459, y=1386, z=11})-- Stone pos
end
   return 1
end

I want a script of these lever that put all levers in id 1945 after 30 min and put the stones back too.

Please help me =\
 
Extended edition of http://otland.net/f132/fix-script-120922/#post1183083
LUA:
local f, e = function(p)
	for _, v in ipairs({{x=458, y=1386, z=11},{x=459, y=1386, z=11}}) do
		doRelocate(v, {x=457, y=1386, z=11})
		doCreateItem(1304, 1, v)
	end
	for _, v in ipairs({p, {x=450, y=1412, z=11},{x=454, y=1385, z=12},{x=493, y=1390, z=12},{x=460, y=1412, z=13},{x=457, y=1419, z=12},{x=467, y=1417, z=12},{x=481, y=1407, z=13},{x=481, y=1387, z=11},{x=498, y=1381, z=13},{x=450, y=1405, z=13},{x=496, y=1402, z=14},{x=494, y=1383, z=11},{x=453, y=1371, z=11},{x=494, y=1408, z=12},{x=481, y=1418,z=12}}) do
		local k = getTileItemById(v, 1946).uid
		if k ~= 0 then
			doTransformItem(k, 1945)
		end
	end
end, 0

function onUse(cid, item, fromPosition, itemEx, toPosition)
	for _, v in ipairs({{x=450, y=1412, z=11},{x=454, y=1385, z=12},{x=493, y=1390, z=12},{x=460, y=1412, z=13},{x=457, y=1419, z=12},{x=467, y=1417, z=12},{x=481, y=1407, z=13},{x=481, y=1387, z=11},{x=498, y=1381, z=13},{x=450, y=1405, z=13},{x=496, y=1402, z=14},{x=494, y=1383, z=11},{x=453, y=1371, z=11},{x=494, y=1408, z=12},{x=481, y=1418,z=12}}) do
		if getTileItemById(v, 1946).uid == 0 then
			return doPlayerSendCancel(cid, 'You haven\'t pulled all 15 levers.')
		end
	end
	if item.itemid == 1945 then
		for _, v in ipairs({{x=458, y=1386, z=11},{x=459, y=1386, z=11}}) do
			doSendMagicEffect(v, CONST_ME_EXPLOSIONAREA)
			doRemoveItem(getTileItemById(v, 1304).uid)
		end
		e = addEvent(f, 30 * 60000, fromPosition)
	else
		stopEvent(e)
		f(fromPosition)
	end
	return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end
 
Last edited:
I tested it, but have two problems. One is because the central lever don't back to 1945 position and if you put all levers and put it, the stones don't go away. The second is because the lever which position is [X: 481] [Y: 1418] [Z: 12] don't back to 1945 too. Please, could you check it?
 
Back
Top