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

Joined
Jun 22, 2010
Messages
268
Solutions
1
Reaction score
5
Location
Usa, Utah
Script is fine, but how do i make it so the the switch will reset?
like only 1 team can do the quest ever restart >.>
Im using Ares 4.0 for 8.1


Annihilator.lua
LUA:
function onUse(cid, item, frompos, item2, topos)
	if item.uid == 5000 then
		if item.itemid == 1945 then
 
			player1pos = {x=868, y=983, z=5, stackpos=253}
			player1 = getThingfromPos(player1pos)
 
			player2pos = {x=869, y=983, z=5, stackpos=253}
			player2 = getThingfromPos(player2pos)
 
			player3pos = {x=870, y=983, z=5, stackpos=253}
			player3 = getThingfromPos(player3pos)
 
			player4pos = {x=871, y=983, z=5, 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 = 1000
 
				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=850, y=994, z=4}
						demon2pos = {x=852, y=994, z=4}
						demon3pos = {x=851, y=998, z=4}
						demon4pos = {x=853, y=998, z=4}
						demon5pos = {x=854, y=996, z=4}
						demon6pos = {x=855, y=996, z=4}
 
						doSummonCreature("Bizmo", demon1pos)
						doSummonCreature("Bizmo", demon2pos)
						doSummonCreature("Bizmo", demon3pos)
						doSummonCreature("Bizmo", demon4pos)
						doSummonCreature("Bizmo", demon5pos)
						doSummonCreature("Bizmo", demon6pos)
 
						nplayer1pos = {x=850, y=996, z=4}
						nplayer2pos = {x=851, y=996, z=4}
						nplayer3pos = {x=852, y=996, z=4}
						nplayer4pos = {x=853, y=996, z=4}
 
						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 present.")
			doPlayerAddItem(cid,1990,1)
			setPlayerStorageValue(cid,5000,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end
	end
	return 1
end


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" />
 
in actions.xml add
Code:
 <action uniqueid="3030" event="script" value="Annihilator.lua"/>

and the script annihilator.lua
Code:
-- CONFIG --

        local room = {     -- room with demons
        fromX = 870,
        fromY = 1035,
        fromZ = 7,
        --------------
        toX = 875,
        toY = 1039,
        toZ = 7
        }

        local monster_pos = {
        [1] = {pos = {870, 1035, 7}, monster = "Demon"},
        [2] = {pos = {872, 1035, 7}, monster = "Demon"},
        [3] = {pos = {871, 1039, 7}, monster = "Demon"},
        [4] = {pos = {873, 1039, 7}, monster = "Demon"},
        [5] = {pos = {874, 1037, 7}, monster = "Demon"},
        [6] = {pos = {875, 1037, 7}, monster = "Demon"}
        }

        local players_pos = {
        {x = 895, y =1037, z = 7, stackpos = 253},
        {x = 895, y =1038, z = 7, stackpos = 253},
        {x = 895, y =1039, z = 7, stackpos = 253},
        {x = 895, y =1040, z = 7, stackpos = 253}
        }

        local new_player_pos = {
        {x = 873, y = 1037, z = 7},
        {x = 872, y = 1037, z = 7},
        {x = 871, y = 1037, z = 7},
        {x = 870, y = 1037, z = 7}
        }

        local playersOnly = "no"
        local questLevel = 101

        ------------------------------------------------------
        --- CONFIG END ---------------------------------------
        ------------------------------------------------------

function onUse(cid, item, fromPosition, itemEx, toPosition)
        local all_ready, monsters, player, level = 0, 0, {}, 0
        if item.itemid == 1945 then
                for i = 1, #players_pos do
                        table.insert(player, 0)
                end
                for i = 1, #players_pos do
                        player[i] = getThingfromPos(players_pos[i])
                        if player[i].itemid > 0 then
                                if string.lower(playersOnly) == "yes" then
                                        if isPlayer(player[i].uid) == TRUE then
                                                all_ready = all_ready+1
                                        else
                                                monsters = monsters+1
                                        end
                                else
                                        all_ready = all_ready+1
                                end
                        end
                end
                if all_ready == #players_pos then
                        for i = 1, #players_pos do
                                player[i] = getThingfromPos(players_pos[i])
                                if isPlayer(player[i].uid) == TRUE then
                                        if getPlayerLevel(player[i].uid) >= questLevel then
                                                level = level+1
                                        end
                                else
                                        level = level+1
                                end
                        end
                        if level == #players_pos then
                                if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then 
                                        for _, area in pairs(monster_pos) do
                                                        doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
                                        end
                                        for i = 1, #players_pos do
                                                doSendMagicEffect(players_pos[i], CONST_ME_POFF)
                                                doTeleportThing(player[i].uid, new_player_pos[i], FALSE)
                                                doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
                                                doTransformItem(item.uid,1946)
                                        end
                                else
                                        doPlayerSendTextMessage(cid,19,"Only players can do this quest.")
                                end
                        else
                                doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.")
                        end
                else
                        doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.")
                end
        elseif item.itemid == 1946 then
                local player_room = 0
                for x = room.fromX, room.toX do
                        for y = room.fromY, room.toY do
                                for z = room.fromZ, room.toZ do
                                        local pos = {x=x, y=y, z=z,stackpos = 253}
                                        local thing = getThingfromPos(pos)
                                        if thing.itemid > 0 then
                                                if isPlayer(thing.uid) == TRUE then
                                                        player_room = player_room+1
                                                end
                                        end
                                end
                        end
                end
                if player_room >= 1 then
                        doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.")           
                elseif player_room == 0 then
                        for x = room.fromX, room.toX do
                                for y = room.fromY, room.toY do
                                        for z = room.fromZ, room.toZ do
                                                local pos = {x=x, y=y, z=z,stackpos = 253}
                                                local thing = getThingfromPos(pos)
                                                if thing.itemid > 0 then
                                                        doRemoveCreature(thing.uid)
                                                end
                                        end
                                end
                        end
                        doTransformItem(item.uid,1945)
                end
        end
        return TRUE
end

REP++ me if i helped you please :ninja:
 
trying?! LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL
i am using it in my rl map..
that's pathetic that I even posted it here... and btw i got it from shawak's script cuz u were so f***ing lazy to go search :ninja:
 
mine is the best !:D
Code:
- CONFIG --

        local room = {     -- room with demons
        fromX = 960,
        fromY = 946,
        fromZ = 12,
        --------------
        toX = 967,
        toY = 954,
        toZ = 12
        }

        local monster_pos = {
        [1] = {pos = {33222, 31669, 14}, monster = "Demon"},
        [2] = {pos = {33224, 31669, 14}, monster = "Demon"},
        [3] = {pos = {33226, 31671, 14}, monster = "Demon"},
        [4] = {pos = {33227, 31671, 14}, monster = "Demon"},
        [5] = {pos = {33223, 31673, 14}, monster = "Demon"},
        [6] = {pos = {33225, 31673, 14}, monster = "Demon"}
        }

        local players_pos = {
        {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 new_player_pos = {
        {x = 33225, y = 31671, z = 14},
        {x = 33224, y = 31671, z = 14},
        {x = 33223, y = 31671, z = 14},
        {x = 33222, y = 31671, z = 14}
        }

        local playersOnly = "yes"
        local questLevel = 100

        ------------------------------------------------------
        --- CONFIG END ---------------------------------------
        ------------------------------------------------------

function onUse(cid, item, fromPosition, itemEx, toPosition)
        local all_ready, monsters, player, level = 0, 0, {}, 0
        if item.itemid == 1945 then
                for i = 1, #players_pos do
                        table.insert(player, 0)
                end
                for i = 1, #players_pos do
                        player[i] = getThingfromPos(players_pos[i])
                        if player[i].itemid > 0 then
                                if string.lower(playersOnly) == "yes" then
                                        if isPlayer(player[i].uid) == TRUE then
                                                all_ready = all_ready+1
                                        else
                                                monsters = monsters+1
                                        end
                                else
                                        all_ready = all_ready+1
                                end
                        end
                end
                if all_ready == #players_pos then
                        for i = 1, #players_pos do
                                player[i] = getThingfromPos(players_pos[i])
                                if isPlayer(player[i].uid) == TRUE then
                                        if getPlayerLevel(player[i].uid) >= questLevel then
                                                level = level+1
                                        end
                                else
                                        level = level+1
                                end
                        end
                        if level == #players_pos then
                                if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then 
                                        for _, area in pairs(monster_pos) do
                                                        doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
                                        end
                                        for i = 1, #players_pos do
                                                doSendMagicEffect(players_pos[i], CONST_ME_POFF)
                                                doTeleportThing(player[i].uid, new_player_pos[i], FALSE)
                                                doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
                                                doTransformItem(item.uid,1946)
                                        end
                                else
                                        doPlayerSendTextMessage(cid,19,"Only players can do this quest.")
                                end
                        else
                                doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.")
                        end
                else
                        doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.")
                end
        elseif item.itemid == 1946 then
                local player_room = 0
                for x = room.fromX, room.toX do
                        for y = room.fromY, room.toY do
                                for z = room.fromZ, room.toZ do
                                        local pos = {x=x, y=y, z=z,stackpos = 253}
                                        local thing = getThingfromPos(pos)
                                        if thing.itemid > 0 then
                                                if isPlayer(thing.uid) == TRUE then
                                                        player_room = player_room+1
                                                end
                                        end
                                end
                        end
                end
                if player_room >= 1 then
                        doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.")           
                elseif player_room == 0 then
                        for x = room.fromX, room.toX do
                                for y = room.fromY, room.toY do
                                        for z = room.fromZ, room.toZ do
                                                local pos = {x=x, y=y, z=z,stackpos = 253}
                                                local thing = getThingfromPos(pos)
                                                if thing.itemid > 0 then
                                                        doRemoveCreature(thing.uid)
                                                end
                                        end
                                end
                        end
                        doTransformItem(item.uid,1945)
                end
        end
        return TRUE
end
 
yea thats what i was thinking...i also got an infraction for insulting another member...wheres his tho? :o

anyways i guess i read over the script to fast..
just had to change

LUA:
elseif item.itemid == 1946 then
                        if getPlayerAccess(cid) == 3 then

LUA:
 elseif item.itemid == 1946 then
                        if getPlayerAccess(cid) > 0 then
 
Take this.
LUA:
-- annihilator lever

function onUse(cid, item, frompos, item2, topos)

   	if item.uid == 7000 and item.itemid == 1945 then
		player1pos = {x=322, y=56, z=9, stackpos=253} <-- position player 1
		player1 = getThingfromPos(player1pos)

		player2pos = {x=321, y=56, z=9, stackpos=253} <-- position player 2
 		player2 = getThingfromPos(player2pos)

		player3pos = {x=320, y=56, z=9, stackpos=253} <-- position player 3
		player3 = getThingfromPos(player3pos)

		player4pos = {x=319, y=56, z=9, stackpos=253} <-- position player 4
		player4 = getThingfromPos(player4pos)
		dzwignia = os.clock()


		if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 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
				nplayer1pos = {x=337, y=57, z=9} <-- where send 1 players
				nplayer2pos = {x=336, y=57, z=9} <-- where send 2 players
				nplayer3pos = {x=335, y=57, z=9} <-- where send 3 players
				nplayer4pos = {x=334, y=57, z=9} <-- where send 4 players
 
				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,"Somebody in your team has already done this quest.")
			end
		else
			doPlayerSendCancel(cid,"You need four players for this quest.")
		end

	elseif item.uid ==7000 and item.itemid == 1946 then
		if (dzwignia - os.clock()) > 30 then
		doTransformItem(item.uid,item.itemid-1)
		end
		if getPlayerAccess(cid) > 0 then
			doTransformItem(item.uid,item.itemid-1)
			end
		end
	return 1
end
 
Last edited:
Back
Top