Ir para conteúdo

Featured Replies

Postado

Eae galera do tibiaking , estou precisando de 2 scripts uma é a !rank frags, que aparecerá os maiores matadores do servidor , meu servidor já tem os comandos !rank, !rank magic, !rank sword, !rank distance , !rank club, !rank axe, !rank mana e !rank hp, mais eu queria a !rank frags, alguem pode me ajudar 
 
SCRIPT DOS RANK : 
 

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

E o outro comando que eu queria colocar é para que o player removesse o skull pagando uma certa quantidade em dinheiro , mais sem remover os frags , exemplo : Pego 5 Frags e fico red , ai removo o red mais continuo com os frags e quando pego 10 frags pego red novamente, será que alguem pode me ajudar ? :c

Editado por absoftfgn (veja o histórico de edições)

LONADOVISK ♥

znExesyD.png

 

Postado

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingTutoriais de Scripting"

Para: "OTServSuporte OTServSuporte de Scripts"

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Postado

Frags:

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 == "frags" or param == "kills" then   
                name = name.."\n"   
                name = name.."Rank Frags - Nome do Jogador\n"   
        local v = db.getResult("SELECT `p`.`name` AS `name`, COUNT(`p`.`name`) as `frags` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `pk`.`player_id` = `p`.`id` WHERE `k`.`unjustified` = 1 GROUP BY `name` ORDER BY `frags` DESC;") 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("frags").."  -  "..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

Voce pode usar o comando:

!rank frags ou !rank kills

 

Imagem:

 

Print_1.gif

 

O script original é do usuário yogo no tópico: [TalkAction] Sistema de Frags

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