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
    34
    Posts
    343
    Agradecido
    17
    Agradeceu
    14
    Peso da Avaliação
    20

    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
  •