Ir para conteúdo
  • Cadastre-se

Posts Recomendados

to trabalhando numa quest e preciso que ela seja feita 1x ao dia, consegui fazer toda a parte que teleportaria os players e tal, mas na hora da storage tá tenso!

a storage até é atribuida ao player mas não pelo tempo que eu coloquei ali (tentei com 10 segundos pra fazer o teste, e nada)

 

o script:

 

Spoiler

 


local t = {
	lvl = 150,
	Time = 15, 
	entrada =
	{
		{x = 191, y = 425, z = 8},

	},
	saida =
	{
		{x = 124, y = 350, z = 9},
		{x = 129, y = 350, z = 9}
	},
	monstros =
	{
		{{x=299, y=399, z=9}, "Mega Blastoise"},
		{{x=238, y=399, z=9}, "Mega Venusaur"},
		{{x=206, y=403, z=9}, "Mega Absol"}, 
		{{x=217, y=397, z=9}, "Elder Tangela"},
		{{x=219, y=406, z=9}, "Elder Venusaur"}, 
		{{x=229, y=409, z=9}, "Mega Ampharos"}, 
		{{x=235, y=406, z=9}, "Mega Pidgeot"}, 
		{{x=238, y=414, z=9}, "Elder Jynx"}, 
		{{x=227, y=412, z=9}, "Elder Pidgeot"},
		{{x=220, y=414, z=9}, "Elder Tentacruel"}, 
		{{x=211, y=412, z=9}, "Mega Charizard X"},
		{{x=205, y=418, z=9}, "Mega Charizard Y"}, 
		{{x=215, y=418, z=9}, "Elder Charizard"}, 
		{{x=223, y=420, z=9}, "Elder Pinsir"}, 
		{{x=231, y=418, z=9}, "Elder Jynx"},
		{{x=237, y=422, z=9}, "Mega Ampharos"},
		{{x=202, y=426, z=9}, "Mega Blastoise"},
		{{x=247, y=422, z=9}, "Underworld Rayquaza"}
	} 
}
function VarAnihiPlayer(cid)
	if not isCreature(cid) then return LUA_ERROR end
	if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	end
end
function getPlayersInArea(fromPos, toPos)
	local players = {}
	for _, pid in ipairs(getPlayersOnline()) do
		if isInRange(getPlayerPosition(pid), fromPos, toPos) then
			table.insert(players, pid)
		end
	end
	return players
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local check = {}
	if #getPlayersInArea(t.saida[1], t.saida[#t.saida]) > 0 then 
		doPlayerSendCancel(cid, 'Wait, there are players doing the quest.') return true
	end
	if getPlayerStorageValue(cid, 17899) == 1 then 
			doPlayerSendCancel(cid, 'You need to wait 24hours to enter again.') return true
			end
	
	for _, k in ipairs(t.entrada) do
		local x = getTopCreature(k).uid
		if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then
			doPlayerSendCancel(cid, 'Need another player or somebody else has no level '..t.lvl..'.') return true
		end
		table.insert(check, x)
	end
	for _, summon in pairs(t.monstros) do
		local creature = getTopCreature(summon[1]).uid
		if(creature > 0 and not isPlayer(creature)) then
			doRemoveCreature(creature)
		end
		doCleanTile(summon[1])
		doCreateMonster(summon[2], summon[1])
	end
	for i, tid in ipairs(check) do
		doSendMagicEffect(t.entrada[i], CONST_ME_POFF)
		doTeleportThing(tid, t.saida[i], false)
		setPlayerStorageValue(cid, 17899, os.time()+86400)
		addEvent(VarAnihiPlayer, t.Time*60*1000, tid)
		doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA)
	end
	return true
end

 

alguém sabe me dizer onde estou errando?

 

Link para o post
Compartilhar em outros sites

Testa agora:

local t = {
	lvl = 150,
	Time = 15, 
	entrada =
	{
		{x = 191, y = 425, z = 8},
		
	},
	saida =
	{
		{x = 124, y = 350, z = 9},
		{x = 129, y = 350, z = 9}
	},
	monstros =
	{
		{{x=299, y=399, z=9}, "Mega Blastoise"},
		{{x=238, y=399, z=9}, "Mega Venusaur"},
		{{x=206, y=403, z=9}, "Mega Absol"}, 
		{{x=217, y=397, z=9}, "Elder Tangela"},
		{{x=219, y=406, z=9}, "Elder Venusaur"}, 
		{{x=229, y=409, z=9}, "Mega Ampharos"}, 
		{{x=235, y=406, z=9}, "Mega Pidgeot"}, 
		{{x=238, y=414, z=9}, "Elder Jynx"}, 
		{{x=227, y=412, z=9}, "Elder Pidgeot"},
		{{x=220, y=414, z=9}, "Elder Tentacruel"}, 
		{{x=211, y=412, z=9}, "Mega Charizard X"},
		{{x=205, y=418, z=9}, "Mega Charizard Y"}, 
		{{x=215, y=418, z=9}, "Elder Charizard"}, 
		{{x=223, y=420, z=9}, "Elder Pinsir"}, 
		{{x=231, y=418, z=9}, "Elder Jynx"},
		{{x=237, y=422, z=9}, "Mega Ampharos"},
		{{x=202, y=426, z=9}, "Mega Blastoise"},
		{{x=247, y=422, z=9}, "Underworld Rayquaza"}
	} 
}
function VarAnihiPlayer(cid)
	if not isCreature(cid) then return LUA_ERROR end
	if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	end
end
function getPlayersInArea(fromPos, toPos)
	local players = {}
	for _, pid in ipairs(getPlayersOnline()) do
		if isInRange(getPlayerPosition(pid), fromPos, toPos) then
			table.insert(players, pid)
		end
	end
	return players
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local check = {}
	if #getPlayersInArea(t.saida[1], t.saida[#t.saida]) > 0 then 
		doPlayerSendCancel(cid, 'Wait, there are players doing the quest.')
		return true
	end
	if getPlayerStorageValue(cid, 17899) > os.time() then 
		doPlayerSendCancel(cid, 'You need to wait 24hours to enter again.')
		return true
	end
	
	for _, k in ipairs(t.entrada) do
		local x = getTopCreature(k).uid
		if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then
			doPlayerSendCancel(cid, 'Need another player or somebody else has no level '..t.lvl..'.')
			return true
		end
		table.insert(check, x)
	end
	for _, summon in pairs(t.monstros) do
		local creature = getTopCreature(summon[1]).uid
		if(creature > 0 and not isPlayer(creature)) then
			doRemoveCreature(creature)
		end
		doCleanTile(summon[1])
		doCreateMonster(summon[2], summon[1])
	end
	for i, tid in ipairs(check) do
		doSendMagicEffect(t.entrada[i], CONST_ME_POFF)
		doTeleportThing(tid, t.saida[i], false)
		setPlayerStorageValue(cid, 17899, os.time()+86400)
		addEvent(VarAnihiPlayer, t.Time*60*1000, tid)
		doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA)
	end
	return true
end

 

 

O erro aparente era bem simples, se o momento atual do presente é o tempo "100", daqui um dia será "200", você quando salva o tempo "200" (que seria amanhã), ao checar a storage, tem que checar se "amanhã (200) é maior que o tempo atual", e sua checagem estava:

if getPlayerStorageValue(cid, 17899) == 1 then

Sendo que teria que ser assim:

if getPlayerStorageValue(cid, 17899) > os.time() then
-- se o tempo salvo na storage é maior que o tempo atual, o player ainda não pode passar pois não deu 24h

 

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

Link para o post
Compartilhar em outros sites
20 horas atrás, Danxi disse:

funcionou, muito obrigado!!

 

não entendi isso, os.time é o tempo de agora mas vc me confundiu com isso de 100 e 200, posso te chamar no privado?

Caso você queira entender o que eu te disse, pode me chamar, mas não para pedir scripts, isso pode ser feito criando um tópico, =)

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

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.


  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo