Ir para conteúdo
  • 0

Fazer esse script checar se tem player em x area


Tiagone

Pergunta

queria sabe se alguem poderia fazer essa alavanca checa se tem 1+ Player em x Area e se caso tiver não teleporta niguem e manda a seguinte msg "Tem Alguem nessa quest"

 

 

local TeleportLocal = {pos = {x = 984, y = 914, z = 6}, toPos = {x = 987, y = 912, z = 6}} -- Pos de Onde vai ser criado o teleport/e onde vai ser teleportado
local from,to = {x = 981, y = 913, z = 6},{x = 987, y = 920, z = 6}
function onUse(cid, item, frompos, item2, topos)
if item.itemid == 1945 then
player1pos = {x = 983, y = 912, z = 6, stackpos=253} -- piso 1 que tem que ter player
player1 = getThingfromPos(player1pos)
player2pos = {x = 985, y = 912, z = 6, stackpos=253} -- piso 2 que tem que ter player
player2 = getThingfromPos(player2pos)
if isPlayer(player1.uid) and isPlayer(player2.uid) then
nplayer1pos = {x = 984, y = 915, z = 6, stackpos=253} -- piso onde sera levado o player do piso 1
nplayer2pos = {x = 984, y = 918, z = 6, stackpos=253} -- piso onde sera levado o player do piso 2
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doSendMagicEffect(nplayer1pos,4)
doSendMagicEffect(nplayer2pos,4)
local t = getTileItemById(TeleportLocal.pos, 5023).uid
if t then
return t > 1 and doRemoveItem(t) and doSendMagicEffect(TeleportLocal.pos, CONST_ME_POFF)
end
doTransformItem(item.uid,1946)
else
doPlayerSendCancel(cid,"Voce prescisa de 2 pessoas para fazer éssa quest.")
return TRUE
end
elseif item.itemid == 1946 then
doTransformItem(item.uid,1945)
end
return TRUE
end

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Ta na mão amigo, testado em TFS 0.3.7:

local TeleportLocal = {pos = {x = 984, y = 914, z = 6}, toPos = {x = 987, y = 912, z = 6}} -- Pos de Onde vai ser criado o teleport/e onde vai ser teleportado
local from,to = {x = 981, y = 913, z = 6},{x = 987, y = 920, z = 6}
 
local function getPlayersInRange(pos1, pos2)
	local creaturesList = {}
	for px = pos1.x, pos2.x do
		for py = pos1.y, pos2.y do
			if not (x == 0 and y == 0) then
				local creature = getTopCreature({x = px, y = py, z = pos1.z})
				if creature.type == 1 then
					table.insert(creaturesList, creature.uid)
				end
			end
		end
	end
	return creaturesList
end
 
 
 
function onUse(cid, item, frompos, item2, topos)
 
 
	if item.itemid == 1945 then
 
		player1pos = {x = 983, y = 912, z = 6, stackpos=253} -- piso 1 que tem que ter player
		player1 = getThingfromPos(player1pos)
 
		player2pos = {x = 985, y = 912, z = 6, stackpos=253} -- piso 2 que tem que ter player
		player2 = getThingfromPos(player2pos)
 
		if isPlayer(player1.uid) and isPlayer(player2.uid) then
		
			if #getPlayersInRange(from, to) >= 1 then
				doPlayerSendCancel(cid,"Tem alguém nessa quest.")
				return TRUE
			end
 
			nplayer1pos = {x = 984, y = 915, z = 6, stackpos=253} -- piso onde sera levado o player do piso 1
			nplayer2pos = {x = 984, y = 918, z = 6, stackpos=253} -- piso onde sera levado o player do piso 2
 
			doSendMagicEffect(player1pos,2)
			doSendMagicEffect(player2pos,2)
 
			doTeleportThing(player1.uid,nplayer1pos)
			doTeleportThing(player2.uid,nplayer2pos)
 
			doSendMagicEffect(nplayer1pos,4)
			doSendMagicEffect(nplayer2pos,4)
 
			local t = getTileItemById(TeleportLocal.pos, 5023).uid
			if t then
				return t > 1 and doRemoveItem(t) and doSendMagicEffect(TeleportLocal.pos, CONST_ME_POFF)
			end
			doTransformItem(item.uid,1946)
 
		else
			doPlayerSendCancel(cid,"Voce prescisa de 2 pessoas para fazer éssa quest.")
			return TRUE
		end
 
	elseif item.itemid == 1946 then
		doTransformItem(item.uid,1945)
	end
	return TRUE
end
 
Editado por Antharaz
Link para o comentário
Compartilhar em outros sites

  • 0

malz demora,mais ai manim o erro deu nem 1 erro a area ali do "from,to" ta certinho e to com 3 char os 2 pra testa a quest e 1 q ta na arena pra blokia e msm assim os 2 que ta indo na quest ta indo normal.mais la no distro n da erro nem 1

 

edit--

 

mudei éssa linha #getPlayersInRange(from, to) == 0 para #getPlayersInRange(from, to) == 1 e foi malz ai vlw .-.

Editado por Tiagone
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...