• Bem vindo à nossa comunidade - Quer se juntar ao resto dos nossos membros? Registre-se*Registros aprovados pela adminitração

[Query/Job] Ranking diário, semanal e mensal [Funciona MuEmu]

SrxMorte

O mais lindo
Master XPZ
Olá, a alguns minutos atrás estava com problemas nos rankings diário, semanal e mensal que não contabilizavam devido ao gameserver só registrar na coluna ResetCount. Eu utilizo MuEmu da X-team, mais serve para qualquer Mu que só contabiliza na reset, basta alterar ao seu gosto.

Primeiramente crie uma JOB para rodar a cada 20 minutos com o código :
Código:
Por favor, Entrar ou Registrar para ver o conteúdo dos códigos!

Ela irá copiar a ResetCount para as outras colunas. [A ResetCount é a coluna reset do meu servidor].

Depois você irá criar mais 3 JOBS para resetarem os rankings no final do dia, semana e mês.

A primeira job a criar será:
Código:
Por favor, Entrar ou Registrar para ver o conteúdo dos códigos!

Essa você colocará para rodar no final do dia todos os dias.


A segunda job a criar será:
Código:
Por favor, Entrar ou Registrar para ver o conteúdo dos códigos!

Essa você colocará para rodar todo domingo 23:59.


A terceira job a criar será:
Código:
Por favor, Entrar ou Registrar para ver o conteúdo dos códigos!

Essa você colocará para rodar todo final do mês as 23:59.


Então é isso, seu ranking irá funcionar normalmente, não vou ensinar como criar job, isso é algo básico.

Essas querys podem ser reaproveitadas para outras funções, é algo muito útil para usuários da EffectWeb já que o sistema de cronjobs não serve para praticamente nada nela.






 

_SavagE_

Honrado XPZ
Essa job não está funcionando como deveria!!
Ela está lançando os rankings (diario, semanal, mensal) = a ResetCount não importa se você zerar os rankings (diarios, semanais e mensais)
automáticamente eles voltam a ser = ao ranking principal pq estão copiando a resetcount.
 

_SavagE_

Honrado XPZ
Sim exatamente (resetcount muemu season4) eu tbm não descarto a possibilidade de eu estar errado, mas como eu disse ai acima eu fiz como orientado mas os rankings apenas copiaram a resetcount.
 

flavioxp13

Honrado XPZ
Não fiz o teste, mas vendo pela logica não da certo pq ao final do dia ao resetar o resetsday, nos proximos 20 min será copiado o valor total de resetcount que se for 500, será copiado 500... é oque eu acho pelo menos.
 

cleniojr

Novato XPZ
Valeu a tentativa, mas realmente não está muito certo. Você tem que criar uma coisa chamada "Trigger" , vou estar compartilhando com vocês.

USE [MuOnline]
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'ResetRank' AND type = 'TR')
DROP TRIGGER ResetRank
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[ResetRank]
ON [dbo].[Character]

AFTER UPDATE
AS

IF UPDATE(ResetCount)
BEGIN SET NOCOUNT ON;
UPDATE [Character] set [Character].ResetDay=ResetDay+1, ResetWek=ResetWek+1, ResetMon=ResetMon+1
Where [Character].accountid=(SELECT accountid FROM Inserted)
and [Character].name=(SELECT name FROM Inserted)

END

Tentem isso, dei uma editada para contar os três em uma só trigger. Confiram tão somente se suas tabelas são as que estão ai: ResetCount, ResetDay, ResetWek e ResetMon. Se for, podem rodar tranquilos. Depois disso, as únicas jobs que irão criar serão para zerar os Ranks, podem ser as mesmas que o autor do tópico citou.
Caso dê errado e queiram tirar o trigger, usem :


USE [MuOnline]
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'ResetRank' AND type = 'TR')
DROP TRIGGER ResetRank
GO
 
Última edição:
Topo Bottom