Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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

Link para o post
Compartilhar em outros sites

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)

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

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)

Link para o post
Compartilhar em outros sites

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!

Link para o post
Compartilhar em outros sites

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

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)

Link para o post
Compartilhar em outros sites

Não era mais fácil só colocar os gods com level e skills mínimos? Não faz diferença pra eles e não tem que mexer em script nenhum.

Sim, porém existem pessoas que gostam de coisas "bonitas" entende kkkkkkkk, eu sou uma delas haudhaudha ^^

Link para o post
Compartilhar em outros sites
  • 1 year later...

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo