Ir para conteúdo
  • Cadastre-se

(Resolvido)[Action] Bau


Ir para solução Resolvido por MatteusDeli,

Posts Recomendados

tente assim:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local daysvalue = 1 * 60 * 60 -- 1 hora
storage = 928938923
local daily = getStorage(getPlayerAccount(cid), 13222423)

if getStorage(getPlayerAccount(cid), storage) <= os.time() then
		
			setAccountStorageValue(getPlayerAccount(cid), storage, os.time() + daysvalue)
			local item = doPlayerAddDepotItems(cid, 1990, 0) -- 1990 = id item e 0 townid
				doItemSetAttribute(item, "description", " Premio Diario [FREE].")
				doItemSetAttribute(item, 'aid', 10032)
				doSendMagicEffect(getThingPos(cid), 29)
	else
		local left = getStorage(getPlayerAccount(cid), storage) - os.time()
		left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
		doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].')
		doSendMagicEffect(getThingPos(cid), 2)
	end
return true
end

ou

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local daysvalue = 1 * 60 * 60 -- 1 hora
storage = 928938923
local daily = getAccountStorageValue(getPlayerAccount(cid), 13222423)




if getAccountStorageValue(getPlayerAccount(cid), storage) <= os.time() then
		
			setAccountStorageValue(getPlayerAccount(cid), storage, os.time() + daysvalue)
			local item = doPlayerAddDepotItems(cid, 1990, 0) -- 1990 = id item e 0 townid
				doItemSetAttribute(item, "description", " Premio Diario [FREE].")
				doItemSetAttribute(item, 'aid', 10032)
				doSendMagicEffect(getThingPos(cid), 29)
	else
		local left = getAccountStorageValue(getPlayerAccount(cid), storage) - os.time()
		left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
		doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].')
		doSendMagicEffect(getThingPos(cid), 2)
	end
return true
end

 

Editado por ikaroangelo21 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 10
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

@ASSAFSAF    Veja se é assim que você quer:     1 - data/scripts/actions crie um arquivo chamado questDaily.lua:   local storageBlock = 451112 -- Não alterar este Storage local storage = 44541 local hour = 1 -- Tempo em horas que o player poderá pegar a recompensa novamente local effectChest = 10 -- Efeito Bau local itemRewardID = 2160 -- ItemID que será enviado para o depot local count = 1 -- Quantidade do Item local time = 60 * 60 * hour local messageSucess = "

O primeiro apareceu o seguinte erro:

 

[Error - Action Interface]
data/actions/scripts/bautk.lua:onUse
Description:
data/actions/scripts/bautk.lua:4: attempt to call global 'getAccountStorageValue' (a nil value)
stack traceback:
        data/actions/scripts/bautk.lua:4: in function <data/actions/scripts/bautk.lua:1>

 

 

o segundo: 

 

[Error - Action Interface]
data/actions/scripts/bautk.lua:onUse
Description:
data/actions/scripts/bautk.lua:4: attempt to call global 'getAccountStorageValue' (a nil value)
stack traceback:
        data/actions/scripts/bautk.lua:4: in function <data/actions/scripts/bautk.lua:1>

 

Link para o post
Compartilhar em outros sites

@ASSAFSAF.

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local daysvalue = 1 * 60 * 60 -- 1 hora
storage = 928938923
local daily = getStorage(getPlayerAccount(cid), 13222423)

if getStorage(getPlayerAccount(cid), storage) <= os.time() then
		
			setAccountStorageValue(getPlayerAccount(cid), storage, os.time() + daysvalue)
			local item = doPlayerAddDepotItems(cid, 1990, 0) -- 1990 = id item e 0 townid
				doItemSetAttribute(item, "description", " Premio Diario [FREE].")
				doItemSetAttribute(item, 'aid', 10032)
				doSendMagicEffect(getThingPos(cid), 29)
	else
		local left = getStorage(getPlayerAccount(cid), storage) - os.time()
		left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
		doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].')
		doSendMagicEffect(getThingPos(cid), 2)
	end
return true
end

mudei a função 'getAccountStorageValue' por getStorage.

Link para o post
Compartilhar em outros sites

@ikaroangelo21

 

[Error - Action Interface]
data/actions/scripts/bautk.lua:onUse
Description:
data/actions/scripts/bautk.lua:8: attempt to call global 'setAccountStorageValue' (a nil value)
stack traceback:
        data/actions/scripts/bautk.lua:8: in function <data/actions/scripts/bautk.lua:1>

Editado por ASSAFSAF (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@ASSAFSAF 

 

Veja se é assim que você quer:  

 

1 - data/scripts/actions crie um arquivo chamado questDaily.lua:

 

local storageBlock = 451112 -- Não alterar este Storage
local storage = 44541

local hour = 1 -- Tempo em horas que o player poderá pegar a recompensa novamente
local effectChest = 10 -- Efeito Bau
local itemRewardID = 2160 -- ItemID que será enviado para o depot
local count = 1 -- Quantidade do Item

local time = 60 * 60 * hour 

local messageSucess = "Voce recebeu uma recompensa do bau, ela foi enviada para o seu depot." -- mensagem que irá aparecer quando o player pegar a recompensa
local messageFail = "Voce tem que esperar para poder pegar a quest novamente." -- mensagem que irá aparecer quando o player já pegou a recompensa


function onUse(cid, item, fromPosition, itemEx, toPosition)

	local playerName = getCreatureName(cid)
	
	if (getPlayerStorageValue(cid, storage) - os.time() < storage) then

		local timeLeft = getPlayerStorageValue(cid, storage) - os.time()
		local time = {
			hour = math.floor(timeLeft/3600), 
			minutes = math.ceil((timeLeft % 3600)/60)
		}

		doPlayerSendCancel(cid, messageFail)
	end

		if (getPlayerStorageValue(cid, storage) <= os.time()) then

			doPlayerSendMailByName(playerName, doCreateItemEx(itemRewardID, count), getPlayerTown(cid))
			doSendMagicEffect(getThingPos(cid), effectChest)
			doPlayerSendCancel(cid,messageSucess)
			setPlayerStorageValue(cid, storage, os.time() + time)
			setPlayerStorageValue(cid, storageBlock, 1)
		end
	
end 

 

Agora vamos registrar a ActionID do baú que fará a action no arquivo actions.XML.

 

 

2 - Vá em data/actions e abra o arquivo actions.xml e cole esta tag:

 

<action actionid="9991" script="questDaily.lua"/>

 

Agora vamos configurar a mensagem que vai ser enviada para o player quando ele tiver a permissão de pegar a recompensa outra vez.

 

 

3 - Vá em data/creaturescripts/scripts, crie um arquivo lua chamado questDaily.lua:


local storage = 44541 -- Mesmo Storage que você colocou no Script do Bau (data/actions/scripts/dailyQuest.lua)
local storageBlock = 451112 -- Não alterar este Storage
local message = "Voce ja pode pegar a recompensa novamente." -- mensagem que será enviada quando o player tiver a permissao para pegar a recompensa novamente.

function onThink(cid, interval)

	if(not isCreature(cid)) then
		return
	end

	if (os.time() == getPlayerStorageValue(cid, storage) and getPlayerStorageValue(cid, storageBlock) >= 1) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, message)
		setPlayerStorageValue(cid, storageBlock, -1)
	end

	return true
end

 

Agora vamos registrar o evento no Creaturescripts.XML

 

 

4 - Vá em data/creaturescripts e abra o arquivo creaturescripts.xml e cole está linha:

<event type="think" name="questDaily" interval="10" event="script" value="questDaily.lua"/>

 

 

Agora vamos registrar o evento no Login.lua

 

 

5 - Vá em data/creaturescripts/login.lua e cole esta linha la dentro:

registerCreatureEvent(cid, "questDaily")

 

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.

  • Estatísticas dos Fóruns

    96842
    Tópicos
    519594
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo