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

Last Man Standing event

dragocodez

Just a noob.
Joined
Jun 29, 2012
Messages
80
Reaction score
6
I have a last man standing event But it doesnt teleport the players from the waiting room to the arena
Script :
Code:
local t = {
	tmp = {
		{x = 17566, y = 17215, z = 7}, -- North west corner of Area where players must stand in order to join the event 
		{x = 17574, y = 17223, z = 7} -- South east corner of Area 
	},
	arena = {
		{x = 17576, y = 17212, z = 7}, -- North west Corner of Arena 
		{x = 17591, y = 17226, z = 7}, -- South East corner of Arena 
		{x = 17584, y = 17219, z = 7} -- Center of Arena
	},
	
	from = {x = 17576, y = 17212, z = 7}, -- top left cornor of the playground (random players teleportation)
    to = {x = 17591, y = 17226, z = 7}, -- bottom right cornor of the playground (random players teleportation)
	
	minPlayers = 1, -- min players required to start the battle
	noPlayers = 1, -- no players
	prize = {6527} -- rewards
}
local kick = 0

function onThink()
	local arenaPlayers = {}

	for x = t.arena[1].x, t.arena[2].x do
		for y = t.arena[1].y, t.arena[2].y do
			for z = t.arena[1].z, t.arena[2].z do
				local pos = {x = x, y = y, z = z}
				local n = getTileInfo(pos).creatures
				if n ~= 0 then
					pos.stackpos = 1
					local c = getThingfromPos(pos)
					while c.uid ~= 0 do
						if c.itemid == 1 and c.type == 1 then
							table.insert(arenaPlayers, c.uid)
							if #arenaPlayers == n then
								break
							end
						end
						pos.stackpos = pos.stackpos + 1
						c = getThingfromPos(pos)
					end
				end
			end
		end
	end

	if #arenaPlayers == 1 then
		local p = getPlayerMasterPos(arenaPlayers[1])
		doTeleportThing(arenaPlayers[1], p)
		doSendMagicEffect(p, CONST_ME_TELEPORT)
		doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You won a battle and received your reward.")
		doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")
		doPlayerAddItem(arenaPlayers[1], t.prize[math.random(#t.prize)], 10)
		kick = 0
	elseif #arenaPlayers > 1 then
		if kick == 0 then
			kick = os.time()
		else
			if os.time() - kick >= 840 then
				kick = 0
				for i = 1, #arenaPlayers do
					 doTeleportThing(arenaPlayers[i], {x=32345, y=32225, z=7})
					doPlayerSendTextMessage(arenaPlayers[i], MESSAGE_STATUS_WARNING, "Too even, try harder next time.")
				end
			end
		end
	elseif #arenaPlayers == 0 then
		kick = 0
		
		local players = {}
		for x = t.tmp[1].x, t.tmp[2].x do
			for y = t.tmp[1].y, t.tmp[2].y do
				for z = t.tmp[1].z, t.tmp[2].z do
					local c = getTopCreature({x = x, y = y, z = z})
					if c.type == 1 then
						table.insert(players, c.uid)
					end
				end
			end
		end

		if #players >= t.minPlayers then
			for i = 1, #players do
				local p = {x = math.random(t.from.x, t.to.x), y = math.random(t.from.y, t.to.y), z = math.random(t.from.z, t.to.z)}
				doTeleportThing(players[i], p)
				doSendMagicEffect(p, CONST_ME_TELEPORT)
				doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The battle begins. Survive for glory!")
			end
		--[[else
			for i = 1, #players do
				 doTeleportThing(arenaPlayers[i], {x=32345, y=32225, z=7})
				doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The event didn't start because there isn't enough players in area!")
			end]]
		end
	end
	return true
end
 
Lua:
local t = {
	tmp = {
		{x = 17566, y = 17215, z = 7}, -- North west corner of Area where players must stand in order to join the event 
		{x = 17574, y = 17223, z = 7} -- South east corner of Area 
	},
	arena = {
		{x = 17576, y = 17212, z = 7}, -- North west Corner of Arena 
		{x = 17591, y = 17226, z = 7}, -- South East corner of Arena 
		{x = 17584, y = 17219, z = 7} -- Center of Arena
	},
	
	from = {x = 17576, y = 17212, z = 7}, -- top left cornor of the playground (random players teleportation)
    to = {x = 17591, y = 17226, z = 7}, -- bottom right cornor of the playground (random players teleportation)
	
	minPlayers = 1, -- min players required to start the battle
	noPlayers = 1, -- no players
	prize = {6527} -- rewards
}
local kick = 0

function onThink()
	local arenaPlayers = {}

	for x = t.arena[1].x, t.arena[2].x do
		for y = t.arena[1].y, t.arena[2].y do
			for z = t.arena[1].z, t.arena[2].z do
				local pos = {x = x, y = y, z = z}
				local n = getTileInfo(pos).creatures
				if n ~= 0 then
					pos.stackpos = 1
					local c = getThingfromPos(pos)
					while c.uid ~= 0 do
						if c.itemid == 1 and c.type == 1 then
							table.insert(arenaPlayers, c.uid)
							if #arenaPlayers == n then
								break
							end
						end
						pos.stackpos = pos.stackpos + 1
						c = getThingfromPos(pos)
					end
				end
			end
		end
	end

	if #arenaPlayers == 1 then
		local p = getPlayerMasterPos(arenaPlayers[1])
		doTeleportThing(arenaPlayers[1], p)
		doSendMagicEffect(p, CONST_ME_TELEPORT)
		doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You won a battle and received your reward.")
		doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")
		doPlayerAddItem(arenaPlayers[1], t.prize[math.random(#t.prize)], 10)
		kick = 0
	elseif #arenaPlayers > 1 then
		if kick == 0 then
			kick = os.time()
		else
			if os.time() - kick >= 840 then
				kick = 0
				for i = 1, #arenaPlayers do
					 doTeleportThing(arenaPlayers[i], {x=32345, y=32225, z=7})
					doPlayerSendTextMessage(arenaPlayers[i], MESSAGE_STATUS_WARNING, "Too even, try harder next time.")
				end
			end
		end
	elseif #arenaPlayers == 0 then
		kick = 0
		
		local players = {}
		for x = t.tmp[1].x, t.tmp[2].x do
			for y = t.tmp[1].y, t.tmp[2].y do
				for z = t.tmp[1].z, t.tmp[2].z do
					local c = getTopCreature({x = x, y = y, z = z})
					if c.type == 1 then
						table.insert(players, c.uid)
					end
				end
			end
		end

		if #players >= t.minPlayers then
			for i = 1, #players do
				local p = {x = math.random(t.from.x, t.to.x), y = math.random(t.from.y, t.to.y), z = math.random(t.from.z, t.to.z)}
				doTeleportThing(arenaPlayers[i], p)
				doSendMagicEffect(p, CONST_ME_TELEPORT)
				doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The battle begins. Survive for glory!")
			end
		--[[else
			for i = 1, #players do
				 doTeleportThing(arenaPlayers[i], {x=32345, y=32225, z=7})
				doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The event didn't start because there isn't enough players in area!")
			end]]
		end
	end
	return true
end

Try Now

- - - Updated - - -

Can it be Moved to Support?
 
PHP:
    <globalevent name="arena" interval="1000" event="script" value="arena.lua"/>


u have this in globalevents
 
PHP:
	<globalevent name="lastMan" interval="3600" event="script" value="lastman.lua"/>
    <globalevent name="arena" interval="1000" event="script" value="arena.lua"/>




data\globalevents\scripts\lastman



PHP:
local createpos = {x=32342,y=32226,z=7} -- Every 1h where will the Teleport Appear
 local topos = {x=32169,y=32074,z=7} -- Where will the Teleport take you
 local msg = "Last man standing event TP has now been closed! It will open again in 60 sec! All participants get Ready for a Fight!"
 local timetoclose = 120 -- in second

 local function remove()
 local tp = getTileItemById(createpos,1387).uid
 if tp ~= 0 then
 doRemoveItem(tp)
 doBroadcastMessage(msg)
 end
 end

 function onThink(interval)
 doCreateTeleport(1387, topos, createpos)
 doBroadcastMessage("Last man standing event TP is now open!\nCatch the teleport within "..timetoclose.." seconds! Teleport is Located in Events Room.")
 addEvent(remove,timetoclose*1000)
 return true
 end



data\globalevents\scripts\arena.lua



PHP:
local t = {
 tmp = {
 {x = 32167, y = 32071, z = 7}, -- North west corner of Area where players must stand in order to join the event
 {x = 32171, y = 32073, z = 7} -- South east corner of Area
 },
 arena = {
 {x = 32166, y = 32054, z = 7}, -- North west Corner of Arena
 {x = 32178, y = 32068, z = 7}, -- South East corner of Arena
 {x = 32172, y = 32061, z = 7} -- Center of Arena
 },

 from = {x = 32166, y = 32054, z = 7}, -- Top left cornor of the playground (random players teleportation)
 to = {x = 32178, y = 32068, z = 7}, -- Bottom right cornor of the playground (random players teleportation)

 minPlayers = 2, -- min players required to start the battle
 noPlayers = 1, -- Leave it as it is
 prize = {2160} -- Reward that player recives
 }
 local kick = 0

 function onThink()
 local arenaPlayers = {}

 for x = t.arena[1].x, t.arena[2].x do
 for y = t.arena[1].y, t.arena[2].y do
 for z = t.arena[1].z, t.arena[2].z do
 local pos = {x = x, y = y, z = z}
 local n = getTileInfo(pos).creatures
 if n ~= 0 then
 pos.stackpos = 1
 local c = getThingfromPos(pos)
 while c.uid ~= 0 do
 if c.itemid == 1 and c.type == 1 then
 table.insert(arenaPlayers, c.uid)
 if #arenaPlayers == n then
 break
 end
 end
 pos.stackpos = pos.stackpos + 1
 c = getThingfromPos(pos)
 end
 end
 end
 end
 end

 if #arenaPlayers == 1 then
 local p = getPlayerMasterPos(arenaPlayers[1])
 doTeleportThing(arenaPlayers[1], p)
 doSendMagicEffect(p, CONST_ME_TELEPORT)
 doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You have won the event and received your reward.")
 doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing Event.")
 doPlayerAddItem(arenaPlayers[1], t.prize[math.random(#t.prize)], 15)
 kick = 0
 elseif #arenaPlayers > 1 then
 if kick == 0 then
 kick = os.time()
 else
 if os.time() - kick >= 840 then
 kick = 0
 for i = 1, #arenaPlayers do
 doTeleportThing(arenaPlayers[i], {x=32369, y=32241, z=7})
 doPlayerSendTextMessage(arenaPlayers[i], MESSAGE_STATUS_WARNING, "Too even, try harder next time.")
 end
 end
 end
 elseif #arenaPlayers == 0 then
 kick = 0

 local players = {}
 for x = t.tmp[1].x, t.tmp[2].x do
 for y = t.tmp[1].y, t.tmp[2].y do
 for z = t.tmp[1].z, t.tmp[2].z do
 local c = getTopCreature({x = x, y = y, z = z})
 if c.type == 1 then
 table.insert(players, c.uid)
 end
 end
 end
 end

 if #players >= t.minPlayers then
 for i = 1, #players do
 local p = {x = math.random(t.from.x, t.to.x), y = math.random(t.from.y, t.to.y), z = math.random(t.from.z, t.to.z)}
 doTeleportThing(players[i], p)
 doSendMagicEffect(p, CONST_ME_TELEPORT)
 doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The battle begins. Survive for glory!")
 end
 end
 end
 return true
 end

- - - Updated - - -

<globalevent name="arena" interval="1000"

this is the time that players have to wait till they be Teleported to the lastman erea if u make it lower it will teleport players fast
 
Back
Top Bottom