• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

[Request] Help adding code to !rank command

Cris2387

Member
Joined
Dec 30, 2013
Messages
177
Reaction score
9
Hello :) can someone please help me with this? i want the option to also see the people with the most health and mana thank you, this is my script:
PHP:
local displayoutput = {"Level","Magic Level","Fist Fighting","Club Fighting","Sword Fighting","Axe Fighting","Distance Fighting","Shielding","Fishing"}

local itemtype = {12289,2433,5896,7423,7416,7433,5907,7460,2580}

function onSay(cid, words, param)
  number = 1
  param = string.lower(param)
  skilllist = ""
  command = TRUE
  if param == "level" then   
  display = 1
  elseif param == "magic" then
  display = 2
  elseif param == "fist" then
  id = 0
  display = 3
  elseif param == "club" then
  id = 1
  display = 4
  elseif param == "sword" then
  id = 2
  display = 5
  elseif param == "axe" then
  id = 3
  display = 6
  elseif param == "distance" then
  id = 4
  display = 7
  elseif param == "shield" then
  id = 5
  display = 8
  elseif param == "fish" then
  display = 9
  id = 6
  else
  error = 'Highscore Commands:\n\n!rank level\n!rank magic\n!rank fist\n!rank club\n!rank sword\n!rank axe\n!rank distance\n!rank shield\n!rank fish'

  doShowTextDialog(cid, 5958, error)
  command = FALSE

  end

  if command ~= FALSE then
  if display == 1 then
  local player = db.getResult("SELECT `name`, `level` FROM `players` WHERE group_id < '2' ORDER BY `level` DESC LIMIT 50;")   
  if(player:getID() ~= -1) then
  while (true) do
  local name = player:getDataString("name")
  local level = player:getDataInt("level")

  skilllist = skilllist.. "\n#"..string.format("%5s",number.."  "..name.."  -  "..level)
  number = number + 1
  if not(player:next()) then
  break
  end
  end
  player:free()
  end
  elseif display == 2 then
  local player = db.getResult("SELECT `name`, `maglevel` FROM `players` WHERE group_id < '2' ORDER BY `maglevel` DESC LIMIT 50;")
  if(player:getID() ~= -1) then   
  while (true) do
  local name = player:getDataString("name")
  local maglevel = player:getDataInt("maglevel")

  skilllist = skilllist.. "\n#"..string.format("%5s",number.."  "..name.."  -  "..maglevel)
  if not(player:next()) then
  break
  end
  number = number + 1
  end
  end
  player:free()
  else
  local skills = db.getResult("SELECT `player_id`, `value`, `skillid` FROM `player_skills` WHERE `skillid` = "..id.." ORDER BY `value` DESC;")
  while (true) do
  local GUID = skills:getDataInt("player_id")
  local value = skills:getDataInt("value")
  local skillid = skills:getDataInt("skillid")
  local player = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..GUID.." and group_id < '2' ")
  if(player:getID() ~= -1) then
  local name = player:getDataString("name")
  skilllist = skilllist.. "\n#"..string.format("%5s",number.."  "..name.."  -  "..value)
  number = number + 1
  player:free()
  end
  if number > 50 then
  break
  end
  if not(skills:next()) then
  break
  end
  end
  skills:free()
  end
  dialog = ""..displayoutput[display].." Highscores: \n  "..skilllist..""
  doShowTextDialog(cid, itemtype[display], dialog)
  end   
end
dont worry about what item to put, just put a random one and ill fix it later thank you
 
Back
Top