Ir para conteúdo
  • Cadastre-se

Ajuda, como colocar tempo na lavanca de quest, para que os proximos players aguardarem e possam puxar novamente


Posts Recomendados

.Qual servidor ou website você utiliza como base? 

 

Qual o motivo deste tópico? 

Eu tenho esse script de anihi que uso para criar outras quest, porem eu gostaria de por um tempo na lavanca para que os proximos 4 players que tentarem puxar tenham q aguardar pelomenos 5 a 10 minutos.

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

function onUse(cid, item, frompos, item2, topos)
if item.uid == 6009 then

if item.itemid == 1946 then

player1pos = {x=1460, y=1940, z=9, stackpos=253}

player1 = getThingfromPos(player1pos)


player2pos = {x=1461, y=1940, z=9, stackpos=253}

player2 = getThingfromPos(player2pos)

player3pos = {x=1462, y=1940, z=9, stackpos=253}

player3 = getThingfromPos(player3pos)


player4pos = {x=1463, y=1940, z=9, stackpos=253}

player4 = getThingfromPos(player4pos)

if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then

player1level = getPlayerLevel(player1.uid)

player2level = getPlayerLevel(player2.uid)

player3level = getPlayerLevel(player3.uid)

player4level = getPlayerLevel(player4.uid)

questlevel = 100

if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then

queststatus1 = getPlayerStorageValue(player1.uid,6026)

queststatus2 = getPlayerStorageValue(player2.uid,6026)

queststatus3 = getPlayerStorageValue(player3.uid,6026)

queststatus4 = getPlayerStorageValue(player4.uid,6026)

if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then

demon1pos = {x=1442, y=1989, z=12}

demon2pos = {x=1444, y=1989, z=12}

demon3pos = {x=1442, y=1998, z=12}

demon4pos = {x=1442, y=1998, z=12}

demon5pos = {x=1441, y=2010, z=12}

demon6pos = {x=1444, y=2010, z=12}


doSummonCreature("Demon", demon1pos)

doSummonCreature("Demon", demon2pos)

doSummonCreature("Demon", demon3pos)

doSummonCreature("Demon", demon4pos)

doSummonCreature("Demon", demon5pos)

doSummonCreature("Demon", demon6pos)


nplayer1pos = {x=1461, y=1928, z=10}

nplayer2pos = {x=1462, y=1928, z=10}

nplayer3pos = {x=1463, y=1928, z=10}

nplayer4pos = {x=1464, y=1928, z=10}


doSendMagicEffect(player1pos,2)

doSendMagicEffect(player2pos,2)

doSendMagicEffect(player3pos,2)

doSendMagicEffect(player4pos,2)


doTeleportThing(player1.uid,nplayer1pos)

doTeleportThing(player2.uid,nplayer2pos)

doTeleportThing(player3.uid,nplayer3pos)

doTeleportThing(player4.uid,nplayer4pos)


doSendMagicEffect(nplayer1pos,10)

doSendMagicEffect(nplayer2pos,10)

doSendMagicEffect(nplayer3pos,10)

doSendMagicEffect(nplayer4pos,10)


doTransformItem(item.uid,item.itemid+0)


else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

elseif item.itemid == 1946 then

if getPlayerAccess(cid) == 3 then

doTransformItem(item.uid,item.itemid-1)

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

end

end

return 1

end

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Link para o post
Compartilhar em outros sites
  • 7 months later...

Faça a adaptação do código abaixo de acordo com a sua necessidade.

 

.lua:

 


        local storage = 99991201 -- Responsável por armazenar o tempo em que a alavanca foi usada.
        local timeInMinutes = 5 -- Tempo em minutos que precisará aguardar para puxar a alavanca novamente
    
        -- function de tempo // Peguei essa function do FeeTads - TibiaKing
        local function getTimeString(self)
            local format = {
                {'dia', self / 60 / 60 / 24},
                {'hora', self / 60 / 60 % 24},
                {'minuto', self / 60 % 60},
                {'segundo', self % 60}
            }
    
            local out = {}
            for k, t in ipairs(format) do
                local v = math.floor(t[2])
                if(v > 0) then
                    table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or ''))
                end
            end
            local ret = table.concat(out)
            if ret:len() < 16 and ret:find('segundo') then
                local a, b = ret:find(' e ')
                ret = ret:sub(b+1)
            end
            return ret
        end

        if getGlobalStorageValue(storage) - os.time() <= 0 then
            setGlobalStorageValue(storage, os.time() + (timeInMinutes*60))

        --- COLOQUE AQUI O SCRIPT QUE VAI ACONTECER APÓS CLICAR NA AVALANCA

        else 
            doPlayerSendCancel(cid, "Espere "..getTimeString((getGlobalStorageValue(storage)-os.time())).." para usar a alavanca novamente!")	
        end

 

 

Link para o post
Compartilhar em outros sites

existem 2 formas de fazer isso, como o Imperius ali ja basicamente fez, da pra vc fazer por storage, OU, mudar a forma da alavanca, se a alavanca for puxada, muda o ID, e coloca um addEvent com timer pra ela voltar ao normal.

 

assim: 

 

Spoiler

--[[ Script Editado por FeeTads - TibiaKing ]]--

local config = {
	minutos = 5			-- modificar em minutos
}

function onUse(cid, item, frompos, item2, topos)

	if item.uid == 6009 then
		if item.itemid == 1946 then
			player1pos = {x=1460, y=1940, z=9, stackpos=253}
			player1 = getThingfromPos(player1pos)
			player2pos = {x=1461, y=1940, z=9, stackpos=253}
			player2 = getThingfromPos(player2pos)
			player3pos = {x=1462, y=1940, z=9, stackpos=253}
			player3 = getThingfromPos(player3pos)
			player4pos = {x=1463, y=1940, z=9, stackpos=253}
			player4 = getThingfromPos(player4pos)
			
			if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
				player1level = getPlayerLevel(player1.uid)
				player2level = getPlayerLevel(player2.uid)
				player3level = getPlayerLevel(player3.uid)
				player4level = getPlayerLevel(player4.uid)
				questlevel = 100
				
				if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then
					queststatus1 = getPlayerStorageValue(player1.uid,6026)
					queststatus2 = getPlayerStorageValue(player2.uid,6026)
					queststatus3 = getPlayerStorageValue(player3.uid,6026)
					queststatus4 = getPlayerStorageValue(player4.uid,6026)
					
					if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
						demon1pos = {x=1442, y=1989, z=12}
						demon2pos = {x=1444, y=1989, z=12}
						demon3pos = {x=1442, y=1998, z=12}
						demon4pos = {x=1442, y=1998, z=12}
						demon5pos = {x=1441, y=2010, z=12}
						demon6pos = {x=1444, y=2010, z=12}

						doSummonCreature("Demon", demon1pos)
						doSummonCreature("Demon", demon2pos)
						doSummonCreature("Demon", demon3pos)
						doSummonCreature("Demon", demon4pos)
						doSummonCreature("Demon", demon5pos)
						doSummonCreature("Demon", demon6pos)

						nplayer1pos = {x=1461, y=1928, z=10}
						nplayer2pos = {x=1462, y=1928, z=10}
						nplayer3pos = {x=1463, y=1928, z=10}
						nplayer4pos = {x=1464, y=1928, z=10}

						doSendMagicEffect(player1pos,2)
						doSendMagicEffect(player2pos,2)
						doSendMagicEffect(player3pos,2)
						doSendMagicEffect(player4pos,2)

						doTeleportThing(player1.uid,nplayer1pos)
						doTeleportThing(player2.uid,nplayer2pos)
						doTeleportThing(player3.uid,nplayer3pos)
						doTeleportThing(player4.uid,nplayer4pos)

						doSendMagicEffect(nplayer1pos,10)
						doSendMagicEffect(nplayer2pos,10)
						doSendMagicEffect(nplayer3pos,10)
						doSendMagicEffect(nplayer4pos,10)
						
						doTransformItem(item.uid,item.itemid-1) -- vai transformar a alavanca em ID 1945
						addEvent(function()
							doTransformItem(item.uid,item.itemid+1)
						end, config.minutos*60)						-- tempo que demora voltar a alavanca (não precisa mexer aqui, apenas la no cabeçalho)

					else
						doPlayerSendCancel(cid,"Sorry, not possible.")
					end
				else
					doPlayerSendCancel(cid,"Sorry, not possible.")
				end
			else
				doPlayerSendCancel(cid,"Sorry, not possible.")
			end
		elseif item.itemid == 1945 then									-- caso a alavanca seja id 1945 (ja foi puxada)
			doPlayerSendCancel(cid,"Sorry, not possible.")
			return true
		end
	end

	return 1

end

 

 

 

e um adendo, vi que vc usa o "getThingFromPos" isso meio que pega QUALQUER coisa da posição.

caso queira pegar apenas CRIATURAS (monster ou player) use:

local m = getTopCreature(colocar-aqui-a-position).uid		--pega a creature da posição
if m ~= 0 and isPlayer(m) then								--se existir creature *E* for player então....
	...
end

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo