Subwat 405 Postado Abril 7, 2011 Share Postado Abril 7, 2011 BOM EU TENHO ESSE SISTEMA DE RANKS AQUI EM BAIXO,eu queria um NOVO Rank AO FALAR !rank votos,aparecer quem tem mais storagevalue 6004, VLW. acho que é simples só que eu nao sei fazer. VOU DAR REP+ FLW function getPlayerNameByGUID2(n) local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";") if c:getID() == -1 then return "SQL_ERROR["..n.."]" end return c:getDataString("name") end function onSay(cid, words, param) local max = 100 local letters_to_next = 20 local skills = { ['fist'] = 0, ['club'] = 1, ['sword'] = 2, ['axe'] = 3, ['distance'] = 4, ['shielding'] = 5, ['fishing'] = 6, ['dist'] = 4, ['shield'] = 5, ['fish'] = 6, } local name_now local name = "Highscore for level\n" local rkn = 0 local no_break = 0 param = string.lower(param) dofile('config.lua') if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil then name = name.."\n" name = name.."Rank 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)..";") repeat no_break = no_break +1 if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("level") .." - "..name_now..space.." ".."\n" if no_break >= 20 then break end until v:next() == false elseif param == "magic" or param == "ml" then name = name.."\n" name = name.."Rank 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)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("maglevel").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "mana" or param == "MANA" then name = name.."\n" name = name.."Rank Mana - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `manamax` FROM `players` WHERE `group_id` <= 2 ORDER BY `manamax` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("manamax").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "health" or param == "hp" then name = name.."\n" name = name.."Rank Health - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `healthmax` FROM `players` WHERE `group_id` <= 2 ORDER BY `healthmax` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("healthmax").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "resets" then name = name.."Rank Resets - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY `value` DESC LIMIT 0,"..(max)..";") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif skills[param] ~= nil then name = name.."\n" name = name.."Rank "..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 = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n" until v:next() == false end if name ~= "Highscore\n" then doShowTextDialog(cid, 6500, name) end return true end Link para o comentário Compartilhar em outros sites More sharing options...
tinfer3 6 Postado Abril 7, 2011 Share Postado Abril 7, 2011 tente assim meu caro: function getPlayerNameByGUID2(n) local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";") if c:getID() == -1 then return "SQL_ERROR["..n.."]" end return c:getDataString("name") end function onSay(cid, words, param) local max = 100 local letters_to_next = 20 local skills = { ['fist'] = 0, ['club'] = 1, ['sword'] = 2, ['axe'] = 3, ['distance'] = 4, ['shielding'] = 5, ['fishing'] = 6, ['dist'] = 4, ['shield'] = 5, ['fish'] = 6, } local name_now local name = "Highscore for level\n" local rkn = 0 local no_break = 0 param = string.lower(param) dofile('config.lua') if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil then name = name.."\n" name = name.."Rank 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)..";") repeat no_break = no_break +1 if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("level") .." - "..name_now..space.." ".."\n" if no_break >= 20 then break end until v:next() == false elseif param == "magic" or param == "ml" then name = name.."\n" name = name.."Rank 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)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("maglevel").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "mana" or param == "MANA" then name = name.."\n" name = name.."Rank Mana - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `manamax` FROM `players` WHERE `group_id` <= 2 ORDER BY `manamax` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("manamax").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "health" or param == "hp" then name = name.."\n" name = name.."Rank Health - Nome do Jogador\n" local v = db.getResult("SELECT `name`, `level`, `healthmax` FROM `players` WHERE `group_id` <= 2 ORDER BY `healthmax` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". "..v:getDataInt("healthmax").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "resets" then name = name.."Rank Resets - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY `value` DESC LIMIT 0,"..(max)..";") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif param == "votos" then name = name.."Rank votos - Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 6004 ORDER BY `value` DESC LIMIT 0,"..(max)..";") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." ".." ".."".."\n" until v:next() == false elseif skills[param] ~= nil then name = name.."\n" name = name.."Rank "..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 = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n" until v:next() == false end if name ~= "Highscore\n" then doShowTextDialog(cid, 6500, name) end return true end Link para o comentário Compartilhar em outros sites More sharing options...
Tecnomancer 5 Postado Abril 14, 2011 Share Postado Abril 14, 2011 1° Se tu for o criador do mapa subwat sou seu fãn muleke! AHEUHAUSE chega de papo go pro script edita ele assim vá ate data/talkactions/scripts e cri um arquivo lua com o nome de ranks ponha isso lá: ---By Léo--- local ranks = { ['fist'] = {0}, ['club'] = {1}, ['sword'] = {2}, ['axe'] = {3}, ['distance'] = {4}, ['shield'] = {5}, ['fish'] = {6}, ['magic'] = {7}, ['level'] = {8}, ['votos'] = {9}, } function onSay(cid, words, param) local msg = string.lower(param) if ranks[msg] ~= nil then str = getHighscoreString((ranks[msg][1])) else str = getHighscoreString((9)) end doShowTextDialog(cid,6500, str) return TRUE end agora vá abra talkactions.xml e adicione essa tag <talkaction words="!rank" script="ranks.lua"/> Em vermelho é o novo !rank que foi added! Ajudei? REP + PLXX Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados