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

Request Anni

Pietia

Active Member
Joined
Jan 13, 2008
Messages
2,147
Reaction score
48
Location
Poland
i searched on forum all annihilator script and no one works with latest tfs 0.2 version official ... can somone give me good working script for annihilator ?
 
Check this one

PHP:
-- Credits to GrizZm0 for most of the <span class="highlight">script</span>
-- Credits to Tworn for the cleanArea(), a bit modified by Ispiro
-- Credits to Ispiro for a more easier <span class="highlight">script</span> to configurate and easier to read.
 
local starting= {x = XXX, y = YYY, z = ZZZ} -- edit this to the top left sqm of ur annhilator room
local ending= {x = XXX, y = YYY, z = ZZZ} -- edit this to the bottom right sqm of ur annhilator room
 
local playerPos = { -- oldPositions; positions of players before they get teleported.
	{x = XXX, y = YYY, z = ZZZ},
	{x = XXX, y = YYY, z = ZZZ},
	{x = XXX, y = YYY, z = ZZZ},
	{x = XXX, y = YYY, z = ZZZ}
}
 
local newPlayerPos = { -- Positions for where players should be teleported, make sure it's in the same order as oldPositions
	{x = XXX, y = YYY, z = ZZZ},
	{x = XXX, y = YYY, z = ZZZ},
	{x = XXX, y = YYY, z = ZZZ},
	{x = XXX, y = YYY, z = ZZZ}
}
 
local creaturePos = { -- Name and position of monsters to summon.
	{"Demon", {x = XXX, y = YYY, z = ZZZ}},
	{"Demon", {x = XXX, y = YYY, z = ZZZ}},
	{"Demon", {x = XXX, y = YYY, z = ZZZ}},
	{"Demon", {x = XXX, y = YYY, z = ZZZ}},
	{"Demon", {x = XXX, y = YYY, z = ZZZ}},
	{"Demon", {x = XXX, y = YYY, z = ZZZ}}
}
 
if(#playerPos ~= #newPlayerPos) then
	error("Annhilator has not been properly configured.")
end
--- Preferably, do not edit anything below this line unless you know exactly what you are doing.
local player = {}
 
function onUse(cid, item, frompos, item2, topos)
	if(item.uid == 5000) then --- change to different item.uid according to ur mapeditor
		if(item.itemid == 1945) then
			for i, pos in ipairs(playerPos) do -- add player id's to table
				player[i] = getTopCreature(pos)
			end
			local ret, players = checkPlayers(cid)
			if(ret) then
				local ret, player = checkLevel(100)
				if(ret) then
					local ret, player = checkStorage(100)
					if(ret) then
						summonCreatures(creaturePos)
						teleportPlayers(2, 10) -- 2 stands for the effect on old pos, 10 for the effect on new pos.
						doTransformItem(item.uid, 1946)
					else
						sendPlayersText(players, getPlayerName(player) .. " has already done this quest.")
					end
				else
					sendPlayersText(players, getPlayerName(player) .. " is too low.")
				end	
			else
				sendPlayersText(players, "You need " .. #playerPos .. " players to do this quest.")
			end	
		elseif(item.itemid == 1946) then -- preferably, to be the id of the lever added by mapeditor.
			if(cleanArea()) then
				doTransformItem(item.uid, 1945)
			else
				return FALSE
			end	
		end
		return TRUE
	--- Chests.
	elseif(item.uid == 5001) then -- demon armor
		return questChestPrize(cid, 2494, 100)
	elseif(item.uid == 5002) then -- magic sword
		return questChestPrize(cid, 2400, 100)
	elseif(item.uid == 5003) then -- stonecutter's axe
		return questChestPrize(cid, 2431, 100)
	elseif(item.uid == 5004) then -- present box
		return questChestPrize(cid, 1990, 100)				
	end
end
 
function sendPlayersText(players, text)
	for _, player in ipairs(players) do 
		doPlayerSendCancel(player, text)
	end
end
 
function questChestPrize(cid, itemid, storage)
	if(getPlayerStorageValue(cid, storage) < TRUE) then
		doPlayerAddItem(cid, itemid, 1)
		setPlayerStorageValue(cid, storage, TRUE)
		local item = getItemDescriptions(itemid)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found " .. item.article .. " " .. item.name .. "")
	else
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
	end
	return TRUE
end
 
function checkLevel(minLevel)
	for _, player in ipairs(player) do
		if(getPlayerLevel(player) < minLevel) then
			return false, player
		end
	end	
	return true
end
 
function checkStorage(storageValue)
	for _, player in ipairs(player) do
		if(getPlayerStorageValue(player, storageValue) ~= TRUE) then
			return false, player
		end
	end	
	return true
end
 
function cleanArea()
	local checking= {x = starting.x, y = starting.y, z = starting.z, stackpos = 253}
	local monster = {}
	while(checking.y <= ending.y) do
		local creature = getTopCreature(checking)
		if(isCreature(creature) == TRUE) then
			if(isPlayer(creature) == TRUE) then
				return false
			else
				table.insert(monster, creature)
			end
		end
		if(checking.x == ending.x) then
			checking.x = starting.x
			checking.y = checking.y + 1
		end
		checking.x = checking.x + 1
	end
	for i, c in ipairs(monster) do 
		doRemoveCreature(c)
	end	
	return true
end
 
function summonCreatures(parameters)
	for _, monster in ipairs(parameters) do
		doSummonCreature(monster[1], monster[2])
	end
end
 
function teleportPlayers(effect1, effect2)
	for currentPlayer = 1, table.getn(player) do
		doTeleportThing(player[currentPlayer], newPlayerPos[currentPlayer])
		doSendMagicEffect(playerPos[currentPlayer], effect1) -- send animation after teleport, players teleported won't see it anyways
		doSendMagicEffect(newPlayerPos[currentPlayer], effect2)
	end
end
 
function checkPlayers(cid)
	local ret = {}
	table.insert(ret, cid)
	for _, curPlayer in ipairs(player) do
		if(isPlayer(curPlayer) == TRUE) then
			if(curPlayer ~= cid) then 
				table.insert(ret, curPlayer)
			end
		else	
			return false, ret
		end
	end	
	return true, ret
end
 
Last edited:
I cant find a annhlator script that does NOT work for TFS. You are doing something wrong, not the scripts.

Moved to requests.

Sasir's version of annhilator is one working script aswell. So problem solved?
 
I cant find a annhlator script that does NOT work for TFS. You are doing something wrong, not the scripts.

Moved to requests.

Sasir's version of annhilator is one working script aswell. So problem solved?

I think know what he has forgot and that is to change all the positions of anni.
 
Back
Top