Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá gostaria de saber como faço uma quest que pode ser feito 1x por dia?

 

Queria que fosse compativel com o horario do servidor, tipo das 00 as 00, e não com o player.

Tipo hora que ele clicar, vai ser 24hrs apartir do momento em que ele adquire a storage? NÃO.

Quero que a storage zere para todos exatamente as 00i00 e assim qualquer pessoa pode fazer denovo!

Link para o post
Compartilhar em outros sites

Pra zerar a Storage faz no globalevents e bota um setPlayerStorageValue.

 

Tag no xml

<globalevent name="XXX" interval="YYY" event="script" value="ZZZZ.lua"/>

YYY= tenta configurar um número do teu agrado

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

Tipo o meu sv eh em milisseconds, 24horas ai ficaria como?

E isso não é no script?? porque se ele pegar uma storage ela nao sai, ou so ai em interval ja da?

Link para o post
Compartilhar em outros sites

nesse caso, teria que trabalhar com globalSetStorageValue e os.time date sei lá, não manjo muito de lua... mas é mais ou menos essa a base a se utilizar... good luck.

Link para o post
Compartilhar em outros sites

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

e bota um setPlayerStorageValue

É mais simples usar um global storage na própria action da quest.

[...]

local gb = {1234, 24} -- {global storage key, duration in hours}
if getGlobalStorageValue(gb[1]) - os.time() < 1 then
. . .
setGlobalStorageValue(gb[1], os.time() + (gb[2] * 3600))

[...]

 

@falling

Se não souber como aplicar, poste o script da quest.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

@Suicide

function onUse(cid, item, frompos, item2, topos)

	if item.uid == 50040 then
		if getPlayerStorageValue(cid,50040) == -1 then
			doPlayerSendTextMessage(cid,25,"You have found a Stamina Reifl.")
			doPlayerAddItem(cid,XXX,1)
			setPlayerStorageValue(cid,50040,1)
		else
			doPlayerSendTextMessage(cid,25,"The is empty.")
		end

	end
	return TRUE
end
Link para o post
Compartilhar em outros sites
function onUse(cid)
    local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}}
    if getGlobalStorageValue(t.stor[2]) - os.time() < 1 then
        if getPlayerStorageValue(cid, t.stor[1]) < 1 then
            setPlayerStorageValue(cid, t.stor[1], 1)
            setGlobalStorageValue(t.stor[2], os.time() + (24 * 3600))
            doPlayerAddItem(cid, t.item[1], t.item[2])
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..t.item[1])
        else
            return doPlayerSendCancel(cid, 'You already have completed this quest.')
        end
    else
        return doPlayerSendCancel(cid, 'Someone already has done this quest today, try tomorrow.')
    end
    
    return true
end

No caso, começará a valer o tempo de 24 horas, a partir do momento em que o player der use no item que contém o actionID/uniqueID estipulado na tag desse script.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Se meu server eh em milesseconds sera este:

 

<globalevent name="QuextX" interval="" event="script" value="ZZZZ.lua"/>

 

Qual seria o interval? pra 1 dia

Link para o post
Compartilhar em outros sites

O que tu queria o Suicide já não postou?

 

function onUse(cid)
    local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}}
    if getGlobalStorageValue(t.stor[2]) - os.time() < 1 then
        if getPlayerStorageValue(cid, t.stor[1]) < 1 then
            setPlayerStorageValue(cid, t.stor[1], 1)
            setGlobalStorageValue(t.stor[2], os.time() + (24 * 3600 * 1000))
            doPlayerAddItem(cid, t.item[1], t.item[2])
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..t.item[1])
        else
            return doPlayerSendCancel(cid, 'You already have completed this quest.')
        end
    else
        return doPlayerSendCancel(cid, 'Someone already has done this quest today, try tomorrow.')
    end
    
    return true
end

 

Caso tu queria que seje toda vez a meia noite por globalevents é melhor colocar por time e não interval....

ficando:

<globalevent name="QuextX"  time="00:00" event="script" value="ZZZZ.lua"/>

 

