Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Alguém poderia me informar como tirar o nick do ADM,GOD do comando !rank?

No caso os dois primeiros são ADM E GOD;

 

10153809_548409365271686_241468507999102

 

 

Código:

local ranks = {

['catch'] = {0},
['fish'] = {6},
['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)
return TRUE

end

Gregorio, HaxYu

Corporation Of Technology

Link para o post
Compartilhar em outros sites

Verdade, masss.. não tem nem um outro jeito? 

Gregorio, HaxYu

Corporation Of Technology

Link para o post
Compartilhar em outros sites

Tenta usar esse script aqui que peguei de um outro mapa:

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 = 50
local letters_to_next = 25
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)
--
local str = "Highscore for level\n\n"
local rank = {["mana"] = "manamax", ["vida"] = "healthmax"}
if rank[param] then
local str = str .. "Rank " .. param .. " - Nome do Jogador\n"
local query = db.getResult("SELECT name FROM players ORDER BY " .. rank[param] .. " DESC;")
for i = 1, max do
if not query:next() then
return doPlayerPopupFYI(cid, str)
end
local query2 = db.getResult("SELECT " .. rank[param] .. " FROM players WHERE name = '" .. query:getDataString("name") .. "';")
str = str .. i ..  ". " .. query2:getDataString(rank[param]) .. " - " .. query:getDataString("name") .. "\n"
end
return doPlayerPopupFYI(cid, str)
end
--
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 `player_id`, `value` FROM `player_storage` WHERE `key` = 2310 ORDER BY cast(value as INTEGER) 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
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
doPlayerPopupFYI(cid, name)
end
return TRUE
end

Link para o post
Compartilhar em outros sites

tem várias maneiras, pode fazer por uma string excluidora (se tiver god/gm no nome não aparece) ou colocar um if pra checar acess também

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
  • 3 years later...
Em 15/04/2014 em 04:19, xWhiteWolf disse:

tem várias maneiras, pode fazer por uma string excluidora (se tiver god/gm no nome não aparece) ou colocar um if pra checar acess também

Mas e aí, da umas explicações melhores com exemplos nesse rank abaixo...

 

local ranks = {

['fist'] = {0},

['club'] = {1},
['sword'] = {2},
['axe'] = {3},
['distance'] = {4},
['shield'] = {5},
['fish'] = {6},
['magic'] = {7},
['magic level'] = {7},
['magiclevel'] = {7},
['ml'] = {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)
return TRUE

end

Link para o post
Compartilhar em outros sites

@perfollgustavo olha, eu até consigo fazer uma gambiarra muito louca pra conseguir um rank usando essa função mas ia ser mais ou menos seguindo esse raciocinio aqui:
a gente sabe q na variavel str a gente tem algo nesse formato aqui

str = [[
Top 10 for Level:

1. GOD Wolf, 300
2. GM Icaro, 298
3. God Bless, 297
4. Night Wolf, 30
5. Night Wolf, 30
6. Night Wolf, 30
7. Night Wolf, 30
8. Night Wolf, 30
9. Night Wolf, 30
10. Night Wolf, 30
]]

eu ia usar uma função de pattern (provavelmente string.match) para caçar por instancias com god/gm no nome e aí deletar a linha inteira. Mas isso não é o suficiente, teriamos que pegar todas as linhas de baixo dessa linha e diminuir o numero da linha tendo este resultado aqui:

str = [[
Top 10 for Level:

1. Night Wolf, 30
2. Night Wolf, 30
3. Night Wolf, 30
4. Night Wolf, 30
5. Night Wolf, 30
6. Night Wolf, 30
7. Night Wolf, 30
]]

O problema é que essa função é muito engessada e nós estariamos gastando um processamento absurdo para ficar corrigindo, procurando e deletando strings, isso é muito ruim (e caro computacionalmente!)

Uma abordagem um pouco melhor seria parecida com o script do @Artur Henrique de usar queries.
 

Spoiler

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

 


Talvez tenha um erro ou outro nesse código pq eu fiz ele sem testar mas a lógica é essa

Editado por xWhiteWolf
esqueci do 's' no nome do campo player_skills (veja o histórico de edições)

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

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 otpokesalense
      🧿Base Tibia Solebran totalmente otimizada!  
       
       ✔️ OTClient (Version Old);
      ✔️ Update 2.2;
      ✔️ Site Póprio;
      ✔️ Map Global
      ✔️ Bugs, Minimo (2x) talvez;
      ✔️ PVP 💯 Funcional.
       
       
      Get Servidor: https://files.fm/f/7qumr8943e 💸 Buy! otimo projeto para vc utilizá-lo.
      Lembrando:: ao comprar o download será disponibilizado automaticamente.
       
      🧑‍💻System Operacional: Windows (VPS)
      👨‍💻Programador (27) 998931903 - - - O Valor já inclui o serviço de programação! 🤗
       

       
       

       
       
    • Por Arkanjo39
      CUIDA, CUIDA E VEM CONHECER NOSSO SERVER. KING BAIAK ACABOU DE SER LANÇADO!!! VEM SER O TOP 1 Site com Otclient: https://kingbaiak.com/ PARA NOVOS JOGARES ADM TA DANDO AQUELA FORCINHA! SERVIDOR 8.60 COM RESETS, MONTARIAS E GOLDEN OUTFIT! INFORMAÇÕES BÁSICAS DO SERVIDOR: [+] MAPA BAIAK [+] HIGH EXP [+] RESETS COM + DAMAGE [+] AUTOLOOT AUTOMÁTICO [+] CITY DONATE [+] ROSHAMUUL, ORAMOND E NETHER [+] MONTARIAS E GOLDEN OUTFIT [+] INVASÃO DE MONSTROS AUTOMÁTICAS [+] DAILY MONSTER QUE APARECE AO LOGAR [+] MONTARIAS COM COMANDO !MOUNT [+] SISTEMA DE ROLETA ATUAL [+] CAST WATCH [+] FAST ATTACK [+] CAST ARROWS [+] PUSH CRUZADO [+] REWARD CHEST [+] WARSQUARE [+] COMBO EXP DE POTIONS [+] MINERAÇÃO COM LOJA [+] SISTEMA DE BOSS [+] CRITICAL/DODGE [500/500] [+] LIFE E MANA EM PORCENTAGEM* [+] VARIAS QUESTS [+] EVENTO DTT (AUTOMÁTICO) [+] EVENTO BATLEFIELD (AUTOMÁTICO) [+] EVENTO SNOWBALLWAR (AUTOMÁTICO) [+] EVENTO DESERT WAR (AUTOMÁTICO) [+] EVENTO ZOMBIE (AUTOMÁTICO) [+] EVENTO CAMPO MINADO (AUTOMÁTICO) [+] EVENTO TEAM BATLE (AUTOMÁTICO) [+] EVENTO CAPTURE THE FLAG (AUTOMÁTICO)
    • Por BTitan
      Baiak Titan: Uma Experiência Incomparável no Universo Baiak
       
      O Baiak Titan combina a nostalgia dos antigos tempos de OTServ com a inovação e modernidade atuais. Oferecemos um mapa vasto, com mais de 100 áreas de caça para explorar, além de vocações equilibradas para um PvP justo e emocionante. Diversos eventos automáticos ocorrem diariamente, garantindo diversão constante para os jogadores. O servidor conta com vários sistemas, como por exemplo, montarias para quem utiliza o cliente exclusivo, monstros do Tibia 9.6+, sistema de mineração, entre outros!
       
      Por Que Escolher o Baiak Titan?
       
      PvP de Alta Qualidade: Embora seja um servidor Baiak, nosso mapa é cuidadosamente projetado para proporcionar ganho de experiência sem perder a seriedade do jogo, oferecendo desafios instigantes e um equilíbrio perfeito para combates épicos.
      Jogabilidade Customizada: O mapa Baiak foi exclusivamente adaptado para promover intensas batalhas de PvP, com recursos inovadores que mantêm a jogabilidade sempre fresca e emocionante.

      Detalhes do Servidor:
       
      IP: baiaktitan.com Website: https://baiaktitan.com Account Manager: 1/1
        Principais Características:
       
      Uptime 24/7, Sem Lag: Jogue a qualquer hora com a estabilidade de servidores dedicados e de alta performance. Velocidade de Ataque Equilibrada: Ajustada perfeitamente para garantir combates dinâmicos e justos. Sistema de Cast: Transmita suas jogadas ao vivo e assista aos seus amigos em ação. Cliente Exclusivo: Software personalizado com novos outfits, montarias e criaturas, enriquecendo ainda mais sua experiência no jogo. Runas, Poções e Flechas Não Infinitas: Valorizamos uma jogabilidade mais estratégica e desafiadora, onde os recursos precisam ser geridos com sabedoria.
      Eventos Automáticos:
       
      Zombie Team Battle Monster Hunter Castle (War of Emperium) Capture The Flag DOTA Corrida Arena War (O último sobrevivente ganha) Fire Storm
        Taxas do Servidor:
       
      EXP: 200x (com stages)
      Skill: 100x
      Magic: 30x
      Loot: 3x
       
      Junte-se à nossa comunidade e viva essa aventura única. O Baiak Titan espera por você!
    • Por campospkks
      Servidor muito bem otimizado, com amplo map para uma diversão imperdível. 
       
      *  Quest System
      * bugs corrigidos 90,0%
      * Client Específico (V8)
      * Mobile Adaptavel e Otimizado
      * database.sql já com (Modulo Pix) 
      * site 95,9% atualizado (Troque, pois a marca já possuí proprietário)
      * Franquia Tibia Custom baseado em armas.
       
      Site Original: soulgun.com.br
      discord.gg/cCWcaMwjuB
      Relançamento Servidor 20-09-2024
      Horario 17:00
      whatsap Grupo
      https://chat.whatsapp.com/JsAyLAmwJQyGEWgHTI4096
      Video Do Game
      https://youtu.be/N8asxdnzmGw


×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo