Ir para conteúdo

Featured Replies

Postado

eae, eu tenho um outfit por storage, queria algo para acrescentar um time nessa storage que há removesse depois de x tempo, talvez seja no login sei lah, obrigado!

Versao 8.6

  • Respostas 5
  • Visualizações 823
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Só utilizar aquele "métodozin" padrão :

 

Seta os.time() + seconds na storage ao dar a outfit ao jogador, depois só verificar em qualquer evento, seja onLogin, onThink; vai de sua preferência :

if getPlayerStorageValue(cid, storage) <= os.time() then
	-- fazer aqui a remoção da outfit
end

 

Postado
  • Autor
2 horas atrás, Lyu disse:

Só utilizar aquele "métodozin" padrão :

 

Seta os.time() + seconds na storage ao dar a outfit ao jogador, depois só verificar em qualquer evento, seja onLogin, onThink; vai de sua preferência :


if getPlayerStorageValue(cid, storage) <= os.time() then
	-- fazer aqui a remoção da outfit
end

 

 

o script que da a storage é esse, boss kill:

 

function onDeath(cid, corpse, deathList)
local Storage,monstName = 20000, "[BOSS]Gonka"
	if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower(monstName) then
		doBroadcastMessage("O player "..getPlayerName(deathList[1]).." matou o [BOSS]Gonka e recebeu o outfit Supremo.")
		for _, check in pairs(deathList) do
			if isPlayer(check) then
				setPlayerStorageValue(check, Storage, 1)
			end
		end
	end 
return true
end

 

Postado
3 horas atrás, Sdrula disse:

o script que da a storage é esse, boss kill:

no caso, você quer resetar a storage do jogador depois de um certo tempo? se for isso, utilize esta minha modificação que deixarei abaixo..

Ahh, um detalhe! O intuito do script é dar storage somente para quem matou o boss? Ou entendi errado? Porque se sim, fiz algumas correções, antes estava iterando a deathList toda.

local config = {

	boss = '[BOSS]Gonka',
	storage = 20000,
	time = 300 -- 5 minutes
}

function onDeath(cid, corpse, deathList)
	if isMonster(cid) and getCreatureName(cid):lower() == config.boss:lower() then
		local player = deathList[1]
		
		if isPlayer(player) then
			doBroadcastMessage(('O player %s matou o %s e recebeu a outfit Supremo.'):format(getPlayerName(player), config.boss))
			setPlayerStorageValue(player, config.storage, os.time() + config.time)
		end 
	end
	
	return true
end

function onThink(cid)
	local time = getPlayerStorageValue(cid, config.storage)
	
	if time ~= -1 and time < os.time() then
		setPlayerStorageValue(cid, config.storage, -1)
		doPlayerPopupFYI(cid, 'Atenção, sua outfit Supremo expirou.')
	end
	
	return true
end

 

Agora só adicionar a tag (não esqueça de alterar o nome do arquivo no XML) do novo evento onThink e um register em login.lua :

<event type="think" name="OutfitBossThink" event="script" value="scriptname.lua"/>

 

login.lua :

registerCreatureEvent(cid, 'OutfitBossThink')

 

Postado
  • Autor
1 hora atrás, Lyu disse:

no caso, você quer resetar a storage do jogador depois de um certo tempo? se for isso, utilize esta minha modificação que deixarei abaixo..

Ahh, um detalhe! O intuito do script é dar storage somente para quem matou o boss? Ou entendi errado? Porque se sim, fiz algumas correções, antes estava iterando a deathList toda.


local config = {

	boss = '[BOSS]Gonka',
	storage = 20000,
	time = 300 -- 5 minutes
}

function onDeath(cid, corpse, deathList)
	if isMonster(cid) and getCreatureName(cid):lower() == config.boss:lower() then
		local player = deathList[1]
		
		if isPlayer(player) then
			doBroadcastMessage(('O player %s matou o %s e recebeu a outfit Supremo.'):format(getPlayerName(player), config.boss))
			setPlayerStorageValue(player, config.storage, os.time() + config.time)
		end 
	end
	
	return true
end

function onThink(cid)
	local time = getPlayerStorageValue(cid, config.storage)
	
	if time ~= -1 and time < os.time() then
		setPlayerStorageValue(cid, config.storage, -1)
		doPlayerPopupFYI(cid, 'Atenção, sua outfit Supremo expirou.')
	end
	
	return true
end

 

Agora só adicionar a tag (não esqueça de alterar o nome do arquivo no XML) do novo evento onThink e um register em login.lua :


<event type="think" name="OutfitBossThink" event="script" value="scriptname.lua"/>

 

login.lua :


registerCreatureEvent(cid, 'OutfitBossThink')

 

 

não funcionou por completo, ele parece nao reconhecer o monstro definido, ele até removeu uma outfit q já tinha, mas quando o monstro é morto nao acontece nada, tambem nao da erro. Nao sei se é necessário mas ja tenho no monstro:

<script>
<event name="OutfitBossThink"/>
</script>

Editado por Sdrula (veja o histórico de edições)

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo