Onpreparedeath

luishgazarolla
em Lixeira Pública

luishgazarolla

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/08/10Posts: 0

Ola Bom Dia !

 

Estou tentando arrrumar ja faz uma semana mas nada de conseguir.

 

Tenho um script de arena PVP em meu OT mas ele esta dando um erro, pois quando o player morre na arena ele é teleportado para o templo com zero de vida(HP) meu OT é TFS 0.3.6 eu testei em 0.3.5 e funcionou, mas eu queria que desce certo em 0.306 pois estou querendo colocar em protocolo 8.54.

 

Logo abaixo o script q estou usando.

 

local arena = {

frompos = {x=12, y=17, z=7}, -- Top Left Corner

topos = {x=22, y=27, z=7}, -- Bottom Right Corner

exit = {x=12, y=27, z=7} -- Exit

}

 

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

if isPlayer(cid) == TRUE then

if isInArea(getPlayerPosition(cid), arena.frompos, arena.topos) then

if doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid), TRUE) == TRUE then

if doTeleportThing(cid, arena.exit) == TRUE then

doSendMagicEffect(arena.exit, 10)

return FALSE

end

end

end

end

return TRUE

end

 

se alguem souber responder ficarei muito grato

 

Desde ja obrigado.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino
local arena = {
frompos = {x=12, y=17, z=7}, -- Top Left Corner
topos = {x=22, y=27, z=7}, -- Bottom Right Corner
exit = {x=12, y=27, z=7} -- Exit
} 

function isInArea(position, from, to)
local x= position.x
local y= position.y
local z= position.z

if x >= from.x and x <= to.x then
if y >= from.y and y <= to.y then
if z >= from.z and z <= to.z then
return TRUE
end
end
end
return FALSE
end

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
if isPlayer(cid) then
if isInArea(getPlayerPosition(cid), arena.frompos, arena.topos) then
if doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid)) then
if doTeleportThing(cid, arena.exit) then
doSendMagicEffect(arena.exit, 10)
return FALSE
end
end
end
end
return TRUE
end 

bossisg.png

luishgazarolla

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/08/10Posts: 0

Ainda não funcionou.

 

Após o player ser morto ele é teleportado para a posição exit e fica com zero de vida(HP).

 

Poderia me explicar melhor esse script?

 

Lembrando que estou usando tfs 0.3.6.

 

Desde ja obrigado

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

eu só não entendi seu bug até agora.

 

você só não quer que ele volte com 0 de hp para a saida, é isso?

bossisg.png

drakylucas

Draky Scripter
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/09/10Posts: 416Char no Tibia: Draky Lucas

local arena = {
frompos = {x=12, y=17, z=7}, -- Top Left Corner
topos = {x=22, y=27, z=7}, -- Bottom Right Corner
exit = {x=12, y=27, z=7} -- Exit
}

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
if isPlayer(cid) == TRUE then
if isInArea(getPlayerPosition(cid), arena.frompos, arena.topos) then
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
doTeleportThing(cid, arena.exit)
doSendMagicEffect(arena.exit, 10)
return FALSE
end
end
return TRUE
end

 

testa assim =D

luishgazarolla

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/08/10Posts: 0

Bom vou tentar explicar um pouco melhor para que vcs entendam.

 

Estou fazendo uma pvp arena no meu ot, pra falar a verdade só falta ela pq o ot ja ta pronto.

Só que esse script que eu estou usando funciona em TFS 0.3.5 mas em TFS 0.3.6 parece que a function

onPreparedeath esta bugada, sendo assim que quando o player morre na arena e ele é teleportado

para o ponto exit sua vida fica zerada e fica dando o efeito de teleporting (doSendMagicEffect(arena.exit, 10)

eu gostaria de saber se tem como usar outra funtion sem ser essa onPreparedath, eu li alguns topicos

e me parece que con a function onStatsChange da para fazer algo do tipo mas n sei nem por onde começar

 

abaixo uma SS do player depois q morre na arena.

 

imagemop.jpg

 

novamente obrigado pela ajuda.

 

ajuda eu ai galerinha.

 

Por favor.