Highscores No Jogo

Bruno
Por Bruno
em Actions e Talkactions

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

SÓ EM SERVERS COM LuaSQL e doPlayerPopupFYI![/b]

Exemplo:

!ranks "level

 

Essa é uma talkaction que mostra uma janela com Nome, Level, Exp....

capture1qo8zm7.jpg

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"/>

--------------------------------------------------------------------------

 

Basta entrar no tibia e usar o comando !ranks!

 

Créditos:

80% Pro cara do outro forum, pois eu peguei dele!

20% Pra mim por trazer pra cá e arrumar o erro do comando!

 

Comentem!

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

gustavocordeiro

Sei Lah
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 24/09/07Posts: 103Char no Tibia: Kirack Tyril

Útil. Bom tutorial

Vou testar :smile_positivo:



OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOo

~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º

Se eu lutar, lute ao meu lado
Se eu morrer, morra junto a mim
Se eu correr, corra que fudeu tudo...

~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º ~º

OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOo





~>ExORi OT SeRv =D

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Blz....

Vlw cara...aki funcionou perfeitamente...se aí funcionar fala ew xD!

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Rajas

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/12/07Posts: 132Gênero: MasculinoChar no Tibia: Hannibol

aff q paia intao nao funcuona em servidor XML e 8.1?

FireSoul

Alem de Scripter
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/04/06Posts: 44
SÓ EM SERVERS COM LuaSQL e doPlayerPopupFYI!

 

 

Como ele disse só em server SQL.

 

 

Atts

FireSoul

-----------------------------------------------LAST---------------------------------------------------

girl22.jpg

------------------------------------------------ADS'--------------------------------------------------

9jnpqg.png

---------------------------------------------------------------------------------------------------

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Testei uma vez em XML e não deu certo...

Tenta aí...

Se der certo posta aki que eu modifico o tópico!

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

Abacate123

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 19/05/06Posts: 125

puts, se o cara tem um servidor sql, é mais facil por logo um site -.-

 

otra, testei esse script aew ne um ot, ele so amostrou o accmanager e nada mais...

Atenciosamente Kiko5

--------------------------------------







kiko5fanmf0.gif

By: Anokinha

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Cara, como eu disse no tópico!

Não foi uma criação minha....

Resolvi trazer pra cá pq irá ajudar muita gente que não sabe mexer com site, e outra....

Testado aki no meu servidor 100% funcionando!

Refaz tudo aí que tenho certeza que irá dar certo!

Vlw

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

macedinho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/07Posts: 5Char no Tibia: Samimel

Aew testei aki e deu certo!

Vlw Xtr3m3, cada vez estou te conheçendo melhor...Ja sou seu fãn....gostei bastante de seus trabalhos!

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Vlw,

É bom saber que tem alguem que goste doq eu faço!

vlw mesmo!

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

djludio

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/02/08Posts: 20Char no Tibia: Misterious'Palladin

Parece ser bom vou testar aqui ;)

 

 

 

Lúdio...

Meu primeiro Banner aqui no XTibia ~



._.

Te ajudei? Gostou de mim? Coloque minha FanBar. :)



Enquanto isso em Jamera...

20:29 Nathas Rhyn [8]: BUY DUARVWEN SHIELD

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

Blz....se funcionar posta!

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

francklin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/06/07Posts: 19

Puts muito bom, porem era bom se funcionasse em versões XML, pois a maioria dos "ots" em sql tem site, e isso é mais útil pra servers que não tem site ;x

zimbituba

Crystal Server Founder
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/08Posts: 704Char no Tibia: Atera Knight

so :D

obrigado mesmo cara

mais só uma coisinha

 

 

if sqlType == "mysql" then

 

Isso aqui seria o tipo de sql que estou usando no server né?

 

-------------------

edite

aqui deu um erro cara :(

data/talkactions/scripts/highscores.lua:7: in function <data/talkactions/scripts/highscores.lua:1>

 

Olha ai v se arruma preciso urgente :D

If you would like to thank me for my Crystal Server and others, feel free to donate.
Paypal: shynzomapper@hotmail.com

Corvo69

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/01/08Posts: 22

bah...

seria mais ultil para otserver xml. =\

XML FOREVER