Ir para conteúdo
  • Cadastre-se

(Resolvido)Tempo para usar novamente [MOD]


Ir para solução Resolvido por luangop,

Posts Recomendados

Distro: OTX Server 2 
8.60

Olá, tenho um mod onde o jogador usa uma double exp potion normalmente, muitos já conhecem esse mod. Gostaria apenas de que quando o efeito da double exp potion terminasse o jogador tivesse que esperar 30 minutos para usar outra double exp potion novamente.

Meu script de double exp potion [mod]

 

local config = {  
    rate = 1, 
    storage = 1011, 
    expstorage = 1111, 
    register = 1211, 
    time = 3600, 
}  

function onUse(cid, item, fromPosition, itemEx, toPosition) 
    if getPlayerStorageValue(cid, config.storage) <= 0 then 
        local rates = getPlayerRates(cid) 
        setPlayerStorageValue(cid, config.expstorage, rates[SKILL__LEVEL]) 
        setPlayerStorageValue(cid, config.register, 1) 
        itemEx=itemid == 2345 
        doCreatureSay(cid, "Your extra experience rate has been activated! It now is: " .. config.rate .. "x added to your former experience rate.", TALKTYPE_ORANGE_1, true, cid) 
        setPlayerStorageValue(cid, config.storage, os.time()+config.time)  
        doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+config.rate)  
        doRemoveItem(item.uid,1) 
        registerCreatureEvent(cid, "ExpStage") 
    else 
        doCreatureSay(cid, "You must finish first exp condition to start other exp condition !", TALKTYPE_ORANGE_1, true, cid) 
    end 
return true 
end 
function onThink(cid, interval) 
    if getPlayerStorageValue(cid, config.register) == 1 then 
        if getPlayerStorageValue(cid, config.storage) <= os.time() then 
            doCreatureSay(cid, "Your extra experience rate has finished! It is now normaly experience rate.", TALKTYPE_ORANGE_1, true, cid) 
            setPlayerStorageValue(cid, config.storage, 0) 
            setPlayerStorageValue(cid, config.register, 0) 
            local oldexp = getPlayerStorageValue(cid, config.expstorage) 
            doPlayerSetExperienceRate(cid, oldexp) 
            unregisterCreatureEvent(cid, "ExpStage") 
        end 
    end 
return true 
end 
function onLogin(cid) 
    if getPlayerStorageValue(cid, config.register) == 1 then 
        registerCreatureEvent(cid, "ExpStage") 
        local rates = getPlayerRates(cid) 
        doCreatureSay(cid, "Your extra experience rate is still here! It is: " .. config.rate .. "x added to your former experience rate.", TALKTYPE_ORANGE_1, true, cid) 
        if getPlayerStorageValue(cid, config.storage) > os.time() then 
        local oldexp = getPlayerStorageValue(cid, config.expstorage) 
        doPlayerSetExperienceRate(cid, oldexp+config.rate) 
        end 
    end     
return true 
end



Agradeço desde já! Quem conseguir me ajudar eu darei REP+ durante um bom tempo :D

Link para o post
Compartilhar em outros sites
  • Solução

Obs: Não testei...

 

local config = { 
	rate = 1, 
	storage = 1011, 
	expstorage = 1111, 
	register = 1211, 
	waitsto = 8445601,
	waittime = 1800,
	time = 3600, 
} 

function onUse(cid, item, fromPosition, itemEx, toPosition) 
	if getPlayerStorageValue(cid, config.storage) <= 0 then 
		if getPlayerStorageValue(cid, config.waitsto) >= os.time() + 1 then
			doCreatureSay(cid, "You should wait 30 minutes after the last exp condition to start another exp condition!", TALKTYPE_ORANGE_1, true, cid)
			return true
		end
		setPlayerStorageValue(cid, config.waitsto, os.time() + config.waittime)
		local rates = getPlayerRates(cid)
		setPlayerStorageValue(cid, config.expstorage, rates[SKILL__LEVEL]) 
		setPlayerStorageValue(cid, config.register, 1) 
		itemEx=itemid == 2345 
		doCreatureSay(cid, "Your extra experience rate has been activated! It now is: " .. config.rate .. "x added to your former experience rate.", TALKTYPE_ORANGE_1, true, cid) 
		setPlayerStorageValue(cid, config.storage, os.time()+config.time) 
		doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+config.rate) 
		doRemoveItem(item.uid,1) 
		registerCreatureEvent(cid, "ExpStage") 
	else 
		doCreatureSay(cid, "You must finish first exp condition to start other exp condition !", TALKTYPE_ORANGE_1, true, cid) 
	end 
	return true 
end 
function onThink(cid, interval) 
	if getPlayerStorageValue(cid, config.register) == 1 then 
		if getPlayerStorageValue(cid, config.storage) <= os.time() then 
			doCreatureSay(cid, "Your extra experience rate has finished! It is now normaly experience rate.", TALKTYPE_ORANGE_1, true, cid) 
			setPlayerStorageValue(cid, config.storage, 0) 
			setPlayerStorageValue(cid, config.register, 0) 
			local oldexp = getPlayerStorageValue(cid, config.expstorage) 
			doPlayerSetExperienceRate(cid, oldexp) 
			unregisterCreatureEvent(cid, "ExpStage") 
		end 
	end 
	return true 
end 
function onLogin(cid) 
	if getPlayerStorageValue(cid, config.register) == 1 then 
		registerCreatureEvent(cid, "ExpStage") 
		local rates = getPlayerRates(cid) 
		doCreatureSay(cid, "Your extra experience rate is still here! It is: " .. config.rate .. "x added to your former experience rate.", TALKTYPE_ORANGE_1, true, cid) 
		if getPlayerStorageValue(cid, config.storage) > os.time() then 
			local oldexp = getPlayerStorageValue(cid, config.expstorage) 
			doPlayerSetExperienceRate(cid, oldexp+config.rate) 
		end 
	end 
	return true 
end

 

Editado por luangop
Identação (veja o histórico de edições)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo