Ir para conteúdo

Featured Replies

Postado

Entao glr, qeria saber como eu faço pra tirar a staff do rank, do id 4 ao 6 pq quando fala !rank aparece os adm lvl 1000 e tals .. n qero q apareça isso .. pra poder os players pegar rank qm souber me ajuda ai plis

  • Respostas 9
  • Visualizações 1.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • fiz umas edições, não mudei o script em si então ficou meio merda, o jeito de fazer isso de forma correta seria via uma query decente no banco e economizar muito espaço de processamento mas não to com

  • não eh isso nn kkkkk, olha, ta sem erro e tal, mas os ranks de : axe, distance, shield, sword e club o jogador aparece em 2º lugar se o GOD estiver em primeiro, mas ele não aparece entende?   Olha s

  • falha minha, coloca o  kk = kk+1 dentro do if if name_now ~= nil then

Postado

posta seu sistema de rank, fala sobre a versão do seu sv, manda fotos do problema que aí a gente vai entender qual o problema e pode tentar te ajudar..

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

posta seu sistema de rank, fala sobre a versão do seu sv, manda fotos do problema que aí a gente vai entender qual o problema e pode tentar te ajudar..

 

Também to precisando, criei um tópico ha muito tempo, e ninguém conseguiu ajudar... Por favor me ajuda!

 

Aqui vai meu rank.lua

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 = 20
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 == "reset" or param == "resets" then
name = name.."\n"
name = name.."Rank Reset - Nome do Jogador\n"
local v = db.getResult("SELECT `id`, `reset` FROM `players` ORDER BY reset DESC;")
local kk = 0
local v = db.getResult("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT 0,"..(max)..";")
repeat
if kk == max or v:getID() == -1 then
break
end
kk = kk+1
name_now, l = getPlayerNameByGUID2(v:getDataInt("id")), string.len(getPlayerNameByGUID2(v:getDataInt("id")))
space = ""
for i=1, letters_to_next-l do
space = space.." "
end
if name_now == nil then
name_now = 'sql error['..v:getDataInt("id")..']'
end
name = name..kk..". "..v:getDataInt("reset").." - "..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; "..(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
end
if name ~= "Highscore\n" then
doPlayerPopupFYI(cid, name)
end
 
return TRUE
end

Postado

fiz umas edições, não mudei o script em si então ficou meio merda, o jeito de fazer isso de forma correta seria via uma query decente no banco e economizar muito espaço de processamento mas não to com saco pra mexer nisso agr. Adicionei tb uma opção de selecionar o método que vc queira que seja exibido o rank:

function getPlayerNameByGUID2(n)
	local c = db.getResult("SELECT `name` FROM `players` WHERE `group_id` <= 2 and `id` = "..n..";")
	if c:getID() == -1 then
		return nil
	end
	return c:getDataString("name")
end



function onSay(cid, words, param)
	local max = 20
	local letters_to_next = 20
	local option = 1 -- coloque 1 ou 2 pra ver as opções de amostragem de rank
	 
	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, no_break = 0, 0
	param = string.lower(param)
	dofile('config.lua')


	if (param == "" or param == "level") 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 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 = getPlayerNameByGUID2(v:getDataInt("player_id"))
			if name_now ~= nil then
				space = ""
				l = string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))
				for i=1, letters_to_next-l do
					space = space.." "
				end
				name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n"
			end
		until v:next() == false
	end
	if name ~= "Highscore\n" then
		if option == 1 then
			doPlayerPopupFYI(cid, name)
		else
			doShowTextDialog(cid, 7386, name)
		end
	end 
return true
end


onde 1 é o padrão.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

fiz umas edições, não mudei o script em si então ficou meio merda, o jeito de fazer isso de forma correta seria via uma query decente no banco e economizar muito espaço de processamento mas não to com saco pra mexer nisso agr. Adicionei tb uma opção de selecionar o método que vc queira que seja exibido o rank:

function getPlayerNameByGUID2(n)
	local c = db.getResult("SELECT `name` FROM `players` WHERE `group_id` <= 2 and `id` = "..n..";")
	if c:getID() == -1 then
		return nil
	end
	return c:getDataString("name")
end



function onSay(cid, words, param)
	local max = 20
	local letters_to_next = 20
	local option = 1 -- coloque 1 ou 2 pra ver as opções de amostragem de rank
	 
	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, no_break = 0, 0
	param = string.lower(param)
	dofile('config.lua')


	if (param == "" or param == "level") 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 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 = getPlayerNameByGUID2(v:getDataInt("player_id"))
			if name_now ~= nil then
				space = ""
				l = string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))
				for i=1, letters_to_next-l do
					space = space.." "
				end
				name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n"
			end
		until v:next() == false
	end
	if name ~= "Highscore\n" then
		if option == 1 then
			doPlayerPopupFYI(cid, name)
		else
			doShowTextDialog(cid, 7386, name)
		end
	end 
return true
end

onde 1 é o padrão.

 

:facepalm:  :P  ;D  não eh isso nn kkkkk, olha, ta sem erro e tal, mas os ranks de : axe, distance, shield, sword e club o jogador aparece em 2º lugar se o GOD estiver em primeiro, mas ele não aparece entende?

 

Olha só um print:

HcliLH.png

 

Eu gostaria de saber se tem como RETIRAR os membros da STAFF do rank sabe?

 

VLW!

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo