• 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 Annih Problem!

warsar

Arzeria RlMap Projekt Adm
Joined
Aug 17, 2008
Messages
24
Reaction score
1
Location
Sweden
-- Annihilator script by
-- Room check and monster removal by Tworn

--Variables used:

-- player?pos = The position of the players before teleport.
-- player? = Get the thing from playerpos.
--player?level = Get the players levels.
--questslevel = The level you have to be to do this quest.
--questtatus? = Get the quest status of the players.
--demon?pos = The position of the demons.
--nplayer?pos = The position where the players should be teleported too.
--trash= position to send the demons to when clearing, 1 sqm in middle of nowhere is enough
-- starting = Upper left point of the annihilator room area.
-- ending = Bottom right point of the annihilator room area.

--UniqueIDs used:

--5000 = The switch.


function onUse(cid, item, frompos, item2, topos)
if item.uid == 5000 then
if item.itemid == 1946 then

player1pos = {x=33225, y=31671, z=13, stackpos=253}
player1 = getThingfromPos(player1pos)

player2pos = {x=33224, y=31671, z=13, stackpos=253}
player2 = getThingfromPos(player2pos)

player3pos = {x=33223, y=31671, z=13, stackpos=253}
player3 = getThingfromPos(player3pos)

player4pos = {x=33222, y=31671, z=13, stackpos=253}
player4 = getThingfromPos(player4pos)


if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then

player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)
player3level = getPlayerLevel(player3.uid)
player4level = getPlayerLevel(player4.uid)

questlevel = 100

if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then

queststatus1 = getPlayerStorageValue(player1.uid,7000)
queststatus2 = getPlayerStorageValue(player2.uid,7000)
queststatus3 = getPlayerStorageValue(player3.uid,7000)
queststatus4 = getPlayerStorageValue(player4.uid,7000)

if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then

--if 1==1 then
demon1pos = {x=33220, y=31657, z=13}
demon2pos = {x=33222, y=31657, z=13}
demon3pos = {x=33219, y=31661, z=13}
demon4pos = {x=33221, y=31661, z=13}
demon5pos = {x=33223, y=31659, z=13}
demon6pos = {x=33224, y=31659, z=13}


doSummonCreature("demon", demonpos)
doSummonCreature("demon", demon2pos)
doSummonCreature("demon", demon3pos)
doSummonCreature("demon", demon4pos)
doSummonCreature("demon", demon5pos)


nplayer1pos = {x=33222, y=31659, z=13}
nplayer2pos = {x=33221, y=31659, z=13}
nplayer3pos = {x=33220, y=31659, z=13}
nplayer4pos = {x=33219, y=31659, z=13}

doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)

doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)

doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)

doTransformItem(item.uid,1945)

else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
end
if item.itemid == 1945 then
-- Here is the code start:
starting={x=33219, y=31657, z=13, stackpos=253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x=33225, y=31662, z=13, stackpos=253}
players=0
totalmonsters=0
monster = {}
repeat
creature= getThingfromPos(checking)
if creature.itemid > 0 then
if getPlayerAccess(creature.uid) == 0 then
players=players+1
end
if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then
totalmonsters=totalmonsters+1
monster[totalmonsters]=creature.uid
end
end
checking.x=checking.x+1
if checking.x>ending.x then
checking.x=starting.x
checking.y=checking.y+1
end
until checking.y>ending.y
if players==0 then
trash= {x=32080, y=32427, z=13}
current=0
repeat
current=current+1
doTeleportThing(monster[current],trash)
until current>=totalmonsters
doTransformItem(item.uid,1946)
end
-- Here is the end of it

end
end
return 1
end

When i try doing the quest on my realmap server it wont work. When i press the switch nothing happends.

Can anyone please help me?
 
Yeah, we updated it in v9..

Lua:
  local playerPosition =
{
        {x = 33225, y = 31671, z = 13, stackpos = 253},
        {x = 33224, y = 31671, z = 13, stackpos = 253},
        {x = 33223, y = 31671, z = 13, stackpos = 253},
        {x = 33222, y = 31671, z = 13, stackpos = 253}
}

local newPosition =
{
        {x = 33222, y = 31659, z = 13},
        {x = 33221, y = 31659, z = 13},
        {x = 33220, y = 31659, z = 13},
        {x = 33219, y = 31659, z = 13}
}

local summonDemonPos =
{
        {x = 33223, y = 31659, z = 13, stackpos= 253},
        {x = 33224, y = 31659, z = 13, stackpos= 253},
        {x = 33219, y = 31657, z = 13, stackpos= 253},
        {x = 33221, y = 31657, z = 13, stackpos= 253},
        {x = 33220, y = 31661, z = 13, stackpos= 253},
        {x = 33222, y = 31661, z = 13, stackpos= 253}
}
--Do not modify the declaration lines below.
local player = {0, 0, 0, 0}
local failed = FALSE

