Postado Maio 23, 2014 10 anos A minha versão é 9.83, não pode ser por isso que não está funcionando? Se for, sabe como faria para funcionar na minha versão?
Postado Maio 24, 2014 10 anos Autor A minha versão é 9.83, não pode ser por isso que não está funcionando? Se for, sabe como faria para funcionar na minha versão? Realmente, baixei um OT da versão 9,83, e não funcionou. Bom, eu não sei as causas porque sempre fiz scripts na versão 8.6, e faz muito, MUUUITO tempo que não faço códigos pra tibia (uns 3 a 4 anos, eu resolvi fazer alguns agora pra passar o tempo). Mas ao que parece, ao meu ver, ele não está reconhecendo as funções 'doTileQueryAdd', nem a 'doSendAnimatedText', sendo que a função 'doTileQueryAdd' é uma função chave pra verificar a posição limite em que o player pode se movimentar. Talvez possua uma sintaxe diferente devido à versão. De qualquer forma, vou tentar achar uma solução no meu tempo livre, e se eu conseguir, eu aviso. --------------------------------------------------------------EDIT-------------------------------------------------------------- Dei uma olhada melhor aqui, e realmente, com a mudança de versões foi alterado a sintaxe dos códigos 'doTileQueryAdd' e 'doSetNoMove', fiz algumas modificações, para o OT 9.83 está funcionando corretamente agora. Segue o código do novo move.lua: local exhauststorage = 20209 -- storage para o exhaust local exhaust = 10 -- tempo do exhaust em segundos local quantpos = 30 -- posições x ou y que o personagem irá avançar, por exemplo, aqui irá se mover 30 posições pra direção em que estiver local voc = { --dependendo da vocação, a movimentação será diferente {3,4,7,8,11,12}, -- vocações melee, que no caso são knight e paladin {1,2,5,6,9,10}, -- vocações mágicas, que são sorc e druid } --Função da movimentação para paladin e knight function moveMelee(cid, t) if(isCreature(cid)) then local tmp = getPlayerLookPos(cid) if(not isCreature(getThingFromPos(tmp).uid) and doTileQueryAdd(cid, tmp)~=1 and t>0) then doCreatureSetNoMove(cid, true) t = t-1 doSendMagicEffect(getCreaturePos(cid), 15) doMoveCreature(cid, getPlayerLookDir(cid)) return addEvent(moveMelee, 10, cid, t) else doCreatureSetNoMove(cid, false) return TRUE end else return TRUE end end --Função da movimentação para sorcerer e druid function moveMagic(cid) if(isCreature(cid)) then tmp = getCreaturePos(cid) dir = getPlayerLookDir(cid) for i=1, quantpos do if(dir==0) then tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z} elseif(dir==1) then tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z} elseif(dir==2) then tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z} elseif(dir==3) then tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z} end if (doTileQueryAdd(cid, tmp)==1) then if(dir==0) then tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z} elseif(dir==1) then tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z} elseif(dir==2) then tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z} elseif(dir==3) then tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z} end break end end doTeleportThing(cid, tmp) doSendMagicEffect(getCreaturePos(cid), 49) doCreatureSetNoMove(cid, false) return TRUE else return TRUE end end --Efeitos para a movimentação de sorc e druid function magicEffect(cid, i) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posefeitos = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } if(i<=8) then doSendMagicEffect({x=posefeitos[i].x, y=posefeitos[i].y, z=posefeitos[i].z}, 39) end if(i>8) then doSendMagicEffect(atual, 49) return moveMagic(cid) end return addEvent(magicEffect, 50, cid, i+1) else return TRUE end end --Função principal function onSay(cid, words, param) if(getPlayerStorageValue(cid, exhauststorage)>os.time()) then doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, exhauststorage)-os.time()).." segundos para usar a movimentação novamente.") return TRUE else setPlayerStorageValue(cid, exhauststorage, os.time()+exhaust) local v = getPlayerVocation(cid) for i=1, #voc[1] do if(v==voc[1][i]) then return moveMelee(cid, quantpos),doCreatureSay(cid, "Movimentação ultra rápida!", 1) end end return magicEffect(cid, 1),doCreatureSay(cid, "Teleport!", 1),doCreatureSetNoMove(cid, true) end end Editado Maio 24, 2014 10 anos por bielzinhocrazy (veja o histórico de edições)
Postado Maio 25, 2014 10 anos Agora sim! Perfeito! Reputado Edit: tive um problema, o player se teleporta ou se move para dentro da PZ, mesmo se estiver PK.. Como limitar isso? Editado Maio 25, 2014 10 anos por Reedz (veja o histórico de edições)
Postado Maio 25, 2014 10 anos Autor Agora sim! Perfeito! Reputado Edit: tive um problema, o player se teleporta ou se move para dentro da PZ, mesmo se estiver PK.. Como limitar isso? Pra limitar é só fazer a verificação se está pk e se é pz zone, se for, não teleportar pra dentro da pz, implementei já no script, tente com este código : local exhauststorage = 20209 -- storage para o exhaust local exhaust = 10 -- tempo do exhaust em segundos local quantpos = 30 -- posições x ou y que o personagem irá avançar, por exemplo, aqui irá se mover 30 posições pra direção em que estiver local voc = { --dependendo da vocação, a movimentação será diferente {3,4,7,8,11,12}, -- vocações melee, que no caso são knight e paladin {1,2,5,6,9,10}, -- vocações mágicas, que são sorc e druid } --Função da movimentação para paladin e knight function moveMelee(cid, t) if(isCreature(cid)) then local tmp = getPlayerLookPos(cid) if(not isCreature(getThingFromPos(tmp).uid) and doTileQueryAdd(cid, tmp)~=1 and t>0) then if(getCreatureSkullType(cid)>0 and getTilePzInfo(tmp)==1) then doCreatureSetNoMove(cid, false) return TRUE end doCreatureSetNoMove(cid, true) t = t-1 doSendMagicEffect(getCreaturePos(cid), 15) doMoveCreature(cid, getPlayerLookDir(cid)) return addEvent(moveMelee, 10, cid, t) else doCreatureSetNoMove(cid, false) return TRUE end else return TRUE end end --Função da movimentação para sorcerer e druid function moveMagic(cid) if(isCreature(cid)) then tmp = getCreaturePos(cid) dir = getPlayerLookDir(cid) for i=1, quantpos do if(dir==0) then tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z} elseif(dir==1) then tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z} elseif(dir==2) then tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z} elseif(dir==3) then tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z} end if (doTileQueryAdd(cid, tmp)==1 or (getPlayerSkullType(cid)>0 and getTilePzInfo(tmp)==1)) then if(dir==0) then tmp = {x=tmp.x, y=tmp.y+1, z=tmp.z} elseif(dir==1) then tmp = {x=tmp.x-1, y=tmp.y, z=tmp.z} elseif(dir==2) then tmp = {x=tmp.x, y=tmp.y-1, z=tmp.z} elseif(dir==3) then tmp = {x=tmp.x+1, y=tmp.y, z=tmp.z} end break end end doTeleportThing(cid, tmp) doSendMagicEffect(getCreaturePos(cid), 49) doCreatureSetNoMove(cid, false) return TRUE else return TRUE end end --Efeitos para a movimentação de sorc e druid function magicEffect(cid, i) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posefeitos = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } if(i<=8) then doSendMagicEffect({x=posefeitos[i].x, y=posefeitos[i].y, z=posefeitos[i].z}, 39) end if(i>8) then doSendMagicEffect(atual, 49) return moveMagic(cid) end return addEvent(magicEffect, 50, cid, i+1) else return TRUE end end --Função principal function onSay(cid, words, param) if(getPlayerStorageValue(cid, exhauststorage)>os.time()) then doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, exhauststorage)-os.time()).." segundos para usar a movimentação novamente.") return TRUE else setPlayerStorageValue(cid, exhauststorage, os.time()+exhaust) local v = getPlayerVocation(cid) for i=1, #voc[1] do if(v==voc[1][i]) then return moveMelee(cid, quantpos),doCreatureSay(cid, "Movimentação ultra rápida!", 1) end end return magicEffect(cid, 1),doCreatureSay(cid, "Teleport!", 1),doCreatureSetNoMove(cid, true) end end Editado Maio 25, 2014 10 anos por bielzinhocrazy (veja o histórico de edições)
Postado Maio 26, 2014 10 anos Continuou do mesmo jeito, ainda entra na pz estando pk, tanto na versão para kina, quanto na versão para mages :x
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.