Ir para conteúdo

Featured Replies

Postado

esse script

 

local ranks = { 

['fist'] = {0}, 

['club'] = {1}, 
['sword'] = {2}, 
['axe'] = {3}, 
['distance'] = {4}, 
['shield'] = {5}, 
['fish'] = {6}, 
['magic'] = {7}, 
['level'] = {8}, 


function onSay(cid, words, param) 

local msg = string.lower(param) 
if ranks[msg] ~= nil then 
str = getHighscoreString((ranks[msg][1])) 
else 
str = getHighscoreString((8)) 
end 
doShowTextDialog(cid,6500, str)
end 
return TRUE 

 

 

dando esse erro 

 

 

24/8/2018 21:20:29] [Error - TalkAction Interface] 
[24/8/2018 21:20:29] data/talkactions/scripts/ranking.lua:onSay
[24/8/2018 21:20:29] Description: 
[24/8/2018 21:20:29] data/talkactions/scripts/ranking.lua:21: attempt to call global 'getHighscoreString' (a nil value)
[24/8/2018 21:20:29] stack traceback:
[24/8/2018 21:20:29]     data/talkactions/scripts/ranking.lua:21: in function <data/talkactions/scripts/ranking.lua:17>

 

Postado
4 minutos atrás, Emooooo disse:

não funcionou !

local maxnames = 20 -- quantos vai mostrar
local minspace = 20 -- espaço minimo entre um nome e outro
	 
local skills = {
	['fist'] = 0,
	['club'] = 1,
	['sword'] = 2,
	['axe'] = 3,
	['distance'] = 4,
	['shielding'] = 5,
	['shield'] = 5,
	['fishing'] = 6,
}

function onSay(cid, words, param)
	param = string.lower(param)
	local msg = ""	
	local consulta
	
	if (param == "" or param == "level") and not skills[param] then
		msg = msg.."Rank - Nome do Jogador [Level]\n\n"
		consulta = db.getResult("SELECT `name`, `level` AS `value`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT "..(maxnames)..";")
	elseif param == "magic" or param == "ml" or param == "magic level" or param == "magiclevel" then
		msg = msg.."Rank - Nome do Jogador [Magic Level]\n\n"
		consulta = db.getResult("SELECT `name`, `maglevel` AS `value` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT "..(maxnames)..";")
	elseif skills[param] then
		msg = msg.."Rank - Nome do Jogador [".. param .."]\n\n"
		consulta = db.getResult("SELECT `name`, `value` FROM `player_skills` INNER JOIN `players` ON `player_skills`.`player_id` = `players`.`id` WHERE `skillid` = "..skills[param].." AND `group_id` <= 2 ORDER BY `value` DESC LIMIT "..(maxnames)..";")
	else
		doPlayerSendCancel(cid, "Não foi possivel retornar esse tipo de ranking")
		return false
	end	
	
	local position = 0
	repeat
		if consulta:getID() == -1 then break end
		position = position + 1
		msg = msg..position.." - "..consulta:getDataString("name").." ["..consulta:getDataInt("value") .."]".. string.rep(" ", minspace - string.len(consulta:getDataString("name"))).. " ".."\n"
	until (not consulta:next() or position > maxnames)
	doShowTextDialog(cid, 6500, msg)
return false
end

Existem vários sistemas de ranks aqui no forum, se esse também não funcionar ou não satisfaze-lo, vc pode procurar por algum outro....

 

Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord:

Postado
  • Autor
1 minuto atrás, Werner disse:

local maxnames = 20 -- quantos vai mostrar
local minspace = 20 -- espaço minimo entre um nome e outro
	 
local skills = {
	['fist'] = 0,
	['club'] = 1,
	['sword'] = 2,
	['axe'] = 3,
	['distance'] = 4,
	['shielding'] = 5,
	['shield'] = 5,
	['fishing'] = 6,
}

function onSay(cid, words, param)
	param = string.lower(param)
	local msg = ""	
	local consulta
	
	if (param == "" or param == "level") and not skills[param] then
		msg = msg.."Rank - Nome do Jogador [Level]\n\n"
		consulta = db.getResult("SELECT `name`, `level` AS `value`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT "..(maxnames)..";")
	elseif param == "magic" or param == "ml" or param == "magic level" or param == "magiclevel" then
		msg = msg.."Rank - Nome do Jogador [Magic Level]\n\n"
		consulta = db.getResult("SELECT `name`, `maglevel` AS `value` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT "..(maxnames)..";")
	elseif skills[param] then
		msg = msg.."Rank - Nome do Jogador [".. param .."]\n\n"
		consulta = db.getResult("SELECT `name`, `value` FROM `player_skills` INNER JOIN `players` ON `player_skills`.`player_id` = `players`.`id` WHERE `skillid` = "..skills[param].." AND `group_id` <= 2 ORDER BY `value` DESC LIMIT "..(maxnames)..";")
	else
		doPlayerSendCancel(cid, "Não foi possivel retornar esse tipo de ranking")
		return false
	end	
	
	local position = 0
	repeat
		if consulta:getID() == -1 then break end
		position = position + 1
		msg = msg..position.." - "..consulta:getDataString("name").." ["..consulta:getDataInt("value") .."]".. string.rep(" ", minspace - string.len(consulta:getDataString("name"))).. " ".."\n"
	until (not consulta:next() or position > maxnames)
	doShowTextDialog(cid, 6500, msg)
return false
end

 

qual comando pra ver e ? !rank axe

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo