Ir para conteúdo
  • Cadastre-se

Normal Zerar uma Storage de todos no global save


Posts Recomendados

Boa noite galera, estou precisando de uma função aparentemente simples. Ex: O jogador precisa matar 2000 dragons em um unico dia(global server save) então contaria das 07:15 da manha de hoje até as 07:00 da manha do dia seguinte (horario que o saver fecha para backup), não pode ser a cada 24 horas, pois se o jogador matou bixo as 11:00 da noite ao reabrir o server ainda nao daria 24h.
Resumindo, o player nao pode começar a task em um dia e deixar pra terminar no dia seguinte após o global save.
Eu acho que precisaria de um global event que deletasse essa storage todos os dias ao fechar o servidor, para o player começar do 0 assim que o server reabrir, poderia ser adicionado um comando de kicar todos os players  e setar a storage para 0 ou mesmo deletar pra todos os jogadores do server.

 

USO TFS 1.2  e pensei em um global event do tipo...

 

local shutdownAtServerSave = true
local cleanMapAtServerSave = false

local function serverSave()
    if shutdownAtServerSave then
        Game.setGameState(GAME_STATE_SHUTDOWN)
    else
        Game.setGameState(GAME_STATE_NORMAL)
    end

    if cleanMapAtServerSave then
        cleanMap()
    end

    saveServer()
end

