Ir para conteúdo

Featured Replies

Postado

Pessoal Porfavor eu criei 1 serv e fiz 2 city uma o town 1 aonde nasce e o 2 town 4 Queria saber tem como vcs me ajuda para fazer 1 rank so para quem é do town 4 Porfavor URGENTE..

Postado
53 minutos atrás, bibioliveira disse:

Pessoal Porfavor eu criei 1 serv e fiz 2 city uma o town 1 aonde nasce e o 2 town 4 Queria saber tem como vcs me ajuda para fazer 1 rank so para quem é do town 4 Porfavor URGENTE..

Mande seu !rank ou fale qual servidor você usa.

É dificil adivinhar qual versão e distro para fazer o script.

asdukeeh.jpg

Postado
  • Autor

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 = 100   
        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 == "mana" or param == "MANA" then   
                name = name.."\n"   
                name = name.."Rank Mana - Nome do Jogador\n"   
        local v = db.getResult("SELECT `name`, `level`, `manamax` FROM `players` WHERE `group_id` <= 2 ORDER BY `manamax` 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("manamax").."  -  "..name_now..space.." ".." ".."".."\n"    
        until v:next() == false   
  
        elseif param == "health" or param == "hp" then   
                name = name.."\n"   
                name = name.."Rank Health - Nome do Jogador\n"   
        local v = db.getResult("SELECT `name`, `level`, `healthmax` FROM `players` WHERE `group_id` <= 2 ORDER BY `healthmax` 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("healthmax").."  -  "..name_now..space.." ".." ".."".."\n"    
        until v:next() == false  
           
  
  
    elseif param == "resets" then   
        name = name.."Rank Resets - Nome do Jogador\n"   
    local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY `value` DESC LIMIT 0,"..(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   
   
        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    
                 doShowTextDialog(cid, 6500, name)   
        end   
   
        return true   
end

1 hora atrás, DukeeH disse:

Mande seu !rank ou fale qual servidor você usa.

É dificil adivinhar qual versão e distro para fazer o script.

 

1 hora atrás, DukeeH disse:

Mande seu !rank ou fale qual servidor você usa.

É dificil adivinhar qual versão e distro para fazer o script.

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 = 100   
        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 == "mana" or param == "MANA" then   
                name = name.."\n"   
                name = name.."Rank Mana - Nome do Jogador\n"   
        local v = db.getResult("SELECT `name`, `level`, `manamax` FROM `players` WHERE `group_id` <= 2 ORDER BY `manamax` 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("manamax").."  -  "..name_now..space.." ".." ".."".."\n"    
        until v:next() == false   
  
        elseif param == "health" or param == "hp" then   
                name = name.."\n"   
                name = name.."Rank Health - Nome do Jogador\n"   
        local v = db.getResult("SELECT `name`, `level`, `healthmax` FROM `players` WHERE `group_id` <= 2 ORDER BY `healthmax` 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("healthmax").."  -  "..name_now..space.." ".." ".."".."\n"    
        until v:next() == false  
           
  
  
    elseif param == "resets" then   
        name = name.."Rank Resets - Nome do Jogador\n"   
    local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY `value` DESC LIMIT 0,"..(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   
   
        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    
                 doShowTextDialog(cid, 6500, name)   
        end   
   
        return true   
end

Postado

@bibioliveira

Podia ficar um pouco melhor, tipo "!rank 4, sword" mas estou meio sem tempo.

Fiz um comando novo, ai você coloca algo como preferir (!rank2, !ranktown4...)

Cria um novo comando no talkactions.xml e cria o arquivo em scripts e coloca isso:

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 = 100   
        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 AND `town_id` = 4 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 AND `town_id` = 4 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 == "mana" or param == "MANA" then   
                name = name.."\n"   
                name = name.."Rank Mana - Nome do Jogador\n"   
        local v = db.getResult("SELECT `name`, `level`, `manamax` FROM `players` WHERE `group_id` <= 2 AND `town_id` = 4 ORDER BY `manamax` 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("manamax").."  -  "..name_now..space.." ".." ".."".."\n"    
        until v:next() == false   
  
        elseif param == "health" or param == "hp" then   
                name = name.."\n"   
                name = name.."Rank Health - Nome do Jogador\n"   
        local v = db.getResult("SELECT `name`, `level`, `healthmax` FROM `players` WHERE `group_id` <= 2 AND `town_id` = 4 ORDER BY `healthmax` 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("healthmax").."  -  "..name_now..space.." ".." ".."".."\n"    
        until v:next() == false  
           
  
  
    elseif param == "resets" then   
        name = name.."Rank Resets - Nome do Jogador\n"   
    local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 AND `player_id` IN (SELECT `id` FROM `players` WHERE `town_id` = 4) ORDER BY `value` DESC LIMIT 0,"..(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   
   
        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].." AND `player_id` IN (SELECT `id` FROM `players` WHERE `town_id` = 4)  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    
                 doShowTextDialog(cid, 6500, name)   
        end   
   
        return true   
end

 

asdukeeh.jpg

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