ricktcs 3 Postado Dezembro 24, 2008 Share Postado Dezembro 24, 2008 Comando de highscores, vc ve os highscores do server somente falando !ranks, eu nao sei se já tem aqui no forum, eu nao achei entao estou postando ... Nao sei quem foi que fez, entao nao vou colocar creditos ... Lá vai os scripts... 1º Passo: entre em data/talkactions/scripts, copie e cole qualquer arquivo e renomeie para highscores.lua, apage tudo e coloque: 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 Pronto apos adcionar isso salve e feche o arquivo. 2º Passo: Vá em data/talkactions em talkactions.xml, adcione isso: <talkaction words="!ranks" script="highscores.lua"/> Pronto esta ai, para executar o comando entre em qualquer personagem e fale !ranks. CREDITOS:10% pra mim (por postar) 90% infelizmente nao sei quem criou este comando. Espero ter ajudado. ~Ricktcs~ Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/ Compartilhar em outros sites More sharing options...
noobless 2 Postado Dezembro 24, 2008 Share Postado Dezembro 24, 2008 (editado) Vlw Vou Colocar No Meu OT T+ Editado Dezembro 24, 2008 por NoobLess Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-662806 Compartilhar em outros sites More sharing options...
paladinwell 0 Postado Dezembro 24, 2008 Share Postado Dezembro 24, 2008 Ta bugado fiih... nao adianta mais buga o save do server tem de arruma issu ae.. Hlangdom Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-663016 Compartilhar em outros sites More sharing options...
ricktcs 3 Postado Dezembro 24, 2008 Autor Share Postado Dezembro 24, 2008 se pode especifica mais o tal "bug" que vc falou ? Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-663113 Compartilhar em outros sites More sharing options...
Exaler 0 Postado Janeiro 7, 2009 Share Postado Janeiro 7, 2009 ele é bugado pelo seguinte motivo: quando você digita !ranks ele até funciona soque chega em um momento que ele perde seu contato com o DataBase e os players do seu Open Tibia Server quando relogam ou morrem acabam voltando no templo na ultima veiz que logarão ou que morreram, não adianta dar /save nem nada porque não ira salvar isso pode causar um "conflito" entre o GM e os players por isso em meu Open Tibia Server não coloquei ranks até prefiro um site. GM Exaler :666: Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-670263 Compartilhar em outros sites More sharing options...
ricktcs 3 Postado Janeiro 7, 2009 Autor Share Postado Janeiro 7, 2009 (editado) hmm valeu por especificar o bug ...vou tentar solucionar ... se alguem souber porfavor fale ! Editado Janeiro 7, 2009 por ricktcs Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-670414 Compartilhar em outros sites More sharing options...
MarcolinoGOD 1 Postado Janeiro 7, 2009 Share Postado Janeiro 7, 2009 Este não seria o script que postei para um cara la nos pedidos? Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-670514 Compartilhar em outros sites More sharing options...
ricktcs 3 Postado Janeiro 7, 2009 Autor Share Postado Janeiro 7, 2009 sim deve ser igual Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-670523 Compartilhar em outros sites More sharing options...
Kakareco 2 Postado Fevereiro 22, 2009 Share Postado Fevereiro 22, 2009 Eu acho que para arrumar esse bug tem que usar o xampp! Vi isso em um post de pedidos. Tenta ae e me fala se deu certo! T + :smile_positivo: Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-699806 Compartilhar em outros sites More sharing options...
Eventide 23 Postado Fevereiro 22, 2009 Share Postado Fevereiro 22, 2009 (editado) Para arrumar o bug, adicione cur:close() na linha anterior de con:close() @Exalus Isso só acontece pois o con:close() não estava funcionando pois o cursor cur não estava fechado.. agora com isso ai, tudo fecha, ai fica de boa.. xD hail save funcionando! Editado Fevereiro 22, 2009 por Eventide Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-699863 Compartilhar em outros sites More sharing options...
Kakareco 2 Postado Março 1, 2009 Share Postado Março 1, 2009 Valeu Eventide, funcionou direitinho. Tava mesmo atras dessa soluçao. Sou seu fan. Valeu mesmo xD. T+ :smile_positivo: Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-703051 Compartilhar em outros sites More sharing options...
Quilante 2 Postado Abril 6, 2009 Share Postado Abril 6, 2009 Para arrumar o bug, adicione cur:close() na linha anterior de con:close() @Exalus Isso só acontece pois o con:close() não estava funcionando pois o cursor cur não estava fechado.. agora com isso ai, tudo fecha, ai fica de boa.. xD hail save funcionando! nada a ve.. tirei os comandos.. deu erro.. botei o cur:close() deu erro tb.. tirei tudo deu erro fiz todos os testes tudo resultou em erro.. é soh dar SAVE no server que o erro começa e perde conexão com o sqlite Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-719941 Compartilhar em outros sites More sharing options...
Critical 70 Postado Abril 6, 2009 Share Postado Abril 6, 2009 É So Para Saber Mesmo , Com O Que O Evendite Disse , Agora Tá Funfano Normal ? [Plx Falem Rápido] Não Confio Em Camponeses " Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-720021 Compartilhar em outros sites More sharing options...
Thony402 2 Postado Junho 11, 2009 Share Postado Junho 11, 2009 O que o carinha explicou ali esta bem explicado mais tem dois porem que pode muito bem salvar seu ot serv...... se vc apagar o item do script con:close() env:close() e apagalo o erro sumira somente dos lvl e ml porem os outros n arrumaram porque o unico geito é vc aprender a mexer no xampp e talz mais é muito facil só vc excluir os !ranks"fist !ranks"club etc.. e deixar somente o de lvl e ml e pronto isso ajuda muito e n da erro nenhum vou mandar o meu 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 env = assert(luasql.sqlite3()) con = assert(env:connect(sqliteDatabase)) 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 env:close() end e é isso ai se prescisarem de uma ajudinha só dar um toque Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-747751 Compartilhar em outros sites More sharing options...
satan666 12 Postado Junho 11, 2009 Share Postado Junho 11, 2009 gente isso aqui faz com que feche a database. con:close()env:close() e o que e que o save faz? ele precisa atualizar o database entao ele tando fechado nao atualizara pra quem usa sqlit e bom voce modificar o con:close()env:close() troque por return TRUEreturn 0 e assim que eu uso em sqlit e nao da mais erro de salve. Link para o comentário https://xtibia.com/forum/topic/103432-comando-de-highscores/#findComment-747809 Compartilhar em outros sites More sharing options...
Posts Recomendados