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
Grupo: Visconde
Registrado: 11/04/15
Posts: 351
Reputação: +205
Gênero: Masculino

info
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: 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
Grupo: Visconde
Registrado: 11/04/15
Posts: 351
Reputação: +205
Gênero: 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.
Editado Maio 11 por Krono
info
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: 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
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: Partiu Baladinha

Sim...
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: 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
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: 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
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: 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
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

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




info
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: 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.