local function thirdServerSaveWarning()
    Game.broadcastMessage('The Server now is closed!', MESSAGE_STATUS_WARNING)
    Game.setGameState(GAME_STATE_CLOSED)
        (aqui poderia entrar uma query seila como faz >>>>>> "Player:setStorageValue(986, 0)"  <<<<< para todos os players  <<<<<<<<<<<<<<<<<<<
    addEvent(serverSave, 60000)
end

local function secondServerSaveWarning()
    Game.broadcastMessage('The Server will be closed in one minute. See you tomorrow!', MESSAGE_STATUS_WARNING)
    addEvent(thirdServerSaveWarning, 60000)
end

local function firstServerSaveWarning()
    Game.broadcastMessage('The Server will be closed in 3 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
    addEvent(secondServerSaveWarning, 120000)
end

function onTime(interval)
    Game.broadcastMessage('The Server will be closed in 5 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
    Game.setGameState(GAME_STATE_STARTUP)
    addEvent(firstServerSaveWarning, 120000)
    return not shutdownAtServerSave
end

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

Só precisa colocar o código que zera o global storage para executar todo o dia às 07:00...

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
1 minuto atrás, Talesigorvr disse:

Só precisa colocar o código que zera o global storage para executar todo o dia às 07:00...


Exato! Desculpe a minha ignorância, mas eu não sei fazer isto. =(
e mais um detalhe, não é global storage é player storage.

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

globalevents/scripts

nome_arquivo.lua

local storage = 16516 -- storage que você quer zerar.
function onTime()
	setGlobalStorageValue (storage, -1)
return true
end

XML:

<globalevent name="dailyQuest" time="07:00" event="script" value="nome_arquivo.lua"/>

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
1 hora atrás, Talesigorvr disse:

local storage = 16516 -- storage que você quer zerar. function onTime() setGlobalStorageValue (storage, -1) return true end

Obrigado por ajudar, mas GLOBAL STORAGE  e PLAYER STORAGE não é a mesma coisa, se eu atribuir um global storage ao matar 1 montro da task, todos os player do server vão receber essao global storage mesmo sem ter matado, isso seria util em uma world quest, aonde alguns fazem a missao e o server inteiro recebe a recompensa.

Link para o post
Compartilhar em outros sites

local shutdownAtServerSave = true
	local cleanMapAtServerSave = false
	local function serverSave()
	    if shutdownAtServerSave then
	        Game.setGameState(GAME_STATE_SHUTDOWN)
	    else
	        Game.setGameState(GAME_STATE_NORMAL)
	    end
	    if cleanMapAtServerSave then
	        cleanMap()
	    end
	    saveServer()
	end
	local function thirdServerSaveWarning()
	    local storage = 986
	    Game.broadcastMessage('The Server now is closed!', MESSAGE_STATUS_WARNING)
	    Game.setGameState(GAME_STATE_CLOSED)
	    db.executeQuery("DELETE FROM `player_storage` WHERE `key` = "..storage)
	    addEvent(serverSave, 60000)
	end
	local function secondServerSaveWarning()
	    Game.broadcastMessage('The Server will be closed in one minute. See you tomorrow!', MESSAGE_STATUS_WARNING)
	    addEvent(thirdServerSaveWarning, 60000)
	end
	local function firstServerSaveWarning()
	    Game.broadcastMessage('The Server will be closed in 3 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
	    addEvent(secondServerSaveWarning, 120000)
	end
	function onTime(interval)
	    Game.broadcastMessage('The Server will be closed in 5 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
	    Game.setGameState(GAME_STATE_STARTUP)
	    addEvent(firstServerSaveWarning, 120000)
	    return not shutdownAtServerSave
	end

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Hmmm... realmente, não tinha pensado nisso.

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites

local shutdownAtServerSave = true
    local cleanMapAtServerSave = false
    local function serverSave()
        if shutdownAtServerSave then
            Game.setGameState(GAME_STATE_SHUTDOWN)
        else
            Game.setGameState(GAME_STATE_NORMAL)
        end
        if cleanMapAtServerSave then
            cleanMap()
        end
        saveServer()
    end
    local function thirdServerSaveWarning()
        local storage = 986
        Game.broadcastMessage('The Server now is closed!', MESSAGE_STATUS_WARNING)
        Game.setGameState(GAME_STATE_CLOSED)
        db.asyncQuery("DELETE FROM `player_storage` WHERE `key` = "..storage)
        addEvent(serverSave, 60000)
    end
    local function secondServerSaveWarning()
        Game.broadcastMessage('The Server will be closed in one minute. See you tomorrow!', MESSAGE_STATUS_WARNING)
        addEvent(thirdServerSaveWarning, 60000)
    end
    local function firstServerSaveWarning()
        Game.broadcastMessage('The Server will be closed in 3 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
        addEvent(secondServerSaveWarning, 120000)
    end
    function onTime(interval)
        Game.broadcastMessage('The Server will be closed in 5 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
        Game.setGameState(GAME_STATE_STARTUP)
        addEvent(firstServerSaveWarning, 120000)
        return not shutdownAtServerSave
    end

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
13 minutos atrás, Vodkart disse:

ocal shutdownAtServerSave = true
    local cleanMapAtServerSave = false
    local function serverSave()
        if shutdownAtServerSave then
            Game.setGameState(GAME_STATE_SHUTDOWN)
        else
            Game.setGameState(GAME_STATE_NORMAL)
        end
        if cleanMapAtServerSave then
            cleanMap()
        end
        saveServer()
    end
    local function thirdServerSaveWarning()
        local storage = 986
        Game.broadcastMessage('The Server now is closed!', MESSAGE_STATUS_WARNING)
        Game.setGameState(GAME_STATE_CLOSED)
        db.asyncQuery("DELETE FROM `player_storage` WHERE `key` = "..storage)
        addEvent(serverSave, 60000)
    end
    local function secondServerSaveWarning()
        Game.broadcastMessage('The Server will be closed in one minute. See you tomorrow!', MESSAGE_STATUS_WARNING)
        addEvent(thirdServerSaveWarning, 60000)
    end
    local function firstServerSaveWarning()
        Game.broadcastMessage('The Server will be closed in 3 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
        addEvent(secondServerSaveWarning, 120000)
    end
    function onTime(interval)
        Game.broadcastMessage('The Server will be closed in 5 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING)
        Game.setGameState(GAME_STATE_STARTUP)
        addEvent(firstServerSaveWarning, 120000)
        return not shutdownAtServerSave
    end

Funcionou perfeitamente, esse comando EU posso deixar pra executar todos os dias sem problemas né? não sei se é a melhor maneira de resetar a storage de uma quest desse tipo. OBRIGADO DEMAIS!!!

Editado por onix (veja o histórico de edições)
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.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo