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

Action Annhilator Quest(with bear in box and real positions)

Snow

New Member
Joined
Jan 16, 2008
Messages
381
Reaction score
0
Hello!
I'm presenting an Annihilator Script!
the positions on identical to real and the script includes the bear coming inside the present box.
Works on TFS 0.3.6 pl1


Lua:
-- 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.
--
-- UniqueIDs used:
--
-- 30015 = The switch.
-- 30016 = Demon Armor chest.
-- 30017 = Magic Sword chest.
-- 30018 = Stonecutter Axe chest.
-- 30019 = Present chest.
--

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

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

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

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

			player1pos = {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,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=33219, y=31661, z=13}
						demon1pos = {x=33221, y=31661, z=13}
						demon1pos = {x=33220, y=31657, z=13}
						demon1pos = {x=33222, y=31657, z=13}
						demon1pos = {x=33223, y=31659, z=13}
						demon1pos = {x=33224, y=31659, z=13}
						 
						doSummonCreature("Demon", demon1pos)
						doSummonCreature("Demon", demon2pos)
						doSummonCreature("Demon", demon3pos)
						doSummonCreature("Demon", demon4pos)
						doSummonCreature("Demon", demon5pos)
						doSummonCreature("Demon", demon6pos)

						nplayer1pos = {x=33222, y=31659, z=13}
						nplayer1pos = {x=33221, y=31659, z=13}
						nplayer1pos = {x=33220, y=31659, z=13}
						nplayer1pos = {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,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 == 30016 then
	
		queststatus = getPlayerStorageValue(cid,30015)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a demon armor.")
			doPlayerAddItem(cid,2494,1)
			setPlayerStorageValue(cid,30015,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 30017 then
	
		queststatus = getPlayerStorageValue(cid,30015)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a magic sword.")
			doPlayerAddItem(cid,2400,1)
			setPlayerStorageValue(cid,30015,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 30018 then
	
		queststatus = getPlayerStorageValue(cid,30015)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.")
			doPlayerAddItem(cid,2431,1)
			setPlayerStorageValue(cid,30015,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	elseif item.uid == 30019 then
	
		queststatus = getPlayerStorageValue(cid,30015)
		
		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,"You have found a present.")
        local bag = doPlayerAddItem(cid, 1990, 1)
			doAddContainerItem(bag, 2326, 1)
			setPlayerStorageValue(cid,30015,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	end
	return 1
end

Hope you like it :p
 
Last edited:
first of all: put all things like uids, positions etc before function(will be loaded when serv starts, not on every execution of script, also it will make it easier to configure)
also you missed the cap/slots thingy for chests(I know that its unreal that someone will be out of cap or space after anni but you know, if it will somehow happen and player will lose his item he will be mad)
Also you can try using some loops and arrays here :D
And cleaning from bodies/fire would be good before sending new team to quest room

Emm, sorry if it looks that I blame you, it wasnt my goal.
 
I'm not much like scripting, I just took a bit of 1 script and a bit of another and made this one >.<

it's cool if you can post a better one :p
 
i have problem :


[Error - Action Interface]
data/actions/scripts/advanceanni.lua:eek:nUse
Description:
attempt to index a nil value
stack traceback:
[C]: in function 'getThingfromPos'
 
erroe:
[Error - Action Interface]
data/actions/scripts/advanceanni.lua:eek:nUse
Description:
data/actions/scripts/advanceanni.lua:6: attempt to call global 'getThingFromPosition' (a nil value)
stack traceback:
data/actions/scripts/advanceanni.lua:6: in function <data/actions/scripts/advanceanni.lua:1>
 
make a better one??

@witmar
It was tested at TFS 0.3.6 pl1 and it works.

yes!
very very very better...

using loop please.

using loop you decrease the amount of yown the script.

using tables please.

using tables you organize the script again that is much better.
 
yes!
very very very better...

using loop please.

using loop you decrease the amount of yown the script.

using tables please.

using tables you organize the script again that is much better.

so make it...?

pff complaining is too easy, I wanna see you post a better one.
 
The script is horrible, you're not even using local variables.
 
make a better one and post :)

it works perfectly and has the bear in box, i searched the whole forum and didn't find one like it
 

Similar threads

Back
Top