no arquivo lua tu chama a função onTimer, se quiser que eu configuro, posta ai o script do globalevents

Link para o post
Compartilhar em outros sites

@TsplayerT cuidado com flood amigo, você está pedindo ajuda em um tópico que não é seu e sua mensagem não está relacionada ao assunto do tópico.

Preste mais atenção da proxima vez !

 

2.4 - Mensagens inúteis:
Não poste mensagens sem conteúdo, que não contribuem em nada ou que não estejam relacionadas ao assunto do tópico. Mensagens assim são chamadas de Floods. Postar coisas como "haha", "lol", "me add no msn aí", entre outras, é o que considera-se completamente inútil. Postar várias mensagens iguais, mesmo que em tópicos diferentes, também pode ser considerado Flood.

Link para o post
Compartilhar em outros sites
Se meu server eh em milesseconds sera este: Qual seria o interval? pra 1 dia

Desculpe. Eu esqueci que você queria que "zerasse" o tempo exatamente à meia noite.

Nesse caso:

function onUse(cid)
	local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}}
	if getGlobalStorageValue(t.stor[2]) < 1 then
		if getPlayerStorageValue(cid, t.stor[1]) < 1 then
			setPlayerStorageValue(cid, t.stor[1], 1)
			setGlobalStorageValue(t.stor[2], 1)
			doPlayerAddItem(cid, t.item[1], t.item[2])
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..t.item[1])
		else
			return doPlayerSendCancel(cid, 'You already have completed this quest.')
		end
	else
		return doPlayerSendCancel(cid, 'Someone already has done this quest today, try tomorrow.')
	end
	
	return true
end

resetquest.lua (data/globalevents/scripts):

function onTime()
    local globalstor = 50041
    if getGlobalStorageValue(globalstor) > 0 then
        setGlobalStorageValue(globalstor, -1)
    end
    
    return true
end

Tag - globalevents.xml (data/globalevents):

<globalevent name="ResetQuest" time="00:00" event="script" value="resetquest.lua"/>

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
No caso eu uso qual storage no bau da quest?

No baú, você vai usar o actionID ou uniqueID que você estipulou na tag da action.

 

50040 é a storage da quest, e 50041, a global storage pra determinar que a quest já foi feito no dia. Veja a tabela:

local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}}

Disponha ;]

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Então no bau eu ponho actionID e uniqueID 50040?

Não, amigo.

Eu quis dizer que você deve adicionar ao baú (via Remere's Map Editor), o actionID (caso tenha posto a tag com um actionID) ou o uniqueID (caso tenha posto a tag com um uniqueID).

Ex:

<action actionid="54321" script="quest.lua"/>

Nesse caso, você deverá adicionar o actionID 54321 ao baú da quest.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

@falling
Você não entendeu..olha, faça o seguinte:


quest.lua (data/actions/scripts):

function onUse(cid)
	local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}}
	if getGlobalStorageValue(t.stor[2]) < 1 then
		if getPlayerStorageValue(cid, t.stor[1]) < 1 then
			setPlayerStorageValue(cid, t.stor[1], 1)
			setGlobalStorageValue(t.stor[2], 1)
			doPlayerAddItem(cid, t.item[1], t.item[2])
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..t.item[1])
		else
			return doPlayerSendCancel(cid, 'You already have completed this quest.')
		end
	else
		return doPlayerSendCancel(cid, 'Someone already has done this quest today, try tomorrow.')
	end
	
	return true
end




Tag - actions.xml (data/actions):

<action actionid="ACTIONID" script="quest.lua"/>




resetquest.lua (data/globalevents/scripts):

function onTime()
    local globalstor = 50041
    if getGlobalStorageValue(globalstor) > 0 then
        setGlobalStorageValue(globalstor, -1)
    end
    
    return true
end




Tag - globalevents.xml (data/globalevents):

<globalevent name="ResetQuest" time="00:00" event="script" value="resetquest.lua"/>

The corrupt fear us.

The honest support us.

The heroic join us.

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo