alex008 2 Postado Janeiro 17, 2009 Share Postado Janeiro 17, 2009 to fazendo um mapa, e to usando aquela escada em espiral, e descobri q meu mapeamento nao tava compatindo com as posições da escada. ou seja quando sobe ou dece ele entra na parede , to fazendo esse script pra fazer com q nao saia no lugar errado!!! O que q eu to fazendo errado? function onStepIn(cid, item, position, fromPosition)fromPosition.z = fromPosition.z + 1 parameters = {cid = cid, fromPosition = fromPosition} addEvent(talk, 2000, parameters) end function talk(parameters) doTeleportThing(parameters.fromPosition) end Mensagem de error: Lua Script Error: [MoveEvents Interface] in a timer event called from: data/movements/scripts/escada.lua:onStepIn luaDoTeleportThing(). Thing not found Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/ Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Janeiro 17, 2009 Share Postado Janeiro 17, 2009 Esqueceu do CID. doTeleportThing(parameters.cid, parameters.fromPosition) Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-677516 Compartilhar em outros sites More sharing options...
alex008 2 Postado Janeiro 17, 2009 Autor Share Postado Janeiro 17, 2009 (editado) Correto!! deu certo porem nao era o q eu queria. era pra pegar a posição dele depois q ele estiver em cima da escada, se souber como fazer me avisa aí ;] exemplo explicativo: Editado Janeiro 18, 2009 por alex0007 Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678059 Compartilhar em outros sites More sharing options...
Slinix 1 Postado Janeiro 18, 2009 Share Postado Janeiro 18, 2009 Correto!! deu certo porem nao era o q eu queria. era pra pegar a posição dele depois q ele estiver em cima da escada, se souber como fazer me avisa aí ;] exemplo explicativo: Alex , Desculpa , Mais axo que isso ai na img que vc mostrou é Impossivel , Porque quand oele decer nao sera a dereção que ir que vai faser onde ele sai , e sim o sqm da decida , ex : vc dece ali de boae passa em cima dakele SQM , ai vai tar programado pra te mandar -1 andar para baixo e assim visse verça , intaum vc pode só excolher 1 lado pra ele decer e nao varios , bom , é isos qeu axo , Vlw ai. qualquer coisa , Me CORRIJEM Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678311 Compartilhar em outros sites More sharing options...
WillChris 0 Postado Janeiro 18, 2009 Share Postado Janeiro 18, 2009 Tente adicionar getPlayerLookDir(cid), certeza que vai funcionar X: Não vou fazer o script porque tou sem o meu global.lua para pegar as direções =( Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678443 Compartilhar em outros sites More sharing options...
lucasjockey 1 Postado Janeiro 18, 2009 Share Postado Janeiro 18, 2009 Primeiro veja se a posição da escada abaixo está na mesma posição X e Y do buraco. Caso esteja, olhe o que você tem: fromPosition.z = fromPosition.z + 1 Mas não tem outra função de mudar o X ou Y. Então, tente isso: fromPosition.x = fromPosition.x + 1 fromPosition.y = fromPosition.y + 1 Não sei se vai funcionar =/ Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678455 Compartilhar em outros sites More sharing options...
alex008 2 Postado Janeiro 18, 2009 Autor Share Postado Janeiro 18, 2009 nada disse ta me ajudando, vou postar outra ideia tipo se pudesse usar IF exemplo: if (se estiver acima do buraco da escada) == 1 then fromPosition.z = fromPosition.z + 1 fromPosition.y = fromPosition.y + 1 ----- isso faria com q ele caisse em cima da escada se estivesse acima do buraco doTeleportThing(parameters.fromPosition) elseif (se estiver a direita do buraco da escada) == 1 then fromPosition.z = fromPosition.z + 1 fromPosition.x = fromPosition.x + 1 doTeleportThing(parameters.fromPosition) e assim para as outras posições ;] se alguem puder me ajuda aí Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678473 Compartilhar em outros sites More sharing options...
lucasjockey 1 Postado Janeiro 18, 2009 Share Postado Janeiro 18, 2009 getPlayerLookDir(cid) NORTH = 0 EAST = 1 SOUTH = 2 WEST = 3 Norte = 0 Leste = 1 Sul = 2 Oeste = 4 Eu acho =X, não sei inglês... function onStepIn(cid, item, position, fromPosition) playerdir = getPlayerLookDir(cid) fromPosition.z = fromPosition.z + 1 if playerdir = 2 then fromPosition.y = fromPosition.y + 1 elseif playerdir = 4 then fromPosition.x = fromPosition.x + 1 elseif playerdir = 0 then fromPosition.y = fromPosition.y - 1 elseif playerdir = 1 then fromPosition.x = fromPosition.x - 1 end parameters = {cid = cid, fromPosition = fromPosition} addEvent(talk, 2000, parameters) end function talk(parameters) doTeleportThing(parameters.fromPosition) end Ve se funfa... ;D Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678510 Compartilhar em outros sites More sharing options...
alex008 2 Postado Janeiro 18, 2009 Autor Share Postado Janeiro 18, 2009 (editado) error Warning: [Event::loadScript] Can not load script. data/movements/scripts/escada. lua data/movements/scripts/escada.lua:4: 'then' expected near '=' AEW galera deixa pra la, axu melhor eu deixa como tava a escada e ir mudar no meu map msm. vlw aí pra quem tentou me ajudar Editado Janeiro 18, 2009 por alex0007 Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-678768 Compartilhar em outros sites More sharing options...
brainless 0 Postado Janeiro 19, 2009 Share Postado Janeiro 19, 2009 as comparações com IF devem ser seguidas de dois sinais comparativos: == igual a <= menor ou igual a >= maior ou igual a <> diferente de troque todos os if xxxxxx = y then por if xxxxxxx == y then Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-679012 Compartilhar em outros sites More sharing options...
WillChris 0 Postado Janeiro 19, 2009 Share Postado Janeiro 19, 2009 Senhor brainless, tem um tutorial de for e do pra mim aí? *-* Tenho muitos scripts aqui, mas estão gigantes, usando for e do diminuiria e muito meus scripts, tem como me ensinar? Nem que seja por PM/MSN \o/ Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-679105 Compartilhar em outros sites More sharing options...
brainless 0 Postado Janeiro 19, 2009 Share Postado Janeiro 19, 2009 sinto um tom de ironia na sua msg =P e abra um tpc pra sua dúvida =P[2] for sintaxe for variável = valor inicial, valor final do {...} end traduzindo: para cada variável = valor inicial, valor final faça {...} próximo/fim assim que o for encontra um end, adiciona automaticamente +1 à variável na prática: for a = 1, 3 do "oi xtibia" end saída: "oi xtibiaoi xtibia oi xtibia" para cada a = iniciando em 1, terminando em 3 faça "oi xtibia" fim é mais utilizado quando se precisa encher uma bp ou bag de items local backpack = doPlayerAddItem(cid, 1998, 1)for a = 1, 20 do doAddContainerItem(backpack, itemID, itemCount, itemCharges) end o comando acima seria executado 20 vezes, adicionando 20 vezes o mesmo item à backpack o valor da variável também pode ser utilizado dentro da subrotina for quando estivermos trabalhando com índices(arrays) local items = {2463, 2465, 2466} local backpack = doPlayerAddItem(cid, 1998, 1) for a = 1, 3 doAddContainerItem(backpack, items[a], 1) end o código acima adiciona uma plate armour, brass armour e golden armour à uma backpack que será entregue ao player Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-679208 Compartilhar em outros sites More sharing options...
Heitorzin 2 Postado Janeiro 22, 2009 Share Postado Janeiro 22, 2009 Dúvida Sanada, Tópico Fechado. Link para o comentário https://xtibia.com/forum/topic/105225-script-movements/#findComment-681477 Compartilhar em outros sites More sharing options...
Posts Recomendados