oque isso faz exatamente ? =.=
@ edited
opa agora tem video rs
info
Grupo: Banidos
Registrado: 21/01/12
Posts: 842
Reputação: +234
Char no Tibia: Stephan

oque isso faz exatamente ? =.=
@ edited
opa agora tem video rs
Editado Fevereiro 9 por AnneMotta
info
Grupo: Conde
Registrado: 17/07/11
Posts: 705
Reputação: +108

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.
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

@Matheus
Isso vai para o Concurso #SDS?
info
Grupo: Conde
Registrado: 09/09/09
Posts: 528
Reputação: +424
Char no Tibia: Emekalo Makalo

Sim
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

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+
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

ola moco
parabens pelo codigo ok
e o vodkart ainda acessa aqui, parabens tb cara
obg
info
Grupo: Conde
Registrado: 09/09/09
Posts: 528
Reputação: +424
Char no Tibia: Emekalo Makalo

O que fazes aki andy gostoso.
Concertou o pc que tem windows ja?
info
Grupo: Campones
Registrado: 12/05/11
Posts: 12
Reputação: 0
Char no Tibia: {ADM} AriBR , {ADM} DehBR

Muito bom cara. Sem comentarios ! ;p sempre inovador...
info
Grupo: Campones
Registrado: 04/12/11
Posts: 27
Reputação: 0
Char no Tibia: Povenorte

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 :
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 por pkemomm
removido.
Editado Setembro 15 por Demonbholder
info
Grupo: Campones
Registrado: 18/08/12
Posts: 17
Reputação: 0
Char no Tibia: Delaks

Putz esse cara aki /\ kk
info
Grupo: Campones
Registrado: 25/08/12
Posts: 11
Reputação: 0

esse script não faz nada de mais.
Crendeuspai adoro esse tipo de joguinho que tem que memorizar ee.eeeeee
info
Grupo: Campones
Registrado: 05/10/13
Posts: 51
Reputação: -1

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?
info
Grupo: Conde
Registrado: 09/09/09
Posts: 528
Reputação: +424
Char no Tibia: Emekalo Makalo
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 endtags movements.xml:
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 8 por MatheusMkalo