Comando De Highscores !

ricktcs
em Actions e Talkactions
  • 1
  • 2

ricktcs

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 13/11/06Posts: 126Char no Tibia: ----------------

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~

noobless

Noob Less
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/09/08Posts: 31Char no Tibia: Noob Less

Vlw

Vou Colocar No Meu OT

T+

Web - HTML | CSS | PHP | MySQL - Web

paladinwell

Designer a criação.
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 07/05/08Posts: 130Char no Tibia: Paladin Well

Ta bugado fiih... nao adianta mais buga o save do server tem de arruma issu ae..

Hlangdom

Exaler

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/01/09Posts: 3Char no Tibia: Dark Teidy

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:

MarcolinoGOD

Byte que eu gosto! (TI na veia)
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 19/06/07Posts: 267Gênero: MasculinoChar no Tibia: Rambocop Infernus

Este não seria o script que postei para um cara la nos pedidos?

--

Kakareco

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/01/09Posts: 31

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:

~Retired~

Eventide

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 08/10/08Posts: 189

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!



?

 

 

1440522_2.png

 

Kakareco

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/01/09Posts: 31

Valeu Eventide, funcionou direitinho. Tava mesmo atras dessa soluçao. Sou seu fan. Valeu mesmo xD. T+ :smile_positivo:

~Retired~

Quilante

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/02/07Posts: 50Gênero: Masculino
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

Critical

A fumaça queimando, tá escutando?
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 05/11/07Posts: 544

É So Para Saber Mesmo , Com O Que O Evendite Disse , Agora Tá Funfano Normal ? [Plx Falem Rápido] Não Confio Em Camponeses x.x"

"Educai as crianças para não precisar punir os homens."

Thony402

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/11/08Posts: 11

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

Atenciosamente..

Thony Nunes

 

"Project Pbot of Fallen Original Maker"

 

Blog do Ot " http://blogs.xtibia.com/pofom "

 

fallenteam.jpg

.::Bars::.~>

 

neecofanrh4.gif

20275do5.png

22918gn6.png

20823rv9.png

 

.::PokesPuskies::.~>

2088842.gif

Clik aki e upa meu bixin

2049630.gif

Click aki e upa meu bixinhu;

.::Sings::. ~>

119325526519jpg.gifmoscam.gif

 

 

.::Metas::. ~>

 

[x]1post

[x]5 posts (SERVO)

[x]10 posts (CAMPONÊS)

[x]25 posts (CAÇADOR)

[ ]50 posts (CAVALEIRO)

[ ]100 posts (BARONETE)

[ ]200 posts (BARÃO)

[ ]300 posts (VISCONDE)

[ ]400 posts (DUQUE)

[ ]600 posts (ARQUEDUQUE)

[ ]800 posts (ARISTOCRATA)

[ ]1000 posts (REGENTE)

[ ]1400 posts (SÁBIO)

[ ]1800 posts (SACERDOTE)

[ ]2500 posts (PRÍNCIPE)

5040.png

satan666

Antichrist Superstar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 07/05/08Posts: 612Char no Tibia: leviana luciferiana

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 TRUE

return 0

 

e assim que eu uso em sqlit e nao da mais erro de salve.

creationb.jpg

"Um Deus que usasse seu poder para criar seres humanos que de antemão sabia que seriam atormentados eternamente, e que os predestinasse a isso,



não poderia ser sábio, nem justo e tampouco amoroso.

Além de nos submeter a isso vim a nos julgar e condenar por nossos atos aos tormentos do inferno.

pra minha pessoa isso não é um Deus Pai amoroso e bondoso como o chaman, seu padrão seria muito mais inferior do que o de muitos homens."

  • 1
  • 2