Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

divisor2.png

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

divisor2.png

tags movements.xml:

<movevent type="StepIn" actionid="6661" event="script" value="Genius.lua"/>

<movevent type="StepOut" actionid="6661" event="script" value="Genius.lua"/>

Mapa:

1in0c2.png

A - Action ID 6661.

B - Teleport que teleporta para A, centerPlayerPos no script.

Achei esse script muito interessante e resolvi compartilhar aqui com vocês!

Creditos

99% (MatheusMkalo)

1% Gustavo Ferreira (Trazer Ao Tibia King)

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo