Lumus 254 Postado Maio 11, 2015 Share Postado Maio 11, 2015 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. Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/ Compartilhar em outros sites More sharing options...
0 Furabio 258 Postado Maio 13, 2015 Share Postado Maio 13, 2015 (editado) 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, 2015 por ScreaM Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651301 Compartilhar em outros sites More sharing options...
0 Qwizer 205 Postado Maio 11, 2015 Share Postado Maio 11, 2015 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. Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1650958 Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Maio 11, 2015 Autor Share Postado Maio 11, 2015 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.. Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1650964 Compartilhar em outros sites More sharing options...
0 Qwizer 205 Postado Maio 11, 2015 Share Postado Maio 11, 2015 ae fode kkk Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1650987 Compartilhar em outros sites More sharing options...
0 Krono 128 Postado Maio 11, 2015 Share Postado Maio 11, 2015 (editado) 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 : 46645Em 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.luadentro 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 12, 2015 por Krono Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1650997 Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Maio 11, 2015 Autor Share Postado Maio 11, 2015 Não funcionou. Ele está morrendo como se estivesse numa hunt qualquer. Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651023 Compartilhar em outros sites More sharing options...
0 Krono 128 Postado Maio 12, 2015 Share Postado Maio 12, 2015 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.") Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651037 Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Maio 12, 2015 Autor Share Postado Maio 12, 2015 Sim... Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651038 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 13, 2015 Share Postado Maio 13, 2015 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 Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651186 Compartilhar em outros sites More sharing options...
0 Krono 128 Postado Maio 13, 2015 Share Postado Maio 13, 2015 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. Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651245 Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Maio 13, 2015 Autor Share Postado Maio 13, 2015 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 Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651256 Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Maio 13, 2015 Share Postado Maio 13, 2015 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 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 Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651261 Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Maio 13, 2015 Autor Share Postado Maio 13, 2015 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.. Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651290 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 13, 2015 Share Postado Maio 13, 2015 tfs 1.1 e que versão de server? 10.10? Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651292 Compartilhar em outros sites More sharing options...
0 Lumus 254 Postado Maio 13, 2015 Autor Share Postado Maio 13, 2015 tfs 1.1 e que versão de server? 10.10? 10.76 Link para o comentário https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/#findComment-1651293 Compartilhar em outros sites More sharing options...
Pergunta
Lumus 254
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.
Link para o comentário
https://xtibia.com/forum/topic/233849-morrer-em-tal-%C3%A1rea-e-mandar-ao-templo/Compartilhar em outros sites
21 respostass a esta questão
Posts Recomendados