Ir para conteúdo
  • Cadastre-se

(Resolvido)TOP Reset


Ir para solução Resolvido por floW,

Posts Recomendados

Olá, tenho um script que da um efeito para o TOP Level do server, porém eu quero mudar para o TOP RESET.

Se alguém puder ajudar

 



local config = {
    tempo = 9, --tempo em segundos
    mensagem = {
        texto = "[TOP]", --não use mais de 9 caracteres
        efeito = TEXTCOLOR_LIGHTBLUE --efeito para a função doSendAnimatedText
    },
    efeito = 30, --efeito da função doSendMagicEffect
    globalstr = 5687 -- uma global storage qualquer q esteje vazia
}

--[[ Não mexa em nada abaixo ]]
local topPlayer = getGlobalStorageValue(config.globalstr) > 0 and getGlobalStorageValue(config.globalstr) or 0

function onLogin(cid)
    local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1")
    if (query:getID() ~= -1) then
        local pid = query:getDataString("id")
        local name = query:getDataString("name")
        if getPlayerName(cid) == name then
            if topPlayer ~= getPlayerID(cid) then topPlayer = getPlayerID(cid) end
            setGlobalStorageValue(config.globalstr, pid)
            TopEffect(cid)
        end
    end
    registerCreatureEvent(cid, "CheckTop")
    return true
end

function onAdvance(cid, skill, oldlevel, newlevel)
    if skill == 8 then
        local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1")
        if (query:getID() ~= -1) then
            local level = tonumber(query:getDataString("level"))
            if level < newlevel and topPlayer ~= getPlayerID(cid) then
                doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " tornou-se o novo Top Level. Parabens!", 22)
                topPlayer = getPlayerID(cid)
                doSaveServer()
                setGlobalStorageValue(config.globalstr, getPlayerID(cid))
                TopEffect(cid)
            end            
        end
    end
    return true
end

function TopEffect(cid)
    if not isPlayer(cid) then return true end
    if topPlayer == getPlayerID(cid) then
        doSendAnimatedText(getCreaturePosition(cid), config.mensagem.texto, config.mensagem.efeito)
        doSendMagicEffect(getCreaturePosition(cid), config.efeito)
        addEvent(TopEffect, config.tempo * 1000, cid)
    end
end

function getPlayerNameById(id)
    local query = db.getResult("SELECT `name` FROM `players` WHERE `id` = " .. db.escapeString(id))
    if query:getID() ~= -1 then
        return query:getDataString("name")
    end
    return 0
end

function getPlayerIdByName(name)
    local query = db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name))
    if query:getID() ~= -1 then
        return tonumber(query:getDataString("id"))
    end
    return 0
end

function getPlayerID(cid)
    return getPlayerIdByName(getPlayerName(cid))
end

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
  • Moderador
  • Solução

Aconselho criar um registro na database em players, chamado de reset.

E toda vez que resetar incrementar +1 nesse registro, aí voce consegue usar assim:

 

 local query = db.getResult("SELECT `id`, `name`, `reset` FROM `players` WHERE `group_id` < 2 ORDER BY `reset` DESC LIMIT 1")

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo