Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


Alpha Servers
Resultados 1 a 1 de 1
  1. #1

    Avatar de hidy
    Data de Ingresso
    Apr 2010
    Localização
    Na ninha Casa XD
    Idade
    27
    Posts
    343
    Agradecido
    11
    Agradeceu
    11
    Peso da Avaliação
    0

    Padrão Bonus em Golds, Semanal ou Mensal com TempoOnline

    Olá Galera, achei esse tutorial em outro fórum ele é bem interessante caso alguém quira utilizar em seu servidor.

    Bom este tutorial lhe ensinará a criar uma job que premiará com um tipo de bonus em 'golds' para seu servidor.

    Codigo:

    declare @AccountID varchar (10)
    declare @Name varchar(10)
    declare @reset int
    declare @tempoonline int
    declare @ds int
    Select top 1 @AccountID=AccountID,@Name=Name,@reset=ResetCount from character order by ResetCount, clevel desc
    Update memb_info set gold=gold+5 where memb___id=@AccountID
    -----
    Select top 1 @AccountID=AccountID,@Name=Name,@tempoonline=tempo online from character order by tempoonline desc, name desc
    Update memb_info set gold=gold+5 where memb___id=@AccountID
    -----
    Select top 1 @AccountID=AccountID,@Name=CharacterName,@ds=Point from EVENT_INFO order by Point desc, CharacterName desc
    Update memb_info set gold=gold+5 where memb___id=@AccountID

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

    Crie uma Schedule para passar uma vez por semana para criar uma premiação semanal ou se preferir mensal.

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

    Entendendo o codigo:

    O codigo acima irá premiar o primeiro do Ranking do Devil Square, Resets e Tempo Online automaticamente com '5' Golds.

    Sendo que TempoOnline é uma coluna na Character que marca as horas online dos personagens, aqui na tem um trigger que faz este processo, podendo ser em minutos e horas, ,@tempoonline uma coluna virtual para ser passado o codigo, deve ser declarada acima. VEJA ABAIXO NESTE TOPICO O CODIGO DA TRIGGER DE TEMPOONLINE.

    Resets a coluna que determina o numero de resets é claro, @resets uma coluna virtual para ser passado o codigo, deve ser declarada acima.

    Point a coluna onde marca o numero de pontos na Event_info do Devil Square, @ds a coluna virtual para ser passado o codigo.

    Para adicionar mais uma premiação você precisará declarar acima uma coluna virtual e adicionar mais uma linha abaixo dando 'Select ...'.

    Digamos que quero premiar o jogador que obtem mais level na determinada hora e dia da semana ou mes marcada pela schedule e claro, veja como ficará:

    declare @AccountID varchar (10)
    declare @Name varchar(10)
    declare @reset int
    declare @tempoonline int
    declare @ds int
    declare @clevel int

    Select top 1 @AccountID=AccountID,@Name=Name,@reset=Resets from character order by Resets desc
    Update memb_info set gold=gold+5 where memb___id=@AccountID
    -----
    Select top 1 @AccountID=AccountID,@Name=Name,@tempoonline=tempo online from character order by tempoonline desc
    Update memb_info set gold=gold+5 where memb___id=@AccountID
    -----
    Select top 1 @AccountID=AccountID,@Name=CharacterName,@ds=Point from EVENT_INFO order by Point desc
    Update memb_info set gold=gold+5 where memb___id=@AccountID
    -----
    Select top 1 @AccountID=AccountID,@Name=Name,@clevel=clevel from Character order by clevel desc
    Update memb_info set gold=gold+5 where memb___id=@clevel

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

    CODIGO PARA CRIAR TRIGGER DE (TEMPO ONLINE) OBTIDO AQUI NA RZBR:

    Adicionando Coluna Tempoonline em character:

    USE MuOnline
    ALTER TABLE Character ADD TempoOnline int DEFAULT (0)

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

    Dropando caso sua DB ja tiver esta Trigger:

    DROP TRIGGER MembStat_RecordOnlineHours

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

    Adicionando Trigger:

    CREATE TRIGGER [MembStat_RecordOnlineHours] ON dbo.MEMB_STAT
    AFTER UPDATE
    AS
    declare @memb___id varchar(10)
    declare @connectstat tinyint
    SELECT @memb___id=memb___id,@connectstat=connectstat FROM INSERTED
    IF (@connectstat = 0)
    BEGIN
    UPDATE [dbo].[Character]
    SET TempoOnline = TempoOnline + datediff(hour, (SELECT ConnectTM FROM MEMB_STAT WHERE memb___id= @memb___id), getdate())
    WHERE Name = (SELECT GameIDC FROM AccountCharacter WHERE Id=@memb___id)
    END

    Nota: a Trigger acima irá atualizar tempoonline a cada uma hora online, pois assim está determinado no codigo como 'hour', para converter para minutos para colocar onde marquei de vermelho para 'minute'

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

    SIMPLES E FACIL, UTILIZO EM MEU SERVIDOR E EM SERVIDOR DE CLIENTES E FUNCIONA PERFEITAMENTE, CASO TIVER DUVIDAS OU EU TENHA ESQUECIDO DE ESCLAREÇER ALGUM DETALHE FAVOR POSTAR NESTE TOPICO.

    Creditos:

    Codigo para premiação: Jovjr
    Codigo de tempoonline: DouglasF
    Última edição por hidy; 05-09-2011 às 10:55 AM.

  2. O Seguinte Usuário Agradeceu hidy Por este Post Útil:


 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Dúvida| Problema Ranks Mensal & Semanal
    Por ThraaLL no fórum Dúvidas|Pedidos
    Respostas: 1
    Último Post: 16-03-2016, 09:43 PM
  2. |Pedido| Premiar top mensal e semanal (MuSite 2.5.x)
    Por betoto12 no fórum Jobs e Querys
    Respostas: 0
    Último Post: 21-12-2015, 09:40 PM
  3. |Pedido| Rank Semanal & mensal
    Por sula no fórum Pedidos
    Respostas: 4
    Último Post: 08-07-2015, 08:29 PM
  4. |Pedido| Premiação TOP Mensal/Semanal MuSite
    Por [ADM]Lp no fórum Pedidos
    Respostas: 9
    Último Post: 09-12-2013, 12:52 PM
  5. |Suporte| Resetar Semanal e Mensal no GS
    Por yvescleuder no fórum Pedidos
    Respostas: 1
    Último Post: 30-03-2012, 01:50 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •