Resultados 1 a 10 de 15

Threaded View

  1. #1
    Developer C++ s00x's Avatar

    Data de Ingresso
    Jan 2015
    Posts
    373
    Thanks Thanks Given 
    75
    Thanks Thanks Received 
    146
    Thanked in
    24 Posts
    Mencionado
    63 Post(s)
    MEU HUMOR
    Cheerful
    País
    United States

    Ranking Diário, Semanal e Mensal [MuEMU]

    Olá galera, conforme o titulo... lá vai.


    Colunas a serem inseridas na tabela Character:

    Código:
    Use [MuOnline]
    
    GO
    
    ALTER TABLE [MuOnline].[dbo].[Character] ADD ResetDay INT NOT NULL DEFAULT ((0))
    ALTER TABLE [MuOnline].[dbo].[Character] ADD ResetWek INT NOT NULL DEFAULT ((0))
    ALTER TABLE [MuOnline].[dbo].[Character] ADD ResetMon INT NOT NULL DEFAULT ((0))
    Trigger para contabilizar os Rankings:
    Código:
    USE [MuOnline]
    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
    Jobs para resetar os respectivos Rankings.

    JobName: ResetDay

    Código:
    BEGIN TRANSACTION
        DECLARE @JobID BINARY(16)
        DECLARE @ReturnCode INT
        SELECT @ReturnCode = 0
    
        IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[uncategorized (Local)]') < 1
            EXECUTE msdb.dbo.sp_add_category @name = N'[uncategorized (Local)]'
    
        SELECT @JobID = job_id FROM    msdb.dbo.sysjobs WHERE (name = N'ResetDay')
    
        IF (@JobID IS NOT NULL)
        BEGIN
    
        IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0)))
        BEGIN
    
            RAISERROR (N'Unable to import job ''ResetDay'' since there is already a multi-server job with this name.', 16, 1)
            GOTO QuitWithRollback
            END
        ELSE
            EXECUTE msdb.dbo.sp_delete_job @job_name = N'ResetDay'
            SELECT @JobID = NULL
        END
    
    BEGIN
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'ResetDay',    @[Somente membros podem ver os links. ]_login_name = N'sa', @description = N'No description available.', @category_name = N'[uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'ResetColumn', @command = N'UPDATE Character SET ResetDay = 0', @database_name = N'MuOnline', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
        EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1
    
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'ResetDay', @enabled = 1, @freq_type = 4, @active_start_date = 20170329, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
    END
    COMMIT TRANSACTION
    GOTO    EndSave
    QuitWithRollback:
        IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:
    JobName: ResetWek
    Código:
    BEGIN TRANSACTION
        DECLARE @JobID BINARY(16)
        DECLARE @ReturnCode INT
        SELECT @ReturnCode = 0
    
        IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[uncategorized (Local)]') < 1
            EXECUTE msdb.dbo.sp_add_category @name = N'[uncategorized (Local)]'
    
        SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE (name = N'ResetWek')
     
        IF (@JobID IS NOT NULL)
        BEGIN
     
        IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0)))
        BEGIN
    
            RAISERROR (N'Unable to import job ''ResetWek'' since there is already a multi-server job with this name.', 16, 1)
            GOTO QuitWithRollback
            END
        ELSE
            EXECUTE msdb.dbo.sp_delete_job @job_name = N'ResetWek'
            SELECT @JobID = NULL
        END
    
    BEGIN
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'ResetWek',    @[Somente membros podem ver os links. ]_login_name = N'sa', @description = N'No description available.', @category_name = N'[uncategorized (Local)]', @enabled = 0, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 0, @delete_level= 0
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'ResetColumn', @command = N'UPDATE Character SET ResetWek = 0', @database_name = N'MuOnline', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 0, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
        EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1
    
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'ResetWek', @enabled = 1, @freq_type = 8, @active_start_date = 20170329, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @active_end_time = 235959
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
    END
    COMMIT TRANSACTION
    GOTO    EndSave
    QuitWithRollback:
        IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:
    JobName: ResetMon
    Código:
    BEGIN TRANSACTION
        DECLARE @JobID BINARY(16)
        DECLARE @ReturnCode INT
        SELECT @ReturnCode = 0
    
        IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[uncategorized (Local)]') < 1
            EXECUTE msdb.dbo.sp_add_category @name = N'[uncategorized (Local)]'
    
        SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE (name = N'ResetMon')
     
        IF (@JobID IS NOT NULL)
        BEGIN
    
        IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0)))
        BEGIN
    
            RAISERROR (N'Unable to import job ''ResetMon'' since there is already a multi-server job with this name.', 16, 1)
            GOTO QuitWithRollback
            END
        ELSE
            EXECUTE msdb.dbo.sp_delete_job @job_name = N'ResetMon'
            SELECT @JobID = NULL
        END
    
    BEGIN
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'ResetMon',    @[Somente membros podem ver os links. ]_login_name = N'sa', @description = N'No description available.', @category_name = N'[uncategorized (Local)]', @enabled = 0, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 0, @delete_level= 0
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'ResetColumn', @command = N'UPDATE Character SET ResetMon = 0', @database_name = N'MuOnline', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 0, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
        EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1
    
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'ResetMon', @enabled = 1, @freq_type = 16, @active_start_date = 20170329, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @active_end_time = 235959
        IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
        EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
    END
    COMMIT TRANSACTION
    GOTO    EndSave
    QuitWithRollback:
        IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:


    As tabelas aqui usadas foram baseadas nas citadas no tópico, se for diferente das daqui citadas, não irá funcionar, segui a estrutura dos nomes, de acordo com as do contido no Código Fonte da X-Team vulgo MuEMU.

    Obs: Seguindo a estrutura das tabelas serve para qualquer WebSite (meio obvio).

    Créditos:
    s00x (EU)
    Microsoft SQLServer
    Last edited by s00x; 29/03/2017 at 12:18 PM.
    É melhor estar enganado, do que ser enganado.

Tags para este Tópico

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais