Premiar Top 3 Mensal

Essa query criará uma JOB para premiar o Top 3 do Ranking semanal e zerar automaticamente.

ANTES DE QUALQUER ALTERAÇÃO FAÇA UM BACKUP DA SUA DATABASE

Passo1: Primeiro rode essa query para deletar outras Jobs que estejam fazendo essa mesma função, ignore mensagens de erro que possam aparecer caso não exista nenhuma dessas em seu banco de dados.

USE msdb ; 
GO 
EXEC sp_delete_job 
@job_name = N'Ranking resetsMonth' ; 
GO 

EXEC sp_delete_job 
@job_name = N'Premiando_Mensal' ; 
GO

 

Passo2: Agora rode essa query para criar o JOB que vai premiar os tops, lembre-se de editar o campo em vermelho para quantidade de golds que você deseja premiar cada player.

-Troque onde está gold pela tabela da moeda que você vai premiar o player, Padrão: gold ou cash
-Troque onde está 100 pela quantidade que você vai dar ao 1º do ranking. 
-Troque onde está 70 pela quantidade que você vai dar ao 2º do ranking. 
-Troque onde está 50 pela quantidade que você vai dar ao 3º do ranking.

USE [msdb]
GO
/****** Object: Job [Premiando_Mensal] Script Date: 12/29/2010 08:38:21 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]]] Script Date: 12/29/2010 08:38:21 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Premiando_Mensal',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Step] Script Date: 12/29/2010 08:38:21 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Step',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'declare @AccountID varchar (10)
declare @Name varchar(10)
declare @ResetsMonth int
Select top 1 @AccountID=AccountID,@Name=Name,@ResetsMonth=ResetsMonth from character order by ResetsMonth desc, name desc
Update memb_info set gold=gold+100 where memb___id=@AccountID
Select top 2 @AccountID=AccountID,@Name=Name,@ResetsMonth=ResetsMonth from character order by ResetsMonth desc, name desc
Update memb_info set gold=gold+70 where memb___id=@AccountID
Select top 3 @AccountID=AccountID,@Name=Name,@ResetsMonth=ResetsMonth from character order by ResetsMonth desc, name desc
Update memb_info set gold=gold+50 where memb___id=@AccountID
Update character set ResetsMonth=0',
@database_name=N'MuOnline',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Shedules01',
@enabled=1,
@freq_type=16,
@freq_interval=30,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20101229,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

Feito isso todo mês os 3 primeiros do ranking serão premiados. 

  • 1 Bu dökümanı faydalı bulan kullanıcılar:
Bu cevap yeterince yardımcı oldu mu?

İlgili diğer dökümanlar

Como Colocar ADM/GM no servidor

Adicionando GM/ADM no servidor Passo1: Primeiramente no VPS vá em C:\MuServer\Data\Util e abra o...

Como Colocar ADM/GM no servidor

Adicionando GM/ADM no servidor Passo1: Primeiramente no VPS vá em C:\MuServer\Data\Util e abra o...

Como Colocar ADM/GM no servidor

Adicionando GM/ADM no servidor Passo1: Primeiramente no VPS vá em C:\MuServer\Data\Util e abra o...

Onde editar perguntas e respostas do evento 'Quiz'

Para editar o evento de Perguntas e respostas automáticas do servidor basta ir em...

Onde editar perguntas e respostas do evento 'Quiz'

Para editar o evento de Perguntas e respostas automáticas do servidor basta ir em...