function onUse(cid, item, fromPosition, itemEx, toPosition)
        if item.itemid == 1945 then
                for i = 1, 4 do
                failed = TRUE
                player[i] = getThingfromPos(playerPosition[i])
                        if player[i].itemid > 0 then
                                if isPlayer(player[i].uid) == TRUE then
                                        if getPlayerStorageValue(player[i].uid, 30015) == -1 then
                                                if getPlayerLevel(player[i].uid) >= 1 then
                                                        failed = FALSE
                                                end
                                        end
                                end
                        end
                        if failed == TRUE then
                                doPlayerSendCancel(cid, "Sorry, not possible.")
                        return TRUE
                        end
                end
                for i = 1,6 do
                local getdemon = getThingfromPos(summonDemonPos[i])
                        doSummonCreature("Demon", summonDemonPos[i])
                end
                local doorpos = {x=33225, y=31659, z=13, stackpos=1}
                local getdoor = getThingfromPos(doorpos)
                if getdoor.itemid == 1211 then
					doTransformItem(getdoor.uid, 1210)
                end
                for i = 1, 4 do
					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)
					doTeleportThing(player[i].uid, newPosition[i], FALSE)
					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)
                end
                doTransformItem(item.uid, item.itemid + 1)
                local function clearAnni()
                local spec_pos = {}
                        spec_pos.x = 33227
                        spec_pos.y = 31657
                        spec_pos.z = 13
               
                local tp_pos = {}
                        tp_pos.x = 33226
                        tp_pos.y = 31671
                        tp_pos.z = 13

                local list = getSpectators(spec_pos, 9, 5, false)
                        if(list) then
                                for i = 1, table.getn(list) do
                                        if isPlayer(list[i]) then
                                                tp_pos.x = tp_pos.x - 1
                                                doTeleportThing(list[i], tp_pos)
                                        else
                                        doRemoveCreature(list[i])
                                        end
                                end
                        end
                end
                local function resetLever()
                local posLever = {x = 33226, y = 31671, z = 13, stackpos = 1}
                local getLever = getThingfromPos(posLever)
                        doTransformItem(getLever.uid, getLever.itemid - 1)
                end
                addEvent(clearAnni, 15 * 60 * 1000)
                addEvent(resetLever, 20 * 60 * 1000)
                return TRUE
        end
end
It removes the demons after 15 minutes, and resets the lever after 20 minutes.

Don't forget to fix the rewards !
 
This is my script... loot also in the bottom of script...

Lua:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 7000 then
if item.itemid == 1946 then

player1pos = {x=194, y=118, z=9, stackpos=253}
player1 = getThingfromPos(player1pos)

player2pos = {x=193, y=118, z=9, stackpos=253}
player2 = getThingfromPos(player2pos)

player3pos = {x=192, y=118, z=9, stackpos=253}
player3 = getThingfromPos(player3pos)

player4pos = {x=191, y=118, z=9, stackpos=253}
player4 = getThingfromPos(player4pos)


if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then

player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)
player3level = getPlayerLevel(player3.uid)
player4level = getPlayerLevel(player4.uid)

questlevel = 100

if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then

	demon1pos = {x=190, y=116, z=10}
	demon2pos = {x=192, y=116, z=10}
	demon3pos = {x=191, y=120, z=10}
	demon4pos = {x=193, y=120, z=10}
	demon5pos = {x=194, y=118, z=10}
	demon6pos = {x=195, y=118, z=10}

	doSummonCreature("Demon", demon1pos)
	doSummonCreature("Demon", demon2pos)
	doSummonCreature("Demon", demon3pos)
	doSummonCreature("Demon", demon4pos)
	doSummonCreature("Demon", demon5pos)
	doSummonCreature("Demon", demon6pos)

	nplayer1pos = {x=193, y=118, z=10}
	nplayer2pos = {x=192, y=118, z=10}
	nplayer3pos = {x=191, y=118, z=10}
	nplayer4pos = {x=190, y=118, z=10}

	doSendMagicEffect(player1pos,2)
	doSendMagicEffect(player2pos,2)
	doSendMagicEffect(player3pos,2)
	doSendMagicEffect(player4pos,2)

	doTeleportThing(player1.uid,nplayer1pos)
	doTeleportThing(player2.uid,nplayer2pos)
	doTeleportThing(player3.uid,nplayer3pos)
	doTeleportThing(player4.uid,nplayer4pos)

	doSendMagicEffect(nplayer1pos,10)
	doSendMagicEffect(nplayer2pos,10)
	doSendMagicEffect(nplayer3pos,10)
	doSendMagicEffect(nplayer4pos,10)

	doTransformItem(item.uid,1945)

	else
	doPlayerSendCancel(cid,"All players must have level 100 to enter.")
	end
	else
	doPlayerSendCancel(cid,"You need 4 players in your team.")
end
end
if item.itemid == 1945 then

starting={x=188, y=111, z=10, stackpos=253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x=210, y=122, z=10, stackpos=253}
players=0
totalmonsters=0
monster = {}
repeat
creature= getThingfromPos(checking)
if creature.itemid > 0 then
if getPlayerAccess(creature.uid) == 0 then
players=players+1
end
if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then
totalmonsters=totalmonsters+1
monster[totalmonsters]=creature.uid
	end
end
checking.x=checking.x+1
if checking.x>ending.x then
checking.x=starting.x
checking.y=checking.y+1
end
until checking.y>ending.y
if players==0 then
trash= {x=233, y=125, z=10}
current=0
repeat
current=current+1
doTeleportThing(monster[current],trash)
until current>=totalmonsters
doTransformItem(item.uid,1946)
end


end
end
if item.uid == 5006 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"You have found a demon armor.")
doPlayerAddItem(cid,2494,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
if item.uid == 5007 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a magic sword.")
doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
if item.uid == 5008 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.")
doPlayerAddItem(cid,2431,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
if item.uid == 5009 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a Thunder Hammer.")
doPlayerAddItem(cid,2421,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
return 1
end

hope it works 4 you.
 
Back
Top