alisonjf 2 #1 Postado 18 Maio, 2008 (editado) Nome: Highscores no Jogo (como se fosse um rank) Versão: 8.1 Tipo de Script: Talkaction Servidor Testado: The Forgotten Server (TFS) Créditos(Autor): 99% 4220niller e 1% Meu ATENÇÃO! LEMBRANDO QUE O SCRIPT FUNCIONA SÓ EM SERVERS COM LuaSQL e doPlayerPopupFYI! Exemplo: !ranks "level Essa é uma talkaction que mostra uma janela com Nome, Level, Exp.... Um pouco útil até. Lembrando que só funciona em TFS. --------------------------------------------------------------------------- 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"/> -------------------------------------------------------------------------- Gostaram: Doem OT$ Reclamações/Dúvidas: Postem Editado 21 Maio, 2008 por Dark Compartilhar este post Link para o post
Dark 3 #2 Postado 21 Maio, 2008 Aprovado Movido (Scripting → Downloads → Ações) Compartilhar este post Link para o post
BlueAvenger 0 #3 Postado 21 Maio, 2008 Sensacional assim como todos outros trazidos por vc, Parabens. GRato Aprovado~ Compartilhar este post Link para o post
Elys Zarox 0 #4 Postado 21 Maio, 2008 oO rox mais num aonde posso achar TFS? Compartilhar este post Link para o post
BoY SoT 0 #5 Postado 21 Maio, 2008 @ Elys Zarox Se acha TFS ( the forgotten server) Aqui @topico Boa cara otimo topico Testado e Aprovado!!!!!!!!! Compartilhar este post Link para o post
J3@n 0 #6 Postado 22 Maio, 2008 Muito Bom Parabéns, pena que eu nao uso o TFS Compartilhar este post Link para o post
Raizzen 0 #7 Postado 24 Maio, 2008 Que pena que é somente para TFS, não ter como fazer para Striker? xP Compartilhar este post Link para o post
BhronX 0 #8 Postado 30 Julho, 2008 Velho muito massa, funfo redondo aki, agora .. vc podia fazer p/ os skills tbm ^^ (ml , axe , sword etc ) hehe Tks Man Compartilhar este post Link para o post
Mililo 0 #9 Postado 31 Julho, 2008 BhronX pelos q vi ali na action jah exite pra todos skills eh soh flar: !ranks "fist, ou dist, axe, sword, fish, maglevel talz... E Alison ainda n testei mas se funcionar é mesmo muito boa action! Parabéns! Compartilhar este post Link para o post
Lil'RoY~ 0 #10 Postado 31 Julho, 2008 =O parabens fiko rox mesmo. ja coloquei no meu ot, e a turma curtio vlw aee flws Compartilhar este post Link para o post
godzinho 0 #11 Postado 4 Dezembro, 2008 ou nao funciona para 8.31? Compartilhar este post Link para o post
guileo 0 #12 Postado 5 Dezembro, 2008 ei.. fiz tudo certo os esquema mas quando digita no ot não aparece nada.. pq sera? ;x Compartilhar este post Link para o post
FakLess 0 #13 Postado 7 Dezembro, 2008 Aff...So em TFS ;( É realmente Uma Pena mais tah Valendo... Flw Compartilhar este post Link para o post
oOPalisonOo 0 #14 Postado 13 Janeiro, 2009 ow ele ta dando erro =/ [13/01/2009 13:25:03] Lua Script Error: [TalkAction Interface] [13/01/2009 13:25:03] data/talkactions/scripts/highscores.lua:onSay [13/01/2009 13:25:03] data/talkactions/scripts/highscores.lua:158: LuaSQL: there are open cursors [13/01/2009 13:25:03] stack traceback: [13/01/2009 13:25:03] [C]: in function 'close' [13/01/2009 13:25:03] data/talkactions/scripts/highscores.lua:158: in function <data/talkactions/scripts/highscores.lua:1> e não so esta atualizando quando da o server save =O Compartilhar este post Link para o post
Amax 0 #15 Postado 18 Janeiro, 2009 Teria como ser feito um Rank para os 5 players que mais matarao e essa mensagem aparecer a cada 5minutos? Exemplo: 1 - Kaos Death: 17 Kills 2 - New Psiu: 14 Kills 3 - Kilmes: 12 Kills 4 - Gyrodos: 10 Kills 5 - Jujuxinhaa: 10 Kills ai essa mensagem tipo um Top 5 aparecesse no ot a cada 5minutos. Tem como? Tenho um enforced de shanera e a unica coisa que falta pra ele ficar completo mesmo é um rank. Me ajude se puder Compartilhar este post Link para o post
mylion 0 #16 Postado 20 Janeiro, 2009 MANUUU, MEU OT TEM ISSU, MAS SE EU USAR 3 VEZES !ranks "axe (ou fist ou outro ai) ele buga dai não da pra falar mais nenhum =/ dai aki tirei esses de axe sword e talz so ta o !ranks msm =/!! pq o !ranks n buga ^^ Compartilhar este post Link para o post
sokaporva 0 #17 Postado 21 Janeiro, 2009 Estou com o mesmo problema dos meus amigos ai: E apos usar 3 vezes ele da este erro e depois nao da mais SAVE no OT! Tentei diminuir o display name pra 5 player mas da msm coisa... TFS 0.2 - 8.4 [13/01/2009 13:25:03] Lua Script Error: [TalkAction Interface] [13/01/2009 13:25:03] data/talkactions/scripts/highscores.lua:onSay [13/01/2009 13:25:03] data/talkactions/scripts/highscores.lua:158: LuaSQL: there are open cursors [13/01/2009 13:25:03] stack traceback: [13/01/2009 13:25:03] [C]: in function 'close' [13/01/2009 13:25:03] data/talkactions/scripts/highscores.lua:158: in function <data/talkactions/scripts/highscores.lua:1> Compartilhar este post Link para o post
henrique_ms 0 #18 Postado 21 Janeiro, 2009 bem legal..=] ======--------============-------------========= Meu Servidor: [spoiler_name=Trabalhos]4 novas vocações 1 Magia nova [/spoiler_name] Me Doe OT$ <- =] Compartilhar este post Link para o post