GU
action

Adquirir storage temporariamente por meio de talkaction.

Por Gutorb, 17 de jun. de 2015 em Scripts

resolvido
otserv
tibia
script
4
1.1k
GutorbG
17 de junho de 2015 às 20:46

Saudações, prezados membros do Xtibia, site ao qual sempre recorro em caso de dúvida!

 

 

Então,

 

Venho solicitar encarecidamente um script que permita ao player adquirir storage temporariamente ao utilizar talkaction e desembolsar o valor para isso.

 

Pretendo utilizá-lo da seguinte forma: o player, ao fazer uso de determinada talkaction, paga 1kk e ganha poderes para abrir temporariamente uma porta. Transcorridas 24h, o player perde tais poderes para abrir a porta, mas pode readquiri-los se utilizar a talkaction novamente.

 

P.S.: Procurei script semelhante no fórum e não encontrei.

 

Versão do servidor: 8.6.

 

Obrigado desde já.

BrunoB
18 de junho de 2015 às 09:51
Melhor resposta

Talkaction:

local config = {
	storage = 99488, -- STORAGE PARA CONTROLAR TEMPO
	cost = 1000000, -- Preço para comprar o acesso
	tempo = 24 -- Tempo em horas para durar a compra
}

function onSay(cid, words, param)
	if getPlayerStorageValue(cid, config.storage) < os.time() then
		if doPlayerRemoveMoney(cid, config.cost) then
			setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo * 60 * 60))
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou " .. config.tempo .. " horas de acesso.")
			doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
			return true
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa de  " .. config.cost .. " gold coins para comprar este acesso.")
			return false
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce so pode comprar este acesso a cada " .. config.tempo .. " horas.")
	end
	return false
end

Porta:

local storage = 99488 -- STORAGE PARA CONTROLAR TEMPO

function onUse(cid, item, topos)
        if getPlayerStorageValue(cid, storage) < os.time() then
                doTeleportThing(cid, topos, true)
                return true
        end
        return doPlayerSendCancel(cid, "Voce precisa comprar acesso para entrar nessa area.")
end
GutorbG
22 de junho de 2015 às 17:37

Bruno,

 

Muito obrigado pela ajuda.

 

Funcionou.

 

Abraço!

BrunoB
22 de junho de 2015 às 17:56

Tópico movido para a seção de dúvidas e pedidos resolvidos.