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

Annih and Parchament room

Sagitta

Kebab
Joined
Sep 19, 2007
Messages
105
Reaction score
0
Location
Norway
Greetings.

I'm having problems with my Annilathor lever. It's just poffing at the players and getting a error in my TFS 2.6.0. :eek:nuse error

I request a script that summons demons aswell


~~

Parchament room script is aslo wanted.
WHen you open or move the parchament you will get 100k and 4 demons will be summoned around you


Thanks in advance
 
data/scripts/annihilator.lua
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.
 --5001 = Demon Armor chest.
 --5002 = Magic Sword chest.
 --5003 = Stonecutter Axe chest.
 --5004 = Present chest.


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

 player1pos = {x=1632, y=425, z=13, stackpos=253}
 player1 = getThingfromPos(player1pos)

 player2pos = {x=1633, y=425, z=13, stackpos=253}
 player2 = getThingfromPos(player2pos)

 player3pos = {x=1634, y=425, z=13, stackpos=253}
 player3 = getThingfromPos(player3pos)

 player4pos = {x=1635, y=425, 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,100)
      queststatus2 = getPlayerStorageValue(player2.uid,100)
      queststatus3 = getPlayerStorageValue(player3.uid,100)
      queststatus4 = getPlayerStorageValue(player4.uid,100)

      if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
    --if 1==1 then
    demon1pos = {x=1632, y=423, z=14}
    demon2pos = {x=1634, y=423, z=14}
    demon3pos = {x=1633, y=427, z=14}
    demon4pos = {x=1635, y=427, z=14}
    demon5pos = {x=1636, y=425, z=14}
    demon6pos = {x=1637, y=425, z=14}
 
   doSummonCreature("anni Demon", demon1pos)
   doSummonCreature("anni Demon", demon2pos)
   doSummonCreature("anni Demon", demon3pos)
   doSummonCreature("anni Demon", demon4pos)
   doSummonCreature("front Demon", demon5pos)
   doSummonCreature("front Demon", demon6pos)

    nplayer1pos = {x=1632, y=425, z=14}
    nplayer2pos = {x=1633, y=425, z=14}
    nplayer3pos = {x=1634, y=425, z=14}
    nplayer4pos = {x=1635, y=425, z=14}

   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,"Someone has already done this quest")
    end
   else
    doPlayerSendCancel(cid,"Your level is too low")
   end
  else
  doPlayerSendCancel(cid,"You need 4 players in your team.")
  end
 end
 if item.itemid == 1945 then
-- Here is the code start:
starting={x=1632, y=423, z=14, stackpos=253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x=1638, y=428, z=14, 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=1715, y=678, z=5}
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
if item.uid == 5001 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 == 5002 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 == 5003 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 == 5004 then
 queststatus = getPlayerStorageValue(cid,100)
 if queststatus ~= 1 then
  doPlayerSendTextMessage(cid,22,"You have found a present.")
  doPlayerAddItem(cid,2326,1)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"It is empty.")
 end
 end
 return 1
end
It works for tfs i believe and it has monster removal (you can set the coordenates where is suppoused to move the demons).
 
I will try it tomorrow, not time right now.

Aswell my parchament works 90% now, just the problem that people can click how many times they want! xD And then more demons spawning.

Code:
function onUse(cid, item, frompos, item2, topos)
playerpos = getPlayerPosition(cid)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

if item.uid == 5555 then

doPlayerSendTextMessage(cid,22,"You have found a 10 crystal coins.")
player2pos = {x=703, y=600, z=7}
  doTeleportThing(cid,player2pos)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,playerpos)
doSendMagicEffect(topos,12)
coins_uid = doPlayerAddItem(cid,2160,10)

end
return 1
end


Anyone know how to fix it so people can only do it one time?


Thanks in advance
 
try it with that:

Code:
function onUse(cid, item, frompos, item2, topos)
player = getThingfromPos(playerpos)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

queststatus = getPlayerStorageValue(playerpos.uid,100)

if item.uid == 5555 then

queststatus = getPlayerStorageValue(cid,100)
 if queststatus == -1 then
  doPlayerSendTextMessage(cid,22,"You have found 10 crystal coins.")
  doPlayerAddItem(cid,2160,10)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"You already got your reward!")
 end
playerpos = {x=703, y=600, z=7}
  doTeleportThing(cid,player2pos)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,player)
doSendMagicEffect(topos,12)


end
return 1
end

I hope this works!

yours Evil Hero
 
I will try it tomorrow, not time right now.

Aswell my parchament works 90% now, just the problem that people can click how many times they want! xD And then more demons spawning.

Code:
function onUse(cid, item, frompos, item2, topos)
playerpos = getPlayerPosition(cid)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

if item.uid == 5555 then

doPlayerSendTextMessage(cid,22,"You have found a 10 crystal coins.")
player2pos = {x=703, y=600, z=7}
  doTeleportThing(cid,player2pos)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,playerpos)
doSendMagicEffect(topos,12)
coins_uid = doPlayerAddItem(cid,2160,10)

end
return 1
end


Anyone know how to fix it so people can only do it one time?


Thanks in advance


Try to make an player check if players are already inside. Or make atleast 15min delay before you can usw the switch again.
 
try it with that:

Code:
function onUse(cid, item, frompos, item2, topos)
player = getThingfromPos(playerpos)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

queststatus = getPlayerStorageValue(playerpos.uid,100)

if item.uid == 5555 then

queststatus = getPlayerStorageValue(cid,100)
 if queststatus == -1 then
  doPlayerSendTextMessage(cid,22,"You have found 10 crystal coins.")
  doPlayerAddItem(cid,2160,10)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"You already got your reward!")
 end
playerpos = {x=703, y=600, z=7}
  doTeleportThing(cid,player2pos)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,player)
doSendMagicEffect(topos,12)


end
return 1
end

I hope this works!

yours Evil Hero


NOpe, it came an Error while trying to reload actions/Start server. Warning, can't load script .... Evc, to close <eof> something, hosting computer is so far away >.> Need to ran over an check x)


Thanks for your help atleast


[Still in need of help to the script]
 
Try this then:
Code:
function onUse(cid, item, frompos, item2, topos)
player = getThingfromPos(playerpos)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

queststatus = getPlayerStorageValue(playerpos.uid,100)

if item.uid == 5555 then

queststatus = getPlayerStorageValue(cid,100)
 if queststatus == -1 then
  doPlayerSendTextMessage(cid,22,"You have found 10 crystal coins.")
  doPlayerAddItem(cid,2160,10)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"You already got your reward!")
 end
playerpos = {x=703, y=600, z=7}
  doTeleportThing(cid,playerpos)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,player)
doSendMagicEffect(topos,12)


end
return 1
end
 
I think i found my error.

Code:
function onUse(cid, item, frompos, item2, topos)
player = getThingfromPos(playerpos)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

queststatus = getPlayerStorageValue([COLOR="Red"]player[/COLOR].uid,100)

if item.uid == 5555 then

queststatus = getPlayerStorageValue(cid,100)
 if queststatus == -1 then
  doPlayerSendTextMessage(cid,22,"You have found 10 crystal coins.")
  doPlayerAddItem(cid,2160,10)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"You already got your reward!")
 end
playerpos = {x=703, y=600, z=7}
  doTeleportThing(cid,player)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,player)
doSendMagicEffect(topos,12)


end
return 1
end

red = the right thing

last time it was "playerpos" i think that was the error

I hope it will work now :S

yours Evil Hero
 
Last edited:
I think i found my error.

Code:
function onUse(cid, item, frompos, item2, topos)
player = getThingfromPos(playerpos)
demon1pos = {x=33057, y=31622, z=15}
demon2pos = {x=33058, y=31628, z=15}
demon3pos = {x=33068, y=31621, z=15}
demon4pos = {x=33068, y=31628, z=15}

queststatus = getPlayerStorageValue([COLOR=Red]player[/COLOR].uid,100)

if item.uid == 5555 then

queststatus = getPlayerStorageValue(cid,100)
 if queststatus == -1 then
  doPlayerSendTextMessage(cid,22,"You have found 10 crystal coins.")
  doPlayerAddItem(cid,2160,10)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"You already got your reward!")
 end
playerpos = {x=703, y=600, z=7}
  doTeleportThing(cid,player2pos)
  doSummonCreature("Demon", demon1pos)
  doSummonCreature("Demon", demon2pos)
  doSummonCreature("Demon", demon3pos)
  doSummonCreature("Demon", demon4pos)
doTeleportThing(cid,player)
doSendMagicEffect(topos,12)


end
return 1
end
red = the right thing

last time it was "playerpos" i think that was the error

I hope it will work now :S

yours Evil Hero


Code:
 playerpos = {x=703, y=600, z=7}
  doTeleportThing(cid,player2pos)

See anything wrong with that, maybe? ^^
 
Try this, i optimized some this script :)
Code:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local playerpos = {x=703, y=600, z=7}
local demonPosition = {{"Demon", {x=33057, y=31622, z=15}}, {"Demon", {x=33058, y=31628, z=15}}, {"Demon", {x=33068, y=31621, z=15}}, {"Demon", {x=33068, y=31628, z=15}}}
local queststatus = getPlayerStorageValue(cid, 100)
	if item.uid == 5555 then
		if queststatus == -1 then
			doPlayerSendTextMessage(cid, 22, "You have found 10 crystal coins.")
			doPlayerAddItem(cid, 2160, 10)
			setPlayerStorageValue(cid, 100, 1)
		else
			doPlayerSendTextMessage(cid, 22, "You already got your reward!")
		end	
		for i = 1, 4 do
			doSummonCreature(demonPosition[i][1], demonPosition[i][2])
		end
		doTeleportThing(cid, playerpos, FALSE)
		doSendMagicEffect(topos, 12)
	end
	return TRUE
end
 
Last edited:
PHP:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local playerpos = {x=703, y=600, z=7}
local demonPosition = {{"Demon", {x=33057, y=31622, z=15}}, {"Demon", {x=33058, y=31628, z=15}}, {"Demon", {x=33068, y=31621, z=15}}, {"Demon", {x=33068, y=31628, z=15}}}
local queststatus = getPlayerStorageValue(cid, 100)
	if item.uid == 5555 then
		if queststatus == -1 then
			doPlayerSendTextMessage(cid, 22, "You have found 10 crystal coins.")
			doPlayerAddItem(cid, 2160, 10)
			setPlayerStorageValue(cid, 100, 1)
			for i = 1, 4 do
				doSummonCreature(demonPosition[i][1], demonPosition[i][2])
			end
		else
			doPlayerSendTextMessage(cid, 22, "You already got your reward!")	
			doTeleportThing(cid, playerpos, FALSE)
			doSendMagicEffect(topos, 12)
		end	
	end
	return TRUE
end
 
Damn, how to do anni? I have default anni scrips from tfs (changed this local anniReward etc.), chests with id as weapons to get, uniqueid added to actions.xml and it doesn't work :/ When the player click on the chest he gets
It's empty.
You have found...

It seems like he gets item from scrips id of chest = id of item to get + script for anni.
 
You can't use UniqueIDs on chests, that way it just uses the UniqueIDs ID number and looks up what item has that ID and gives the player that instead. Use actionID for the script instead.
 
Back
Top