Postado Abril 21, 2014 11 anos Bom dia Tibiakings! Hoje trago uma dúvida. Tenho o sistema de !fly funcionante em meu OT Server, mas gostaria que os players não pudessem usar o comando "!fly" em determinados pisos, como exemplo os pisos (4820, 4822, 4823 e 4825). Para explicar melhor, estes pisos são da água e os players ficam com o addon de nadar e ao usarem a talkaction !fly, são teleportados para o templo com o outfit de nadar e não quero que isto aconteça. Segue minha talkaction do sistema !fly: local towns = { ["edron"] = {x= 33217, y= 31814, z= 8}, ["ankrahmun"] = {x= 33194, y= 32853, z= 8}, ["thais"] = {x= 32369, y= 32241, z= 7}, ["carlin"] = {x= 32360, y= 31782, z= 7}, ["venore"] = {x= 32957, y= 32076, z= 7}, ["ab'dendriel"] = {x= 32732, y= 31634, z= 7}, ["kazordoon"] = {x= 32649, y= 31925, z= 11}, ["darashia"] = {x= 33213, y= 32454, z= 1}, ["liberty bay"] = {x= 32317, y= 32826, z= 7}, ["port hope"] = {x= 32595, y= 32744, z= 6}, ["svargrond"] = {x= 32209, y= 31134, z= 7}, ["yalahar"] = {x= 32787, y= 31276, z= 7}, ["farmine"] = {x= 33005, y= 31491, z= 11}, ["gray island"] = {x= 33447, y= 31320, z= 9}, ["gengia"] = {x = 32886, y = 30729, z = 5}, ["ghala"] = {x = 31899, y = 32204, z = 6}, ["ghenov"] = {x = 31680, y = 32788, z = 6}, ["vikia"] = {x = 32234, y = 30703, z = 7}, ["pyre"] = {x = 33637, y = 31826, z = 6}, } function onSay(cid, words, param, channel) if not isPremium(cid) then doPlayerSendCancel(cid, "Only premium members are allowed to fly or ride.") return false end if getTilePzInfo(getPlayerPosition(cid)) then if towns[param:lower()] ~= nil then doTeleportThing(cid, towns[param:lower()]) doSendMagicEffect(towns[param:lower()], 10) else local l = "" for x,i in pairs(towns) do l = l .. "\n • "..string.sub(x,0,1):upper()..string.sub(x,2):lower() end doPlayerSendTextMessage(cid,4,"Destino inválido. Possíveis destinos:"..l) end else doPlayerSendTextMessage(cid,4,"Comando para premium e so pode ser usado em area PZ.") end return true end Obs: Não me lembro que quem era este sistema de !fly, se alguém souber, coloco os devidos créditos (mesmo não sendo a intenção de divulgar este script, mas funciona perfeitamente). Editado Abril 21, 2014 11 anos por lagoa (veja o histórico de edições) Te Ajudei? Rep+
Postado Abril 21, 2014 11 anos Bem, eu fiz aqui, porém não testei... local towns = { ["edron"] = {x= 33217, y= 31814, z= 8}, ["ankrahmun"] = {x= 33194, y= 32853, z= 8}, ["thais"] = {x= 32369, y= 32241, z= 7}, ["carlin"] = {x= 32360, y= 31782, z= 7}, ["venore"] = {x= 32957, y= 32076, z= 7}, ["ab'dendriel"] = {x= 32732, y= 31634, z= 7}, ["kazordoon"] = {x= 32649, y= 31925, z= 11}, ["darashia"] = {x= 33213, y= 32454, z= 1}, ["liberty bay"] = {x= 32317, y= 32826, z= 7}, ["port hope"] = {x= 32595, y= 32744, z= 6}, ["svargrond"] = {x= 32209, y= 31134, z= 7}, ["yalahar"] = {x= 32787, y= 31276, z= 7}, ["farmine"] = {x= 33005, y= 31491, z= 11}, ["gray island"] = {x= 33447, y= 31320, z= 9}, ["gengia"] = {x = 32886, y = 30729, z = 5}, ["ghala"] = {x = 31899, y = 32204, z = 6}, ["ghenov"] = {x = 31680, y = 32788, z = 6}, ["vikia"] = {x = 32234, y = 30703, z = 7}, ["pyre"] = {x = 33637, y = 31826, z = 6}, } local floor = {4820, 4822, 4823, 4825} function onSay(cid, words, param, channel) if not isPremium(cid) then doPlayerSendCancel(cid, "Only premium members are allowed to fly or ride.") return false end if getTilePzInfo(getPlayerPosition(cid)) then if not isInArray(floor, getThingFromPos(getPlayerPosition(cid)).itemid) then if towns[param:lower()] ~= nil then doTeleportThing(cid, towns[param:lower()]) doSendMagicEffect(towns[param:lower()], 10) else local l = "" for x,i in pairs(towns) do l = l .. "\n • "..string.sub(x,0,1):upper()..string.sub(x,2):lower() end doPlayerSendTextMessage(cid,4,"Destino inválido. Possíveis destinos:"..l) end else doPlayerSendTextMessage(cid,4,"Voce nao pode usar o comando sob a água.") end else doPlayerSendTextMessage(cid,4,"Comando para premium e so pode ser usado em area PZ.") end return true end 愛"A alma permanece em suas criações" 平(Não dou suporte por mensagem privada.)
Postado Abril 29, 2014 11 anos Autor Puxa vida, fiquei muito empolgado, mas infelizmente não funcionou. No lugar de local floor = {4820, 4822, 4823, 4825} não deveria ser algo como doPlayerSendCancel ? Te Ajudei? Rep+
Postado Abril 29, 2014 11 anos Solução [paste]kKrFJMwY[/paste] -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Abril 30, 2014 11 anos Autor Agora foi 100%! REP + aos dois pela excelente ajuda. Podem fechar o tópico e mover para dúvida sanada. Te Ajudei? Rep+
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.