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

Windows annihilator - Help

Teddy

SweStream.se
Joined
Oct 2, 2008
Messages
3,797
Reaction score
10
Location
Sweden 172
I have a perfect Anni script i wanna have it like it is but 1 think i need to fix ,, its a problem i can only do Anni 1 time , i can only make anni 1 time , after 1 time i need to restart the server ?!:blink:

script :
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=105, y=366, z=6, stackpos=253}
 player1 = getThingfromPos(player1pos)

 player2pos = {x=106, y=366, z=6, stackpos=253}
 player2 = getThingfromPos(player2pos)

 player3pos = {x=107, y=366, z=6, stackpos=253}
 player3 = getThingfromPos(player3pos)

 player4pos = {x=108, y=366, z=6, 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 = 60

  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=61, y=406, z=8}
	demon2pos = {x=63, y=406, z=8}
	demon3pos = {x=65, y=408, z=8}
	demon4pos = {x=66, y=408, z=8}
	demon5pos = {x=62, y=410, z=8}
	demon6pos = {x=64, y=410, z=8}
	
 
   doSummonCreature("Demon", demon1pos)
   doSummonCreature("Demon", demon2pos)
   doSummonCreature("Demon", demon3pos)
   doSummonCreature("Demon", demon4pos)
   doSummonCreature("Demon", demon5pos)
  

	nplayer1pos = {x=61, y=408, z=8}
	nplayer2pos = {x=62, y=408, z=8}
	nplayer3pos = {x=63, y=408, z=8}
	nplayer4pos = {x=64, y=408, z=8}

   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,"Somthing Is Wrong : Some in your team are to low,you most be 4 player")
	end
   else
	doPlayerSendCancel(cid,"Somthing Is Wrong : Some in your team are to low,you most be 4 player")
   end
  else
  doPlayerSendCancel(cid,"Somthing Is Wrong : Some in your team are to low,you most be 4 player")
  end
  end
 if item.itemid == 1945 then
-- Here is the code start:
starting={x=60, y=405, z=8, stackpos=253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x=66, y=411, z=8, stackpos=253}
players=4
totalmonsters=6
monster = {Demon}
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=15, y=15, z=7}
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
 
How about this script? Alot better. Alot shorter.
Code:
local playerPosition =
{
	{x = 1070, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE},
	{x = 1071, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE},
	{x = 1072, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE},
	{x = 1073, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE}
}
local newPosition =
{
	{x=1070, y=1173, z=7},
	{x=1071, y=1173, z=7},
	{x=1072, y=1173, z=7},
	{x=1073, y=1173, z=7}
}
local demonPosition =
{
	{x=1070, y=1171, z=7},
	{x=1072, y=1171, z=7},
	{x=1074, y=1173, z=7},
	{x=1075, y=1173, z=7},
	{x=1071, y=1175, z=7},
	{x=1073, y=1175, z=7}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local player = {0, 0, 0, 0}
	local failed = TRUE
	local count = 0
	item.new = 1946

	if(item.itemid == 1945) then
		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then
			for i = 1, 4 do
				player[i] = getThingfromPos(playerPosition[i])
				if(player[i].itemid > 0) then
					if(isPlayer(player[i].uid) == TRUE) then
						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then
							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then
								failed = FALSE
								count = count + 1
							end
						end
					end
				end
				if(failed == TRUE) then
					doTransformItem(item.uid, 1946)
					return TRUE
				end
			end
			if(count == 4) then
				for i = 1, 6 do
					doSummonCreature("Demon", demonPosition[i])
				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)
					setPlayerStorageValue(player[i].uid, 9000, 1)
				end
				setGlobalStorageValue(9000, os.time(t))
			end
		end
	else
		item.new = 1945
	end
	doTransformItem(item.uid, item.new)
	return TRUE
end

All credits goes to Elf.
 
How about this script? Alot better. Alot shorter.
Code:
local playerPosition =
{
	{x = 1070, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE},
	{x = 1071, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE},
	{x = 1072, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE},
	{x = 1073, y = 1173, z = 6, stackpos = STACKPOS_TOP_CREATURE}
}
local newPosition =
{
	{x=1070, y=1173, z=7},
	{x=1071, y=1173, z=7},
	{x=1072, y=1173, z=7},
	{x=1073, y=1173, z=7}
}
local demonPosition =
{
	{x=1070, y=1171, z=7},
	{x=1072, y=1171, z=7},
	{x=1074, y=1173, z=7},
	{x=1075, y=1173, z=7},
	{x=1071, y=1175, z=7},
	{x=1073, y=1175, z=7}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local player = {0, 0, 0, 0}
	local failed = TRUE
	local count = 0
	item.new = 1946

	if(item.itemid == 1945) then
		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then
			for i = 1, 4 do
				player[i] = getThingfromPos(playerPosition[i])
				if(player[i].itemid > 0) then
					if(isPlayer(player[i].uid) == TRUE) then
						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then
							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then
								failed = FALSE
								count = count + 1
							end
						end
					end
				end
				if(failed == TRUE) then
					doTransformItem(item.uid, 1946)
					return TRUE
				end
			end
			if(count == 4) then
				for i = 1, 6 do
					doSummonCreature("Demon", demonPosition[i])
				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)
					setPlayerStorageValue(player[i].uid, 9000, 1)
				end
				setGlobalStorageValue(9000, os.time(t))
			end
		end
	else
		item.new = 1945
	end
	doTransformItem(item.uid, item.new)
	return TRUE
end

All credits goes to Elf.

thx i think , can 1 player do it more then 1 time ?!
and where is the ID for the switch `? :S
 
Back
Top