Postado Janeiro 14, 2019 6 anos VALENDO REP+ Estou tentando criar um simples script, que ao player pisar em x posição ele seja teleportado para y área. Escrevi o codigo da seguinte forma: positions = { [{x = 1083, y = 1036, z = 13}] = {x = 1067, y = 1035, z = 13}, [{x = 1083, y = 1036, z = 13}] = {x = 1067, y = 1035, z = 13}, } function onStepIn(cid, item, fromPosition, item2, topos) for pisar, levar in ipairs(positions) do if isPosEqualPos(topos, levar) then teleportar = levar end end if teleportar ~= nill then doTeleportThing(cid, teleportar) end return TRUE end Porém como podem imaginar não deu certo. OBS: Sim, eu coloquei o action id no piso. OBS2: Creio que o erro esteja na forma como a tabela "pisar" foi declarada, nunca declarei tabela que o primeiro valor fosse uma posição...
Postado Janeiro 14, 2019 6 anos -- Simple teleport by egyptPOWER function onStepIn(cid, item, pos) if item.actionid== ACTION ID then newpos = {x = 1083, y = 1036, z = 13} doTeleportThing(cid, newpos) doSendMagicEffect(newpos, 12) return true end end Veja se é isso que você quer. Sinceramente não entendi seu código. Apenas substitua a Action ID pela sua actionID do piso. Abraço No signature.
Postado Janeiro 15, 2019 6 anos vc pode direcionar a pos do teleport dependendo do actionID do que piso onde ele passar, exemplo: AID 30501 --> POS 256,65,7 AID 30502 --> POS 587,72,5 etc... [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Janeiro 23, 2019 6 anos Autor Estava tentando fazer da seguinte forma: TODOS PISOS USARIAM MESMO ACTION ID, ao pisar no piso com o action id, o sistema verificaria a posição do piso que o player pisou (para isso o for), e teleportaria o player para o local correspondente do piso. Ex: positions = { [{x = 1083, y = 1036, z = 13}] = {x = 1067, y = 1035, z = 13}, ---- [{pisa aqui}] = {vai parar aqui} [{x = 1083, y = 1036, z = 13}] = {x = 1067, y = 1035, z = 13}, } function onStepIn(cid, item, fromPosition, item2, topos) for pisar, levar in ipairs(positions) do if isPosEqualPos(topos, levar) then teleportar = levar end end if teleportar ~= nill then doTeleportThing(cid, teleportar) end return TRUE end Acho que o problema esta na forma desse array.
Postado Janeiro 23, 2019 6 anos Solução @HisokaFail local ret = { {{x = 1083, y = 1036, z = 13}, {x = 1067, y = 1035, z = 13}}, ---- [{pisa aqui}] = {vai parar aqui} {{x = 1085, y = 1037, z = 13}, {x = 1069, y = 1038, z = 13}}, } function onStepIn(cid, item, fromPosition, item2, topos) if not isPlayer(cid) then return true end for i = 1,#ret do if isPosEqualPos(ret[i][1], topos) then doTeleportThing(cid, ret[i][2]) break end end return true end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
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.