Vlw
Vou Colocar No Meu OT
T+
info
Grupo: Campones
Registrado: 27/09/08
Posts: 31
Reputação: +2
Char no Tibia: Noob Less

Vlw
Vou Colocar No Meu OT
T+
Editado Dezembro 23 por NoobLess
info
Grupo: Artesão
Registrado: 07/05/08
Posts: 130
Reputação: 0
Char no Tibia: Paladin Well

Ta bugado fiih... nao adianta mais buga o save do server tem de arruma issu ae..
Hlangdom
info
Grupo: Artesão
Registrado: 13/11/06
Posts: 126
Reputação: +3
Char no Tibia: ----------------

se pode especifica mais o tal "bug" que vc falou ?
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:
info
Grupo: Artesão
Registrado: 13/11/06
Posts: 126
Reputação: +3
Char no Tibia: ----------------

hmm valeu por especificar o bug ...vou tentar solucionar ... se alguem souber porfavor fale !
Editado Janeiro 7 por ricktcs
info
Grupo: Visconde
Registrado: 19/06/07
Posts: 267
Reputação: +1
Gênero: Masculino
Char no Tibia: Rambocop Infernus

Este não seria o script que postei para um cara la nos pedidos?
info
Grupo: Artesão
Registrado: 13/11/06
Posts: 126
Reputação: +3
Char no Tibia: ----------------

sim deve ser igual
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:
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 por Eventide
Valeu Eventide, funcionou direitinho. Tava mesmo atras dessa soluçao. Sou seu fan. Valeu mesmo xD. T+ :smile_positivo:
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
info
Grupo: Herói
Registrado: 05/11/07
Posts: 544
Reputação: +70

É So Para Saber Mesmo , Com O Que O Evendite Disse , Agora Tá Funfano Normal ? [Plx Falem Rápido] Não Confio Em Camponeses
"
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
info
Grupo: Conde
Registrado: 07/05/08
Posts: 612
Reputação: +12
Char 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 TRUEreturn 0
e assim que eu uso em sqlit e nao da mais erro de salve.
info
Grupo: Artesão
Registrado: 13/11/06
Posts: 126
Reputação: +3
Char 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() endPronto apos adcionar isso salve e feche o arquivo.
2º Passo:
Vá em data/talkactions em talkactions.xml, adcione isso:
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~