gabriel28 60 Postado Junho 24, 2015 Share Postado Junho 24, 2015 Estou tentando montar um servidor RPG com base no mapa global do Tibia, estou modificando ele na medida dos meus conhecimentos, que são poucos. Venho pedir uma ajuda com teleport que só passe determinada vocação (que possa ser alterada no script, para que possa ser usando em outros teleports). A versão do Tibia é 8.60. Se alguém puder ajudar, agradeço. Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/ Compartilhar em outros sites More sharing options...
0 RigBy 285 Postado Junho 25, 2015 Share Postado Junho 25, 2015 (editado) opa foi mal, tinha mudado para onUse tem querer(ja editei la) Você tem que usar os dois em conjunto, tanto o globalevent(vai criar o teleport no dia marcado) e o movement(o que teleporta e impede que outras vocações teleport) local config = { day = "Monday","Wednesday","Friday","Sunday", pos = {x=151, y=77, z=6}, time = 5, -- tempo que o teleport ira sumir em minutos msg_open = "O Portal vai se abrir em 5 minutos.", msg_close = "O Portal se fechou." action = 4568 -- aqui você coloca o action id } local function DelTp() local t = getTileItemById(config.pos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos, CONST_ME_POFF) end end function onTimer() if (os.date("%A") == config.day) then local item = doCreateItem(1387, 1, config.pos) doItemSetAttribute(item, "aid", config.action) doBroadcastMessage(config.msg_open) addEvent(DelTp, config.time*60*1000) addEvent(doBroadcastMessage, config.time*60*1000, config.msg_close) end return true end local vocation = {1, 2} -- vocações que vai poder usar o teleport local pos = {x = 129, y = 54, z = 6} -- local para onde sera teleportado function onStepIn(cid, player, position, FromPosition) if isInArray(vocation, getPlayerVocation(cid)) then doTeleportThing(cid, pos) else doTeleportThing(cid,FromPosition) doPlayerSendCancel(cid,"Você não tem a vocação necessária para entrar aqui!") end return true end Editado Junho 25, 2015 por RigBy Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657864 Compartilhar em outros sites More sharing options...
0 RigBy 285 Postado Junho 24, 2015 Share Postado Junho 24, 2015 Isso é um movement .lua local vocation = {1, 2} -- vocações que vai poder usar o teleport local pos = {x = 129, y = 54, z = 6} -- local para onde sera teleportado function onStepIn(cid, player, position, FromPosition) if isInArray(vocation, getPlayerVocation(cid)) then doTeleportThing(cid, pos) else doTeleportThing(cid,FromPosition) doPlayerSendCancel(cid,"Você não tem a vocação necessária para entrar aqui!") end return true end .Xml, tag <movevent type="StepIn" actionid="XXXX" event="script" value="nome do arquivo.lua"/> agora so basta abrir o editor de mapas e coloca o actionid no teleport. Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657693 Compartilhar em outros sites More sharing options...
0 gabriel28 60 Postado Junho 24, 2015 Autor Share Postado Junho 24, 2015 (editado) Muito obrigado, me ajudou bastante. Há algo que me esqueci de acrescentar ao pedido, pensei no teleporte aparecendo no dia X na hora Y, tem como acrescentar isso ao script? Tentei mesclar esse com outro script, que faz essa função de fazer o TP aparecer no dia X hora Y, e joguei no site lua.org pra ver se não havia erro, mas apareceu o seguinte erro: input:40: 'end' expected (to close 'function' at line 3) near <eof> Aqui ta o script com a mesclagem: local vocation = {1, 2} -- vocações que vai poder usar o teleport local pos = {x = 129, y = 54, z = 6} -- local para onde sera teleportado function onStepIn(cid, player, position, FromPosition) if isInArray(vocation, getPlayerVocation(cid)) then doTeleportThing(cid, pos) else doTeleportThing(cid,FromPosition) doPlayerSendCancel(cid,"Você não tem a vocação necessária para entrar aqui!") end local config = { day = "Monday","Wednesday","Friday","Sunday", pos = {x=151, y=77, z=6}, topos = {x=550, y=34, z=7}, time = 5, -- tempo que o teleport ira sumir em minutos msg_open = "O Portal vai se abrir em 5 minutos.", msg_close = "O Portal se fechou." } local function DelTp() local t = getTileItemById(config.pos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos, CONST_ME_POFF) end end function onTimer() if (os.date("%A") == config.day) then doCreateTeleport(1387, config.topos, config.pos) doBroadcastMessage(config.msg_open) addEvent(DelTp, config.time*60*1000) addEvent(doBroadcastMessage, config.time*60*1000, config.msg_close) end return true end OBS: Se for ajeitar esse script, eu gostaria dele sem o broadcast. OBS2: Não sei adicionar a caixinha de spoiler nem recordo de quem é o script do TP por tempo, quando achar, eu edito e coloco aqui. Editado Junho 24, 2015 por gabrielvs Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657741 Compartilhar em outros sites More sharing options...
0 RigBy 285 Postado Junho 24, 2015 Share Postado Junho 24, 2015 (editado) não precisa juntar os script so basta substituir o que cria o teleport no dia da semana por esse(não esqueça de configura) e deixa o movement. local config = { day = "Monday","Wednesday","Friday","Sunday", pos = {x=1023, y=1023, z=7}, time = 5, -- tempo que o teleport ira sumir em minutos msg_open = "O Portal vai se abrir em 5 minutos.", msg_close = "O Portal se fechou." action = XXXX -- aqui você coloca o action id } local function DelTp() local t = getTileItemById(config.pos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos, CONST_ME_POFF) end end function onTimer() if (os.date("%A") == config.day) then local item = doCreateItem(1387, 1, config.pos) doItemSetAttribute(item, "aid", config.action) doBroadcastMessage(config.msg_open) addEvent(DelTp, config.time*60*1000) addEvent(doBroadcastMessage, config.time*60*1000, config.msg_close) end return true end Editado Junho 25, 2015 por RigBy Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657764 Compartilhar em outros sites More sharing options...
0 gabriel28 60 Postado Junho 25, 2015 Autor Share Postado Junho 25, 2015 Esse script que você mandou agora, tem a restrição de vocação nele também? Porque foi o que eu disse que me esqueci de acrescentar no pedido, que era um TP que tivesse a restrição de vocação e aparecesse no X dia às Y horas, e o script que mandei foi minha tentativa de fazer ele, juntando o que você me mandou com o que eu tinha. Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657831 Compartilhar em outros sites More sharing options...
0 gabriel28 60 Postado Junho 25, 2015 Autor Share Postado Junho 25, 2015 Obrigado pela ajuda. Não estou podendo dar Rep+ por agora, mas quando puder, virei aqui dar. Obrigado mesmo. Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657869 Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Junho 25, 2015 Share Postado Junho 25, 2015 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/#findComment-1657870 Compartilhar em outros sites More sharing options...
Pergunta
gabriel28 60
Estou tentando montar um servidor RPG com base no mapa global do Tibia, estou modificando ele na medida dos meus conhecimentos, que são poucos.
Venho pedir uma ajuda com teleport que só passe determinada vocação (que possa ser alterada no script, para que possa ser usando em outros teleports).
A versão do Tibia é 8.60.
Se alguém puder ajudar, agradeço.
Link para o comentário
https://xtibia.com/forum/topic/235039-teleport-por-voca%C3%A7%C3%A3o/Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados