WE
suporte scripts

ajudem a fundir esses 2 script tornando os apenas 1

Por wevertonvrb, 09 de fev. de 2017 em Resolvidos

fundir scrip
3
849
wevertonvrbW
09 de fevereiro de 2017 às 23:46

então gente eu estou com um script de auto shutdown que esta funcionando corretamente
porem algumas vezes o shutdown acontece com players onlines e esses players onlines acabam que clonando itens pois o shutdown não salva os players, mas sim suas casas e DP,

ou seja se o player deixar seus itens na casa 1 minuto antes do shutdown quando voltar eles volta com os itens e na casa tem os mesmos itens ou seja clonagem de itens

no meu server os players são salvos de 10 em 10 minutos, quando desloga, ou quando usa o comando !save
para que não aja clonagem eu uso o comando /closeserver este comando desloga todos os players onlines permitindo apenas os adm e god e caso eles tentem entrar n consegue dessa forma eles são salvos e não tem clonagem

vou postar o script do auto shutdown e o do close server e gostaria que alguem fundice os 2 de uma forma que o closeserver seja executado 1 minuto antes do shutdown
lembrando tambem que o shutdown é um globalevent e o closeserve uma talkactions

shutdown

Spoiler
function prepareShutdown(minutes)        if(minutes <= 0) then                doSetGameState(GAMESTATE_SHUTDOWN)                return false        end        if(minutes == 1) then                doBroadcastMessage("Server is going down in " .. minutes .. " minute for global save, please log out now!")        elseif(minutes <= 3) then                doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save, please log out.")        else                doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save.")        end        shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1)        return trueendfunction onTime()    return prepareShutdown(5) -- Quantos minutos pra executar o ServeSave. end

 

 

closeserver

Spoiler

function onSay(cid, words, param, channel)
    local state = GAMESTATE_CLOSED
    if(words:sub(2, 2) == "o") then
        state = GAMESTATE_NORMAL
    end

    local str = "Failed to " .. (state == GAMESTATE_CLOSED and "close" or "open") .. " server."
    if(doSetGameState(state)) then
        str = "Server has been " .. (state == GAMESTATE_CLOSED and "closed" or "opened") .. " successfully."
    end

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
    return true
end

 

Editado Fevereiro 13 por Frenvius

wevertonvrbW
14 de fevereiro de 2017 às 21:06

@Poccnn da uma ajudinha aqui?

DrakopoulosD
14 de fevereiro de 2017 às 21:48

Vc colocando um

doSetGameState(GAMESTATE_CLOSED)

no if de 1 minuto ele irá dar close quando der o broadcast.