amigo não tem muito segredo a forma mais simples disso e você editar o mapa na área do Boss você coloca zona pvp enf. mais pratico do que fazer script.
info
Group: Visconde
Joined: 11/04/15
Posts: 351
Reputation: +205
Gender: Masculino

info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha

amigo não tem muito segredo a forma mais simples disso e você editar o mapa na área do Boss você coloca zona pvp enf. mais pratico do que fazer script.
Este é o problema... no tfs 1.1 isso não funciona.. ![]()
info
Group: Visconde
Joined: 11/04/15
Posts: 351
Reputation: +205
Gender: Masculino

ae fode kkk
Acredito ser um script simples, ou pelo menos não vi nenhum possivel problema.
no caso
No mapa coloque ao redor da arena coloque actions nos tiles com o seguinte id : 46645
Em movements/movements.xml adicione as linhas
<movevent type="StepIn" actionid="46645" event="script" value="arena.lua"/>
<movevent type="StepOut" actionid="46645" event="script" value="arena.lua"/>
Crie um script com o nome de Arena dentro da pasta movements scripts com o nome de arena.lua
dentro cole o script :
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
doSetCreatureDropLoot(cid, false)
doSetCreatureDropLoot(cid, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce entrou na arena.")
return true
end
function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
doSetCreatureDropLoot(cid, true)
doSetCreatureDropLoot(cid, true)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce saiu da arena.")
return true
end
Bom uso.
Edited Maio 11 by Krono
info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha

Não funcionou. Ele está morrendo como se estivesse numa hunt qualquer.
Aparece alguma mensagem quando entra ou sai da zone? para ser mais especifico uma das seguintes mensagens:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce entrou na arena.")
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce saiu da arena.")
info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha

Sim...
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
local from,to = {x = 154, y = 68, z = 7},{x = 160, y = 70, z = 7}
if isPlayer(cid) and isMonster(lastHitKiller[1]) and isInRange(getCreaturePosition(cid), from, to) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doRemoveConditions(cid, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce saiu da arena.")
return false
end
return true
end
Estive esses dois dias tentando pensar em alguma coisa e não obtive sucesso, por isso nao retornei a mensagem.
Mas parece que a solução do Vodkart dará certo.
Caso a duvida esteja sanada marque a Solução como melhor resposta para que seja movido o topico.
info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local from,to = {x = 154, y = 68, z = 7},{x = 160, y = 70, z = 7} if isPlayer(cid) and isMonster(lastHitKiller[1]) and isInRange(getCreaturePosition(cid), from, to) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce saiu da arena.") return false end return true end
Nada....
Eu tenho um que funciona perfeitamente só que só para players vs players, veja:
local arena = {
frompos = {x = 1000, y = 1009, z = 7},
topos = {x = 1011, y = 1019, z = 7},
exitpos = {x = 1013, y = 1015, z = 7}
}
function onPrepareDeath(player, creature, lastHitKiller, mostDamageKiller)
if player:isPlayer() 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)
end
if isInRange(ppos, arena.frompos, arena.topos) then
player:teleportTo(arena.exitpos)
return true
end
end
return true
end
function onLogin(player)
player:registerEvent("arena")
return true
end
esqueci de citar, tfs 1.1 ![]()
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

Nada....
Eu tenho um que funciona perfeitamente só que só para players vs players, veja:
local arena = { frompos = {x = 1000, y = 1009, z = 7}, topos = {x = 1011, y = 1019, z = 7}, exitpos = {x = 1013, y = 1015, z = 7} } function onPrepareDeath(player, creature, lastHitKiller, mostDamageKiller) if player:isPlayer() 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) end if isInRange(ppos, arena.frompos, arena.topos) then player:teleportTo(arena.exitpos) return true end end return true end function onLogin(player) player:registerEvent("arena") return true endesqueci de citar, tfs 1.1
A função onPrepareDeath está fazendo duas vezes a mesma pergunta:
function onPrepareDeath(player, creature, lastHitKiller, mostDamageKiller) if player:isPlayer() 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
info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha

A função onPrepareDeath está fazendo duas vezes a mesma pergunta:
function onPrepareDeath(player, creature, lastHitKiller, mostDamageKiller) if player:isPlayer() 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
Esse script que postei funciona perfeitamente... postei ele como exemplo pro que estou precisando..
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

tfs 1.1 e que versão de server? 10.10?




info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha
Olá, alguém poderia fazer algo assim:
o jogador está lutando com um monstro, e morre para o monstro, ao morrer, ele não perde nada, loot, xp, nada, e é teleportado ao templo dando a msg que ele perde o combate. Isso, dentro de uma área definida.
Agradeço a todos.