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

Annihilator problem

Rizzla

Donator / Photoshop
Joined
Sep 7, 2008
Messages
1,335
Reaction score
2
Location
Sweden -> Stockholm
The annihilator quest does not works for me, i use TFS 0.2.

Wheh i push the lever i got TPed to the anni room, but the demons does not spawn there. And the Demon position is 100% Correct.

I have test more than 5 scripts, but it is same problem on everyone.
The demons does not spawn!! :(

Can someone who really knows the problem help me?


Here is the script i use now:

Code:
 -- Annihilator script by GriZzm0
 -- 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
	rotworm1pos = {x=33220, y=31657, z=13}
	rotworm2pos = {x=33222, y=31657, z=13}
	rotworm3pos = {x=33219, y=31661, z=13}
	rotworm4pos = {x=33221, y=31661, z=13}
	rotworm5pos = {x=33223, y=31659, z=13}
	rotworm6pos = {x=33224, y=31659, z=13}
	
 
   doSummonCreature("rotworm", rotwormpos)
   doSummonCreature("rotworm", rotworm2pos)
   doSummonCreature("rotworm", rotworm3pos)
   doSummonCreature("rotworm", rotworm4pos)
   doSummonCreature("rotworm", rotworm5pos)
  

	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
 
Hmm..I changed something on the script but im not sure it will work..

And just so you know, Im new here and I dont know if I have done it right :D

Code:
 -- Annihilator script by GriZzm0
 -- 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

If that doesn't work then I can't help you..
 
Instructions by GriZzmo:
1. Open the map you want in a mapeditor.
2. Build your annihilator switch room and quest room.
3. Set uniqueid 5000 on the switch (use switch id 1945)
4. Set uniqueid 5001-5004 on the quest chests. (Start from left)
5. Open actions.xml and add this.
Code:
<action uniqueid="5000" script="annihilator.lua" />
<action uniqueid="5001" script="annihilator.lua" />
<action uniqueid="5002" script="annihilator.lua" />
<action uniqueid="5003" script="annihilator.lua" />
<action uniqueid="5004" script="annihilator.lua" />
<action uniqueid="5005" script="annihilator.lua" />
6. Create a new file in data/actions/scripts named annihilator.lua and add this.
Code:
-- 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.
--
-- UniqueIDs used:
--
-- 5000 = The switch.
-- 5001 = Demon Armor chest.
-- 5002 = Magic Sword chest.
-- 5003 = Stonecutter Axe chest.
-- 5004 = Annihilation Bear chest.
-- 5005 = Thunder Hammer chest.

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

			player1pos = {x=1229, y=1077, z=10, stackpos=253}
			player1 = getThingfromPos(player1pos)

			player2pos = {x=1228, y=1077, z=10, stackpos=253}
			player2 = getThingfromPos(player2pos)

			player3pos = {x=1227, y=1077, z=10, stackpos=253}
			player3 = getThingfromPos(player3pos)

			player4pos = {x=1226, y=1077, z=10, 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,5000)
					queststatus2 = getPlayerStorageValue(player2.uid,5000)
					queststatus3 = getPlayerStorageValue(player3.uid,5000)
					queststatus4 = getPlayerStorageValue(player4.uid,5000)

					if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
			
						demon1pos = {x=1243, y=1072, z=11}
						demon2pos = {x=1245, y=1072, z=11}
						demon3pos = {x=1244, y=1076, z=11}
						demon4pos = {x=1246, y=1076, z=11}
						demon5pos = {x=1247, y=1074, z=11}
						demon6pos = {x=1248, y=1074, z=11}
						 
						doSummonCreature("Demon", demon1pos)
						doSummonCreature("Demon", demon2pos)
						doSummonCreature("Demon", demon3pos)
						doSummonCreature("Demon", demon4pos)
						doSummonCreature("Demon", demon5pos)
						doSummonCreature("Demon", demon6pos)

						nplayer1pos = {x=1246, y=1074, z=11}
						nplayer2pos = {x=1245, y=1074, z=11}
						nplayer3pos = {x=1244, y=1074, z=11}
						nplayer4pos = {x=1243, y=1074, z=11}

						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,item.itemid+1)

					else
						doPlayerSendCancel(cid,"Sorry, not possible.")
					end
				else
					doPlayerSendCancel(cid,"Sorry, not possible.")
				end
			else
				doPlayerSendCancel(cid,"Sorry, not possible.")
			end
		elseif item.itemid == 1946 then
			if getPlayerAccess(cid) == 3 then
				doTransformItem(item.uid,item.itemid-1)
			else
				doPlayerSendCancel(cid,"Sorry, not possible.")
			end
		end
	elseif item.uid == 5001 then
	
		queststatus = getPlayerStorageValue(cid,5000)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a demon armor.")
			doPlayerAddItem(cid,2494,1)
			setPlayerStorageValue(cid,5000,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 5002 then
	
		queststatus = getPlayerStorageValue(cid,5000)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a magic sword.")
			doPlayerAddItem(cid,2400,1)
			setPlayerStorageValue(cid,5000,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 5003 then
	
		queststatus = getPlayerStorageValue(cid,5000)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.")
			doPlayerAddItem(cid,2431,1)
			setPlayerStorageValue(cid,5000,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 5004 then
	
		queststatus = getPlayerStorageValue(cid,5000)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a teddy bear.")
			doPlayerAddItem(cid,2326,1)
			setPlayerStorageValue(cid,5000,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 5005 then
	
		queststatus = getPlayerStorageValue(cid,5000)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a thunder hammer.")
			doPlayerAddItem(cid,2421,1)
			setPlayerStorageValue(cid,5000,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	end
	return 1
end

7. Check the cordinates of your demon spots and change this.
Code:
demon1pos = {x=243, y=205, z=7}
demon2pos = {x=245, y=205, z=7}
demon3pos = {x=244, y=209, z=7}
demon4pos = {x=246, y=209, z=7}
demon5pos = {x=247, y=207, z=7}
demon6pos = {x=248, y=207, z=7}
(My demon positions looks like this)
Demonpos: (1 to 6 = demons. x = nothing. l = lava. p = player.)
1X2X
LLLL
PPPP56
LLLL
X3X4
 
Back
Top