Cara, script mt bacana , mais um pouco confusa, to meio que tentando entender, cheguei a colocar no server mais alguns ranks n mostram os player, !rank level por exemplo n mostra ngm...
Teria como adicionar o !rank frags nesse meu script de rank??
-- Original script edited by MaxLinux or Sciter -- Ranking Frags --
function getPlayerNameByGUID2(n)local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";")if c:getID() == -1 thenreturn "SQL_ERROR["..n.."]"endreturn c:getDataString("name")endfunction onSay(cid, words, param)local max = 20local letters_to_next = 20local skills = {['fist'] = 0,['club'] = 1,['sword'] = 2,['axe'] = 3,['distance'] = 4,['shielding'] = 5,['fishing'] = 6,['dist'] = 4,['shield'] = 5,['fish'] = 6,}local name_nowlocal name = "Highscores\n"local rkn = 0local no_break = 0param = string.lower(param)dofile('config.lua')if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil thenname = name.."\n"name = name.."Ranking Level - Nome do Jogador\n"local v = db.getResult("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT 0,"..(max)..";")repeatno_break = no_break +1if v:getID() == -1 thenbreakendrkn = rkn+1name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))space = ""for i=1, letters_to_next-l dospace = space.." "endname = name..rkn..". ["..v:getDataInt("level") .."] - "..name_now..space.." ".."\n"if no_break >= 20 thenbreakenduntil v:next() == falseelseif param == "magic" or param == "ml" thenname = name.."\n"name = name.."Ranking Magic - Nome do Jogador\n"local v = db.getResult("SELECT `name`, `level`, `maglevel` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT 0,"..(max)..";")repeatif v:getID() == -1 thenbreakendrkn = rkn+1name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))space = ""for i=1, letters_to_next-l dospace = space.." "endname = name..rkn..". ["..v:getDataInt("maglevel").."] - "..name_now..space.." ".." ".."".."\n"until v:next() == falseelseif param == "kills" or param == "killer" or param == "kill" or param == "frag" or param == "frags" thenname = name.."\n"name = name.."Ranking Frags\n"local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 90190 ORDER BY cast(value as INTEGER) DESC;")local kk = 0repeatif kk == max or v:getID() == -1 thenbreakendkk = kk+1name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))space = ""for i=1, letters_to_next-l dospace = space.." "endif name_now == nil thenname_now = 'sql error['..v:getDataInt("player_id")..']'endname = name..kk..". ["..v:getDataInt("value").."] - "..name_now..space.." \n"until v:next() == falseelseif skills[param] ~= nil thenname = name.."\n"name = name.."Ranking "..param.." fighting - Nome do Jogador\n"local v = db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..skills[param].." ORDER BY `value` DESC;")local kk = 0repeatif kk == max or v:getID() == -1 thenbreakendkk = kk+1name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))space = ""for i=1, letters_to_next-l dospace = space.." "endif name_now == nil thenname_now = 'sql error['..v:getDataInt("player_id")..']'endname = name..kk..". ["..v:getDataInt("value").."] - "..name_now..space.." \n"until v:next() == falseendif name ~= "Highscore\n" thendoPlayerPopupFYI(cid, name)endreturn TRUEend




info
Grupo: Campones
Registrado: 09/02/14
Posts: 20
Reputação: +12
Creditos: Critico (vodkart)
Comando !rank atualizado com novo rank que é o !rank frags, onde mostra os maiores matadores do ot.
Ranks:
Skills
Level
Magic
Health
Mana
Frags
Exemplo:
!rank frags
!rank magic
Crie ranks.lua em data/talkactions/scripts. e cole o script abaixo
local config = { MaxPlayer = 20, fight_skills = { ['fist'] = 0, ['club'] = 1, ['sword'] = 2, ['axe'] = 3, ['distance'] = 4, ['shielding'] = 5, ['fishing'] = 6, ['dist'] = 4, ['shield'] = 5, ['fish'] = 6, }, other_skills = { [''] = "level", ['level'] = "level", ['magic'] = "maglevel", ['health'] = "healthmax", ['mana'] = "manamax" }, vocations = { ['sorcerer'] = {1,5}, ['druid'] = {2,6}, ['paladin'] = {3,7}, ['knight'] = {4,8} }, storages = { ['frags'] = 824544 } } function onSay(cid, words, param) local store,exausted = 156201,30 local param,str = string.lower(param),"" if not config.fight_skills[param] and not config.other_skills[param] and not config.vocations[param] and not config.storages[param] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this ranking does not exists.") return true elseif getPlayerStorageValue(cid, store) >= os.time() then doPlayerSendCancel(cid, "wait " .. getPlayerStorageValue(cid, store) - os.time() .. " seconds to use this command again.") return true end str = "--[ RANK "..(param == "" and "LEVEL" or string.upper(param)).." ]--\n\n" query = config.fight_skills[param] and db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..config.fight_skills[param].." ORDER BY `value` DESC;") or config.other_skills[param] and db.getResult("SELECT `name`, `"..config.other_skills[param].."` FROM `players` WHERE `id` > 6 AND `group_id` < 2 ORDER BY `"..config.other_skills[param].."` DESC, `name` ASC;") or config.storages[param] and db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..config.storages[param].." ORDER BY cast(value as INTEGER) DESC;") or db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` <= 2 AND `vocation` = "..config.vocations[param][1].." or `vocation` = "..config.vocations[param][2].." ORDER BY `level` DESC;") if (query:getID() ~= -1) then k = 1 while true do str = str .. "\n " .. k .. ". "..(config.fight_skills[param] and getPlayerNameByGUID(query:getDataString("player_id")) or config.storages[param] and getPlayerNameByGUID(query:getDataString("player_id")) or query:getDataString("name")).." - [" .. query:getDataInt((config.fight_skills[param] and "value" or config.storages[param] and "value" or config.vocations[param] and "level" or config.other_skills[param])) .. "]" k = k + 1 if not(query:next()) or k > config.MaxPlayer then break end end query:free() end doShowTextDialog(cid,6500, str) setPlayerStorageValue(cid, store, os.time()+exausted) return true endEm data/lib/050-function.lua adicione:
Crie rankfrags.lua em data/creaturescripts/scripts e cole o script abaixo
E em data/creaturescripts/login.lua adicione:
Se ajudei REP + E todos ficamos Felizes!