Postado Abril 27, 2015 10 anos -O sistema funciona perfeitamente o único problema é: Erro: Quando reinicio o server ou seja fecho e abro dinovo, o efeito "top!" some/desaparece do char. Obs: depois de reiniciar o server e upar 1 level no char top do server o efeito "top!" volta para o char. Solução:Eu quero que o efeito "top!" fique permanente no char mesmo fechando e abrindo o server, mas claro só o top level do server como está na script. creaturescript/scripts: <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> <event type="advance" name="CheckTop" event="script" value="topeffect.lua"/> creaturescripts/scripts/topeffect: local config = { tempo = 3, --tempo em segundos mensagem = { texto = "TOP!", --não use mais de 9 caracteres efeito = TEXTCOLOR_DARKRED --efeito para a função doSendAnimatedText }, efeito = 35, --efeito da função doSendMagicEffect globalstr = 5111 -- 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) .. ") alcançou o primeiro lugar no rank nível e foi adicionado a animação TOP! em seu personagem.", 20) topPlayer = getPlayerID(cid) 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) 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 Espero que alguém ajude, agradeço!
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.