Bodygrilo 0 #1 Postado 10 Setembro, 2008 (editado) Antes de tudo os créditos: ~~~~~~~~~~~~~~~~~~~~ 2% meu =S (por te postado) 20% Xtr3m3 (pelo post num outro forum =p) 78% Pra um cara que crio mais nao sei quem é juro! ~~~~~~~~~~~~~~~~~~~~ Bom Vamus lá! Crie um arquivo chamado highscores.lua na pasta data/talkactions/scripts e insira: function onSay(cid, words, param) dofile("./config.lua") local players = 20 -- The amount of players that is shown in the list local maxgroupid = 1 -- Players in groups above this is not shown in the list if sqlType == "mysql" then env = assert(luasql.mysql()) con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort)) else -- sqlite env = assert(luasql.sqlite3()) con = assert(env:connect(sqliteDatabase)) end local str = "" if param == "level" or param == "exp" or param == "lvl" or param == "" then cur = assert(con:execute("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= "..maxgroupid.." ORDER BY `experience` DESC LIMIT 0,"..players..";")) row = cur:fetch({}, "a") str = "# [Level] - Name - (Experience)\n" local i = 0 while row do str = str.."\n#"..(i+1).." ["..row.level.."] - "..row.name.." - ("..row.experience..")" row = cur:fetch (row, "a") i = i+1 end elseif param == "maglevel" or param == "magic" or param == "ml" then cur = assert(con:execute("SELECT `name`, `maglevel` FROM `players` WHERE `group_id` <= "..maxgroupid.." ORDER BY `maglevel` DESC LIMIT 0,"..players..";")) row = cur:fetch({}, "a") str = "# [Magic Level] - Name\n" local i = 0 while row do str = str.."\n#"..(i+1).." ["..row.maglevel.."] - "..row.name.."" row = cur:fetch (row, "a") i = i+1 end elseif param == "fist" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 0 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [Fist Fighting] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end elseif param == "club" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 1 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [Club Fighting] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end elseif param == "sword" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 2 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [sword Fighting] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end elseif param == "axe" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 3 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [Axe Fighting] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end elseif param == "dist" or param == "distance" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 4 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [Distance Fighting] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end elseif param == "shield" or param == "shielding" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 5 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [shielding] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end elseif param == "fish" or param == "fishing" then cur = assert(con:execute("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = 6 ORDER BY `value` DESC;")) row = cur:fetch({}, "a") str = "# [Fishing] - Name\n" local i = 0 while row do if i == players then break end query = assert(con:execute("SELECT `name` FROM `players` WHERE `group_id` <= "..maxgroupid.." AND `id` = "..row.player_id.."")) sql = query:fetch({}, "a") if sql ~= nil then str = str.."\n#"..(i+1).." ["..row.value.."] - "..sql.name.."" i = i+1 end row = cur:fetch (row, "a") end end if str ~= "" then doPlayerPopupFYI(cid, str) end con:close() env:close() end E na pasta data/talkactions adicione ao arquivo talkactions.xml: <talkaction words="!ranks" script="highscores.lua"/> ta aki a imagem de como ficaria... ------------------------- Dai tipo fica assim: !ranks "level !ranks "club !ranks "axe e por ae vai... ------------------------- Comentem!!! =D Editado 12 Setembro, 2008 por Bodygrilo erro Compartilhar este post Link para o post
Nord 2 #2 Postado 11 Setembro, 2008 Acho que já vi isso, mas era só de level, esse aí da pra ver os skills também Pode até ser útil pra WebSite, mas isto é talkactions, então... Movido --> actions -- Edit -------------------------- Apesar de ter créditos vc deve seguir um padrão de postagem, mas na próxima vez xD Compartilhar este post Link para o post
Baah 6 #3 Postado 12 Setembro, 2008 (editado) Olha, aqui de bug, os players nao salvavam mais, dizia que o database estava bloqueado, eu uso sqlite no meu server. Se nao fosse isso funcionaria perfeitamente Lua Script Error: [TalkAction Interface]data/talkactions/scripts/rank.lua:onSay data/talkactions/scripts/rank.lua:158: LuaSQL: there are open cursors stack traceback: [C]: in function 'close' data/talkactions/scripts/rank.lua:158: in function <data/talkactions/scripts/rank.lua:1> Aqui é TFS 8.22 Editado 12 Setembro, 2008 por Baah Compartilhar este post Link para o post
MotoBoy 0 #4 Postado 13 Setembro, 2008 isso não serve pra xml enh? T.T mais muito interessante ;D mais da um lag no server...... Compartilhar este post Link para o post
Chewee 0 #5 Postado 15 Setembro, 2008 (editado) SQLite 8.22 não funciona? Edit.: Funciona sim Editado 15 Setembro, 2008 por Chewee Compartilhar este post Link para o post
Bodygrilo 0 #6 Postado 15 Setembro, 2008 Tipow esse script é mais para otserv SQL em Mysql saco deve se isso tu deve ta usando sql em sqlite Compartilhar este post Link para o post
Undead Dragon~ 3 #8 Postado 26 Setembro, 2008 LEgal esse script, parabens a qeum fez, e obrigado pela sua contribuição ao trazer a OTnet. \\--Aprovado--// \\Undead Dragon~ Compartilhar este post Link para o post
Pista 0 #9 Postado 5 Outubro, 2008 o meu deu o mesmo erro do @baah, to tentando achar o erro aqui, se eu achar posto aqui! Compartilhar este post Link para o post
dyegodb 0 #10 Postado 15 Outubro, 2008 (editado) Eu add no meu server. Tomara que funcione! Valeu! Edit: Funcionou! 2 Edit: Funcionou mas os players param de salvar e depois buga o ot. Editado 16 Outubro, 2008 por dyegodb Compartilhar este post Link para o post
Sago 0 #11 Postado 18 Outubro, 2008 Bom script é mais ainda acho melhor botar um site para ranks e criar acc acho mais legalzinho e bonitinho mas parabéns deve ter dado trabalho o script =D Compartilhar este post Link para o post
gnomow157 0 #12 Postado 2 Novembro, 2008 Foda msm =/ [02/11/2008 00:25:27] Lua Script Error: [TalkAction Interface] [02/11/2008 00:25:27] data/talkactions/scripts/highscores.lua:onSay [02/11/2008 00:25:27] data/talkactions/scripts/highscores.lua:10: attempt to call field 'sqlite3' (a nil value) [02/11/2008 00:25:27] stack traceback: [02/11/2008 00:25:27] data/talkactions/scripts/highscores.lua:10: in function <data/talkactions/scripts/highscores.lua:1> [02/11/2008 00:25:30] Lua Script Error: [TalkAction Interface] [02/11/2008 00:25:30] data/talkactions/scripts/highscores.lua:onSay [02/11/2008 00:25:30] data/talkactions/scripts/highscores.lua:10: attempt to call field 'sqlite3' (a nil value) [02/11/2008 00:25:30] stack traceback: [02/11/2008 00:25:30] data/talkactions/scripts/highscores.lua:10: in function <data/talkactions/scripts/highscores.lua:1> [02/11/2008 00:26:23] Lua Script Error: [TalkAction Interface] [02/11/2008 00:26:23] data/talkactions/scripts/highscores.lua:onSay [02/11/2008 00:26:23] data/talkactions/scripts/highscores.lua:10: attempt to call field 'sqlite3' (a nil value) [02/11/2008 00:26:23] stack traceback: [02/11/2008 00:26:23] data/talkactions/scripts/highscores.lua:10: in function <data/talkactions/scripts/highscores.lua:1> Compartilhar este post Link para o post
Klenioyok 0 #13 Postado 3 Novembro, 2008 Ajudo bastante ;d vlw Compartilhar este post Link para o post
Mephisto 0 #14 Postado 3 Novembro, 2008 Pô muito bom isso..eu tava procurando um, obrigado ! Eu lembro que no Ph3.tz 8.0 tinha isso, ajudava muito ! Abraço ! Compartilhar este post Link para o post
HenneT 2 #15 Postado 12 Novembro, 2008 Parabéns pro criador, pelo que li não tem nenhum erro, não sei ele funcionando Hennet, Compartilhar este post Link para o post
lokkorox 0 #16 Postado 20 Novembro, 2008 The Forgotten Server deu certo vlw pelo tuto abrass Compartilhar este post Link para o post
mendez 0 #17 Postado 21 Novembro, 2008 (editado) Eu uso forgotten mysql e aki deu o seguinte erro: Lua script error: [TalkAction Interface]data/talkactions/scripts/highscores.lua:onSay data/talkactions/scripts/highscores.lua:7: attempt to index global 'luasql' < a nil value > stack traceback: data/talkactions/scripts/highscores.lua:7: in function <data/talkactions/scripts/highscores.lua:1> Editado 21 Novembro, 2008 por mendez Compartilhar este post Link para o post
Le588 0 #18 Postado 24 Novembro, 2008 Comando muito legal!Parábens! Compartilhar este post Link para o post
[GOD] Draxido 0 #19 Postado 24 Novembro, 2008 Tem como usar essa action SEM APARECER EXPERIENCIA? Por favor posta a versão que não aparece a exp dos players! ^^ Obrigado. Compartilhar este post Link para o post
BlueAvenger 0 #20 Postado 24 Novembro, 2008 Hmm esse script é bom, funcionou bem aqui meus parabens . Compartilhar este post Link para o post