MatheusGlad 424 Postado Fevereiro 9, 2012 Share Postado Fevereiro 9, 2012 (editado) data/movements/scripts/Genius.lua: CurrentSteps = {} CurrentSequence = {} PuzzleGeniusConfig = { centerPlayerPos = {x=988,y=985,z=7}, effectsid = { [9562] = {1, 0}, [9563] = {0, 1}, [9564] = {-1, 0}, [9565] = {0, -1} }, appearInterval = 1, disapear = 0.6, backPos = {x=987,y=982,z=7}, rewardPos = {x=995,y=988,z=6}, roundTimes = 100, } CurrentSequence = {} PuzzleGenius = {} function randomIndexFromTable(tab) local tb = {} for i,x in pairs(tab) do table.insert(tb, i) end return tb[math.random(1, #tb)] end function tileEffect(tileid, pos, int) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=0}) doItemSetAttribute(tile.uid, "aid", 6661) local a = doCreateItem(tileid, pos) addEvent(function() local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tile, 1) end, int*1000) end function PuzzleGenius:ExecuteSequence(cid) if #CurrentSequence >= PuzzleGeniusConfig.roundTimes then doTeleportThing(cid, PuzzleGeniusConfig.rewardPos) doPlayerSetNoMove(cid, false) CurrentSteps = {} CurrentSequence = {} return true end table.insert(CurrentSequence, randomIndexFromTable(PuzzleGeniusConfig.effectsid)) for i,x in ipairs(CurrentSequence) do addEvent(tileEffect, PuzzleGeniusConfig.appearInterval*i*1000, x, {x=PuzzleGeniusConfig.centerPlayerPos.x+PuzzleGeniusConfig.effectsid[x][1], y=PuzzleGeniusConfig.centerPlayerPos.y+PuzzleGeniusConfig.effectsid[x][2], z=PuzzleGeniusConfig.centerPlayerPos.z},PuzzleGeniusConfig.disapear) end addEvent(doPlayerSetNoMove, (PuzzleGeniusConfig.appearInterval*#CurrentSequence+PuzzleGeniusConfig.disapear)*1000, cid, false) end function PuzzleGenius:Check(cid, currentSteps) if currentSteps[#currentSteps] == CurrentSequence[#currentSteps] then return true end return false end function onStepIn(cid, item, pos, fromPos) if pos.x == PuzzleGeniusConfig.centerPlayerPos.x and pos.y == PuzzleGeniusConfig.centerPlayerPos.y then if #CurrentSequence < 1 then doPlayerSetNoMove(cid, true) return PuzzleGenius:ExecuteSequence(cid) else return false end end local coordinates = {pos.x-fromPos.x, pos.y-fromPos.y} for i,x in pairs(PuzzleGeniusConfig.effectsid) do if x[1] == coordinates[1] and x[2] == coordinates[2] then table.insert(CurrentSteps, i) if PuzzleGenius:Check(cid, CurrentSteps) then doCreateItem(i, {x=PuzzleGeniusConfig.centerPlayerPos.x+coordinates[1], y=PuzzleGeniusConfig.centerPlayerPos.y+coordinates[2], z=PuzzleGeniusConfig.centerPlayerPos.z}) end end end if PuzzleGenius:Check(cid, CurrentSteps) then doTeleportThing(cid, fromPos, true) if #CurrentSteps == #CurrentSequence then doPlayerSetNoMove(cid, true) CurrentSteps = {} addEvent(function() PuzzleGenius:ExecuteSequence(cid) end, 500) end else doTeleportThing(cid, PuzzleGeniusConfig.backPos) CurrentSteps = {} CurrentSequence = {} end return TRUE end function onStepOut(cid, item, pos, fromPos) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}) for i,x in pairs(PuzzleGeniusConfig.effectsid) do if i == tile.itemid then addEvent(function() local tilee = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tilee, 1) end, 100) break end end return TRUE end tags movements.xml: <movevent type="StepIn" actionid="6661" event="script" value="Genius.lua"/> <movevent type="StepOut" actionid="6661" event="script" value="Genius.lua"/> Mapa:A - Action ID 6661.B - Teleport que teleporta para A, centerPlayerPos no script.As pedras ou qlqr outro item que voce quizer botar sao obrigatorias para nao ocorrerem bugs,E os sqm dentro das pedras devem ter a caracteristica de nao poder logar.Script antigo... whatever postei nada pra fazer. Editado Fevereiro 9, 2012 por MatheusMkalo Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/ Compartilhar em outros sites More sharing options...
AnneMotta 234 Postado Fevereiro 9, 2012 Share Postado Fevereiro 9, 2012 (editado) oque isso faz exatamente ? =.= @ edited opa agora tem video rs Editado Fevereiro 9, 2012 por AnneMotta Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1198092 Compartilhar em outros sites More sharing options...
HisashiitYamaguti 108 Postado Fevereiro 9, 2012 Share Postado Fevereiro 9, 2012 Matheus dando uma aula de como ser mito no jogo, xD. Falando sério: Muito legal a sua contribuição para o xtibia, logo logo estarei testando aqui... Ainda mais tem vídeo, isso é uma coisa inovadora nos scripts, pois poucos postados aqui no xtibia tem isso. Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1198100 Compartilhar em outros sites More sharing options...
bepokemon 101 Postado Fevereiro 9, 2012 Share Postado Fevereiro 9, 2012 @Matheus Isso vai para o Concurso #SDS? Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1198119 Compartilhar em outros sites More sharing options...
MatheusGlad 424 Postado Fevereiro 9, 2012 Autor Share Postado Fevereiro 9, 2012 Sim Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1198155 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Fevereiro 9, 2012 Share Postado Fevereiro 9, 2012 nossa mkalo sempre inovando com suas idéias geniais uhauahauua sempre gostei desse jogo,o código está muito bem formatado,parabéns amigo! com certeza vc terá meu voto no concurso ._. sucesso parceiro,fica com deus REP+ Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1198519 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Fevereiro 10, 2012 Share Postado Fevereiro 10, 2012 ola moco parabens pelo codigo ok e o vodkart ainda acessa aqui, parabens tb cara obg Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1198986 Compartilhar em outros sites More sharing options...
MatheusGlad 424 Postado Fevereiro 10, 2012 Autor Share Postado Fevereiro 10, 2012 O que fazes aki andy gostoso. Concertou o pc que tem windows ja? Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1199177 Compartilhar em outros sites More sharing options...
MapperWolf 0 Postado Maio 2, 2012 Share Postado Maio 2, 2012 Muito bom cara. Sem comentarios ! ;p sempre inovador... Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1252987 Compartilhar em outros sites More sharing options...
pkemomm 0 Postado Julho 11, 2012 Share Postado Julho 11, 2012 (editado) Cara, inceramente, eu não consegui compreender como faço para eu colocar pra funcionar... Eu coloquei os scripts recomendados por vc. CurrentSteps = {} CurrentSequence = {} PuzzleGeniusConfig = { centerPlayerPos = {x=988,y=985,z=7}, effectsid = { [9562] = {1, 0}, [9563] = {0, 1}, [9564] = {-1, 0}, [9565] = {0, -1} }, appearInterval = 1, disapear = 0.6, backPos = {x=987,y=982,z=7}, rewardPos = {x=995,y=988,z=6}, roundTimes = 100, } CurrentSequence = {} PuzzleGenius = {} function randomIndexFromTable(tab) local tb = {} for i,x in pairs(tab) do table.insert(tb, i) end return tb[math.random(1, #tb)] end function tileEffect(tileid, pos, int) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=0}) doItemSetAttribute(tile.uid, "aid", 6661) local a = doCreateItem(tileid, pos) addEvent(function() local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tile, 1) end, int*1000) end function PuzzleGenius:ExecuteSequence(cid) if #CurrentSequence >= PuzzleGeniusConfig.roundTimes then doTeleportThing(cid, PuzzleGeniusConfig.rewardPos) doPlayerSetNoMove(cid, false) CurrentSteps = {} CurrentSequence = {} return true end table.insert(CurrentSequence, randomIndexFromTable(PuzzleGeniusConfig.effectsid)) for i,x in ipairs(CurrentSequence) do addEvent(tileEffect, PuzzleGeniusConfig.appearInterval*i*1000, x, {x=PuzzleGeniusConfig.centerPlayerPos.x+PuzzleGeniusConfig.effectsid[x][1], y=PuzzleGeniusConfig.centerPlayerPos.y+PuzzleGeniusConfig.effectsid[x][2], z=PuzzleGeniusConfig.centerPlayerPos.z},PuzzleGeniusConfig.disapear) end addEvent(doPlayerSetNoMove, (PuzzleGeniusConfig.appearInterval*#CurrentSequence+PuzzleGeniusConfig.disapear)*1000, cid, false) end function PuzzleGenius:Check(cid, currentSteps) if currentSteps[#currentSteps] == CurrentSequence[#currentSteps] then return true end return false end function onStepIn(cid, item, pos, fromPos) if pos.x == PuzzleGeniusConfig.centerPlayerPos.x and pos.y == PuzzleGeniusConfig.centerPlayerPos.y then if #CurrentSequence < 1 then doPlayerSetNoMove(cid, true) return PuzzleGenius:ExecuteSequence(cid) else return false end end local coordinates = {pos.x-fromPos.x, pos.y-fromPos.y} for i,x in pairs(PuzzleGeniusConfig.effectsid) do if x[1] == coordinates[1] and x[2] == coordinates[2] then table.insert(CurrentSteps, i) if PuzzleGenius:Check(cid, CurrentSteps) then doCreateItem(i, {x=PuzzleGeniusConfig.centerPlayerPos.x+coordinates[1], y=PuzzleGeniusConfig.centerPlayerPos.y+coordinates[2], z=PuzzleGeniusConfig.centerPlayerPos.z}) end end end if PuzzleGenius:Check(cid, CurrentSteps) then doTeleportThing(cid, fromPos, true) if #CurrentSteps == #CurrentSequence then doPlayerSetNoMove(cid, true) CurrentSteps = {} addEvent(function() PuzzleGenius:ExecuteSequence(cid) end, 500) end else doTeleportThing(cid, PuzzleGeniusConfig.backPos) CurrentSteps = {} CurrentSequence = {} end return TRUE end function onStepOut(cid, item, pos, fromPos) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}) for i,x in pairs(PuzzleGeniusConfig.effectsid) do if i == tile.itemid then addEvent(function() local tilee = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tilee, 1) end, 100) break end end return TRUE end Entao, adicionei a Tag : <movevent type="StepIn" actionid="6661" event="script" value="Genius.lua"> <movevent type="StepOut" actionid="6661" event="script" value="Genius.lua"> Pois entao adicionei no meu servidor e coloquei no mapa : ></noscript> Ai eu modifiquei ele para : CurrentSteps = {} CurrentSequence = {} PuzzleGeniusConfig = { centerPlayerPos = {x=10181,y=10004,z=12}, effectsid = { [9562] = {1, 0}, [9563] = {0, 1}, [9564] = {-1, 0}, [9565] = {0, -1} }, appearInterval = 1, disapear = 0.6, backPos = {x=10182,y=10000,z=12}, rewardPos = {x=10181,y=10004,z=12}, roundTimes = 100, } CurrentSequence = {} PuzzleGenius = {} function randomIndexFromTable(tab) local tb = {} for i,x in pairs(tab) do table.insert(tb, i) end return tb[math.random(1, #tb)] end function tileEffect(tileid, pos, int) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=0}) doItemSetAttribute(tile.uid, "aid", 6661) local a = doCreateItem(tileid, pos) addEvent(function() local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tile, 1) end, int*1000) end function PuzzleGenius:ExecuteSequence(cid) if #CurrentSequence >= PuzzleGeniusConfig.roundTimes then doTeleportThing(cid, PuzzleGeniusConfig.rewardPos) doPlayerSetNoMove(cid, false) CurrentSteps = {} CurrentSequence = {} return true end table.insert(CurrentSequence, randomIndexFromTable(PuzzleGeniusConfig.effectsid)) for i,x in ipairs(CurrentSequence) do addEvent(tileEffect, PuzzleGeniusConfig.appearInterval*i*1000, x, {x=PuzzleGeniusConfig.centerPlayerPos.x +PuzzleGeniusConfig.effectsid[x][1], y=PuzzleGeniusConfig.centerPlayerPos.y+PuzzleGeniusConfig.effectsid[x][2], z=PuzzleGeniusConfig.centerPlayerPos.z},PuzzleGeniusConfig.disapear) end addEvent(doPlayerSetNoMove, (PuzzleGeniusConfig.appearInterval*#CurrentSequence+PuzzleGeniusConfig.disapear)*1000, cid, false) end function PuzzleGenius:Check(cid, currentSteps) if currentSteps[#currentSteps] == CurrentSequence[#currentSteps] then return true end return false end function onStepIn(cid, item, pos, fromPos) if pos.x == PuzzleGeniusConfig.centerPlayerPos.x and pos.y == PuzzleGeniusConfig.centerPlayerPos.y then if #CurrentSequence < 1 then doPlayerSetNoMove(cid, true) return PuzzleGenius:ExecuteSequence(cid) else return false end end local coordinates = {pos.x-fromPos.x, pos.y-fromPos.y} for i,x in pairs(PuzzleGeniusConfig.effectsid) do if x[1] == coordinates[1] and x[2] == coordinates[2] then table.insert(CurrentSteps, i) if PuzzleGenius:Check(cid, CurrentSteps) then doCreateItem(i, {x=PuzzleGeniusConfig.centerPlayerPos.x+coordinates[1], y=PuzzleGeniusConfig.centerPlayerPos.y +coordinates[2], z=PuzzleGeniusConfig.centerPlayerPos.z}) end end end if PuzzleGenius:Check(cid, CurrentSteps) then doTeleportThing(cid, fromPos, true) if #CurrentSteps == #CurrentSequence then doPlayerSetNoMove(cid, true) CurrentSteps = {} addEvent(function() PuzzleGenius:ExecuteSequence(cid) end, 500) end else doTeleportThing(cid, PuzzleGeniusConfig.backPos) CurrentSteps = {} CurrentSequence = {} end return TRUE end function onStepOut(cid, item, pos, fromPos) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}) for i,x in pairs(PuzzleGeniusConfig.effectsid) do if i == tile.itemid then addEvent(function() local tilee = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tilee, 1) end, 100) break end end return TRUE end Oq edito ? Oque eu modifico ? Me ajuda Por Favor. Editado Julho 11, 2012 por pkemomm Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1291381 Compartilhar em outros sites More sharing options...
qweqwe 0 Postado Julho 31, 2012 Share Postado Julho 31, 2012 (editado) removido. Editado Setembro 15, 2012 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1305611 Compartilhar em outros sites More sharing options...
DelaksOficial 0 Postado Agosto 25, 2012 Share Postado Agosto 25, 2012 Putz esse cara aki /\ kk Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1324126 Compartilhar em outros sites More sharing options...
victormatos 0 Postado Agosto 25, 2012 Share Postado Agosto 25, 2012 esse script não faz nada de mais. Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1324208 Compartilhar em outros sites More sharing options...
groku 13 Postado Setembro 15, 2012 Share Postado Setembro 15, 2012 Crendeuspai adoro esse tipo de joguinho que tem que memorizar ee.eeeeee Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1339813 Compartilhar em outros sites More sharing options...
4sharedddd 1 Postado Janeiro 4, 2016 Share Postado Janeiro 4, 2016 sei que já faz tempo o post, desculpe. achei muito interessante... como faço para ele realizar tal ação depois de "x" rodadas, tipo doTelepor... depois q ele acertou 6 vezes, alguém pode ajudar? Link para o comentário https://xtibia.com/forum/topic/180452-genius-movement/#findComment-1679979 Compartilhar em outros sites More sharing options...
Posts Recomendados