LU
pedido

Morrer em tal área e mandar ao templo.

Por Lumus, 11 de mai. de 2015 em Scripts

resolvido
22
3.9k
FurabioF
13 de maio de 2015 às 19:48

Tente usar assim :

function onPrepareDeath(player, creature, lastHitKiller, mostDamageKiller)

	if player:isPlayer() and creature:isMonster() then
		local ppos = player:getPosition()
		if isInRange(ppos, arena.frompos, arena.topos) then
			local maxhp = player:getMaxHealth()
			player:addHealth(maxhp)
			addEvent(doCreatureAddHealth, 100, player:getId(), maxhp)
			player:teleportTo(arena.exitpos)
		end
	end
	
	return true
end
LumusL
13 de maio de 2015 às 19:55

 

Tente usar assim :

function onPrepareDeath(player, creature, lastHitKiller, mostDamageKiller)

	if player:isPlayer() and creature:isMonster() then
		local ppos = player:getPosition()
		if isInRange(ppos, arena.frompos, arena.topos) then
			local maxhp = player:getMaxHealth()
			player:addHealth(maxhp)
			addEvent(doCreatureAddHealth, 100, player:getId(), maxhp)
			player:teleportTo(arena.exitpos)
		end
	end
	
	return true
end

Nada... :((( continua morrendo da mesma forma.. ele morre mas "não morre" fica renascendo várias vezes até buga.

FurabioF
13 de maio de 2015 às 20:49
Melhor resposta

Testei aqui e funcionando 100% :

local arena = {
	frompos = {x = 137, y = 380, z = 7},
	topos = {x = 154, y = 403, z = 7},
}

function isInRange(pos, fromPos, toPos)
  return pos.x >= fromPos.x and pos.y >= fromPos.y and pos.z >= fromPos.z and pos.x <= toPos.x and pos.y <= toPos.y and pos.z <= toPos.z
end

function onPrepareDeath(player, killer, mostDamageKiller)

	if player:isPlayer() and killer:isMonster() then
		local ppos = player:getPosition()
		if isInRange(ppos, arena.frompos, arena.topos) then
			player:teleportTo(player:getTown():getTemplePosition())
    		        player:addHealth(player:getMaxHealth())
    		        player:addMana(player:getMaxMana())
    		        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You were killed by '.. killer:getName() ..'.')
		end
	end
	return true
end

function onLogin(player)
	player:registerEvent("MArena")
	return true
end

	<event type="preparedeath" name="MArena" script="arquivo.lua"/>
	<event type="login" name="verf_MArena" script="arquivo.lua"/>

Editado Maio 13 por ScreaM

LumusL
13 de maio de 2015 às 21:34

Aeeeeeee!!! consegui manolo!!!! brigadãaao mesmo <3 @Edit Outra dúvida: Como que eu faço pra um item ficar bloqueando ataques? Como se fosse uma parede mesmo? Aonde os hit's dos monstros não atravessariam?

Editado Maio 13 por Fawz

FurabioF
13 de maio de 2015 às 22:58

^ não sei te dizer como fazer isso, recomendo que crie um outro tópico colocando essa dúvida e colocando parte da dúvida no título.

LumusL
13 de maio de 2015 às 23:01

^ não sei te dizer como fazer isso, recomendo que crie um outro tópico colocando essa dúvida e colocando parte da dúvida no título.

Blz brigadãao vou criar aqui!

FurabioF
13 de maio de 2015 às 23:01

Tópico movido para a seção de dúvidas e pedidos resolvidos.