Ir para conteúdo
  • 0

Rank Com Reset


DXtibiaXD

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

va em data/talkactions/script e crie uma pasta chamada rank.lua e bote 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 = 10
       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.getResultlocal v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 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("play er_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("play er_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

 

depois data/talkactions/talkactions.xml e bote isso:

 

<talkaction words="!rank" script="rank.lua"/>

Link para o comentário
Compartilhar em outros sites

  • 0

vo testa

 

digo se deu em 1 menuto calma aew

 

n deu

[Error - LuaScriptInterface::loadFile] data/talkactions/scripts/rest ranks.lua:72: unfinished string near '"SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY cast(value as INTEGER) DESC;)'

[21/06/2010 12:03:59] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/rest ranks.lua)

[21/06/2010 12:03:59] data/talkactions/scripts/rest ranks.lua:72: unfinished string near '"SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY cast(value as INTEGER) DESC;)'

[21/06/2010 12:03:59] Reloaded talk actions.

Editado por AmemJesus
Link para o comentário
Compartilhar em outros sites

  • 0

vc tenta oks

[21/06/2010 12:20:13] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/rank.lua:72: unfinished string near '"SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY cast(value as INTEGER) DESC;)'

[21/06/2010 12:20:13] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/rank.lua)

[21/06/2010 12:20:13] data/talkactions/scripts/rank.lua:72: unfinished string near '"SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 ORDER BY cast(value as INTEGER) DESC;)'

[21/06/2010 12:20:13] [Error - LuaScriptInterface::loadFile] cannot open data/talkactions/scripts/rest/rank.lua: No such file or directory

[21/06/2010 12:20:13] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/rest/rank.lua)

[21/06/2010 12:20:13] cannot open data/talkactions/scripts/rest/rank.lua: No such file or directory

Editado por AmemJesus
Link para o comentário
Compartilhar em outros sites

  • 0

@UP

 

qual a versao do seu servidor?

 

-------------------------------

 

agr não está achando o diretorio(arquivo)...

 

such file or directory

 

 

coloca tudo certinhu ai

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

Script sem erro:

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 = 10
       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.getResultlocal v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 1020 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("play er_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("play er_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 comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...