Olá ImperyusGames!
Irei ensinar à vocês como fazer um Ranking de Guild Semanal com premiação!
Um tutorial muito procurado pelos Admin's de MuOnline..
Procurei e pedi esta job durante 2 ANOS mas quem tinha não queria disponibilizar! Se eu não conseguisse por mim mesmo, ainda estaria procurando por aí..
Mas como não sou igual a essas pessoas, estou postando aqui pra vocês ...

Vamos lá,
Primeiramente vamos rodar as querys abaixo para criar as tabelas necessárias:

Código:
use muonline 

alter table Guild add score_semanal int NOT NULL default (0)
alter table Guild add score_total int NOT NULL default (0)
--------

Lembrando: A partir daí, vocês terão que usar as colunas: score_semanal -> para scores semanais / score_total -> para scores total.
Ambas colunas estão na tabela Guild.

-------

Agora vamos rodar a Trigger para que seja contabilizados os Scores:

Código:
CREATE TRIGGER [dbo].[RankingGuild]
ON [dbo].[Guild]
after update
as

IF UPDATE(g_score)
begin SET NOCOUNT ON;
Update [Guild] set [Guild].score_total=score_total+3,[Guild].score_semanal=score_semanal+3, g_score=0
Where [Guild].g_name=(SELECT g_name FROM Inserted)
and [Guild].g_name=(SELECT g_name FROM Inserted) and [Guild].g_score > 0
end

Agora vamos fazer o Script para aparecer o top 5 de guilds semanal no site:

Código:
<?
$query = 'SELECT TOP 5 G_Name,G_Mark,score_semanal FROM MuOnline.dbo.Guild ORDER BY score_semanal DESC';
$result = mssql_query($query);
?>
<?
for($i=0;$i < mssql_num_rows($result);++$i)
{
$row = mssql_fetch_row($result);

$rank = $i+1;

echo "
<li><a href='?page=guild_info&name=$row[0]'><img src='gmark/gmark.class?m=".urlencode(bin2hex($row[1]))."'></a>
<h1>$rank&ordm; Lugar</h1>
<h2>Guild: <span>$row[0]</span></h2>
<h3>( $row[2] ) Scores</h3>
              </li>";
			}
?>
------
Baixe aqui o arquivo para aparecer as logos da guild no site: [Somente usuários registrados podem vem os links. ]
Deixe o arquivo na pasta raíz da hospedagem.

------

Agora vamos à premiação da Guild..
Crie uma JOB para rodar todo sábado às 23:00h:

Código:
Declare @Guild varchar(10);
Declare @Char varchar(10);
Declare @Conta varchar(10);

Declare @Premio int;
Declare @G_Level int;


Set @Guild = (Select top 1 G_Name from Guild order by score_semanal desc, G_name desc)

IF (@Guild <> '')
BEGIN

DECLARE C CURSOR FOR SELECT Name,G_Level FROM GuildMember Where G_Name = @Guild Order By G_Level desc

OPEN C
FETCH NEXT FROM C INTO @Char,@G_Level

WHILE @@FETCH_STATUS = 0
BEGIN

IF @G_Level = 1 -- G_Level = 1 (Guild Master)
BEGIN
SET @Premio = 20;
END
IF @G_Level = 0 -- G_Level = 0 (Membro)
BEGIN
SET @Premio = 10;
END
SET @Conta = '';
SET @Conta = (Select AccountID From Character where Name = @Char)

IF (@Conta <> '')
BEGIN
Update DT_SHOP_CREDITS set credits = credits + @Premio where login = @Conta
END

FETCH NEXT FROM C INTO @Char,@G_Level

END

CLOSE C
DEALLOCATE C

END
-------------
Aonde estiver em vermelho é a premiação em Golds/Cashs da guild.
Entendam aqui:
@Premio = 20; -- é a quantidade de golds/cashs que o guild master da guild irá ganhar.
@Premio = 10; --- é a quantidade de golds/cashs que os membros da guild irão ganhar.

* OBS: A JOB irá premiar somente a guild 1º colocada no ranking semanal, caso alguém consiga adaptá-la para premiar as 3 primeiras guilds, posta aí pra gente!

* OBS 2: A JOB está programada para dar Golds/Cashs no shop DT, quem estiver usando outro Shop, é só modificar as tabelas e colunas que estão em cor azul.

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

Por fim, vamos criar a JOB para Zerar o Ranking Semanal de Guild:

Código:
update guild set score_semanal=0
* OBS: Coloque a JOB para rodar todo sábado às 00:00h.

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

Créditos do Tutorial, Script do Ranking de Guild e Trigger: Eu.
Créditos do Script para aparecer a logo da Guild: Fabricionaweb.
Créditos da JOB para premiar Guild: Originalmente postada pelo Prøjë¢T para premiar Castle Siege, e alterada por mim para premiar TOP Guild.

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

Acho que ajudei bastante né? Então clica em agradecer aí