Page 2 of 2 PrimeiroPrimeiro 12
Resultados 11 a 15 de 15
  1. #11
    Developer Delphi Arcade's Avatar


    Data de Ingresso
    Sep 2017
    Posts
    151
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    10
    Thanked in
    5 Posts
    Mencionado
    20 Post(s)
    MEU HUMOR
    Relaxed
    País
    Brazil
    Citação Originally Posted by vinybronks Ver Post
    To tendo um problema aqui executei essa job tanto como Tempo quanto OnlineHours mais não tá adicionando os golds e nem marcando as horas em nenhuma das coluna,e sim já criei as coluna Tempo e OnlineHours .. alguém sabe oque é ?

    A moeda que uso é Golds então esta assim

    __________________________________________________ __________________________________________________ ______
    job

    UPDATE memb_stat SET Tempo = Tempo + 1 WHERE connectstat = 1
    ___________________________________
    UPDATE MEMB_INFO
    SET Golds = Golds + 10
    FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
    WHERE Tempo >= 60

    Ou

    UPDATE memb_stat SET OnlineHours = OnlineHours + 1 WHERE connectstat = 1
    ____________________________________
    UPDATE MEMB_INFO
    SET Golds = Golds + 10
    FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
    WHERE OnlineHours >= 60


    Nenhum dos jeito ta dando certo

    Aparece algum erro na hora que você tenta executar? Qual seria o erro?

    Eu tenho uma query que trabalha diretamente na WZ_DISCONNECTMEMB, ela pagará os golds somente após o player desconctar. Essa Query realiza o cálculo através de um tempo base definido pelo administrador para pagar o bonus online.

    OBS: ELA PODE SER RODADA DIRETAMENTE, NÃO É NECESSÁRIO CRIAR JOB COM ELA.

    Código:
    USE [MuOnline]
    GO
    /****** Object:  StoredProcedure [dbo].[WZ_DISCONNECT_MEMB]    Script Date: 05/05/2013 10:42:49 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    
    ALTER PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
    @memb___id varchar(10)
     AS
    Begin    
    set nocount on
        Declare @find_id varchar(10)    
        Declare @ConnectStat tinyint
        Declare @con_tm DATETIME
        Declare @Minutos tinyint
        Declare @TempoAtual int
        Declare @NovoTempo int
        Declare @Bonus int
        Set @ConnectStat = 0
        Set @find_id = 'NOT'
        
        --Ganhar 1 mu$ a cada 10 minutos
        Set @Minutos = 10  -- Altere aqui o tempo online para ganhar 1 Gold
        --------------------------------
    
    
        select @find_id = S.memb___id,
               @con_tm = S.ConnectTM
               from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
               where I.memb___id = @memb___id
    
    
        if( @find_id <> 'NOT' )
        begin        
            
            --ATUALIZA status da conta
            UPDATE MEMB_STAT
            SET ConnectStat = @ConnectStat,
            DisconnectTM = getdate(),
            @TempoAtual = OnlineTime = OnlineTime+(DATEDIFF(mi,@con_tm,getdate()))
            WHERE memb___id = @memb___id
    
    
            --ATUALIZA minutos online do char
            UPDATE Character
            SET OnlineTime = OnlineTime+(DATEDIFF(mi,@con_tm,getdate())) 
            FROM Character as c INNER JOIN AccountCharacter as ac ON 
            c.Name = ac.GameIDC WHERE c.accountid = @memb___id
    
    
            --Mu$ por tempo online--------------------------------
            SELECT @Bonus = @TempoAtual / @Minutos
            SELECT @NovoTempo = @TempoAtual % @Minutos
            
            set @find_id = 'NOT'
    
    
            IF (@Bonus IS NOT NULL)
            BEGIN
                SELECT @find_id = memb___id FROM MEMB_INFO
                WHERE memb___id = @memb___id
                if( @find_id <> 'NOT' )
                begin    
                    UPDATE MEMB_INFO SET Golds = Golds + @Bonus WHERE memb___id = @memb___id
                end
                else
                begin
                    INSERT INTO MEMB_INFO (memb___id,Golds)
                    VALUES (@memb___id,@Bonus)
                end
                UPDATE MEMB_STAT SET Tempo = @NovoTempo WHERE memb___id = @memb___id
            END
        end
    end
    A vida é um eterno aprendizado
    Seja sempre humilde!

  2. #12
    Membro vinybronks's Avatar
    Data de Ingresso
    Sep 2017
    Posts
    159
    Thanks Thanks Given 
    2
    Thanks Thanks Received 
    2
    Thanked in
    1 Post
    Mencionado
    9 Post(s)
    MEU HUMOR
    Bitchy
    País
    Brazil
    Citação Originally Posted by maniacoo Ver Post
    Deixa eu entender, voce quer Golds por Hora Online
    ou quer o Ranking de HorasOnline?
    Premiar por horas online

    39 minutes:------- Atualizado -------

    Citação Originally Posted by Arcade Ver Post
    Aparece algum erro na hora que você tenta executar? Qual seria o erro?

    Eu tenho uma query que trabalha diretamente na WZ_DISCONNECTMEMB, ela pagará os golds somente após o player desconctar. Essa Query realiza o cálculo através de um tempo base definido pelo administrador para pagar o bonus online.

    OBS: ELA PODE SER RODADA DIRETAMENTE, NÃO É NECESSÁRIO CRIAR JOB COM ELA.

    Código:
    USE [MuOnline]
    GO
    /****** Object:  StoredProcedure [dbo].[WZ_DISCONNECT_MEMB]    Script Date: 05/05/2013 10:42:49 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    
    ALTER PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
    @memb___id varchar(10)
     AS
    Begin    
    set nocount on
        Declare @find_id varchar(10)    
        Declare @ConnectStat tinyint
        Declare @con_tm DATETIME
        Declare @Minutos tinyint
        Declare @TempoAtual int
        Declare @NovoTempo int
        Declare @Bonus int
        Set @ConnectStat = 0
        Set @find_id = 'NOT'
        
        --Ganhar 1 mu$ a cada 10 minutos
        Set @Minutos = 10  -- Altere aqui o tempo online para ganhar 1 Gold
        --------------------------------
    
    
        select @find_id = S.memb___id,
               @con_tm = S.ConnectTM
               from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
               where I.memb___id = @memb___id
    
    
        if( @find_id <> 'NOT' )
        begin        
            
            --ATUALIZA status da conta
            UPDATE MEMB_STAT
            SET ConnectStat = @ConnectStat,
            DisconnectTM = getdate(),
            @TempoAtual = OnlineTime = OnlineTime+(DATEDIFF(mi,@con_tm,getdate()))
            WHERE memb___id = @memb___id
    
    
            --ATUALIZA minutos online do char
            UPDATE Character
            SET OnlineTime = OnlineTime+(DATEDIFF(mi,@con_tm,getdate())) 
            FROM Character as c INNER JOIN AccountCharacter as ac ON 
            c.Name = ac.GameIDC WHERE c.accountid = @memb___id
    
    
            --Mu$ por tempo online--------------------------------
            SELECT @Bonus = @TempoAtual / @Minutos
            SELECT @NovoTempo = @TempoAtual % @Minutos
            
            set @find_id = 'NOT'
    
    
            IF (@Bonus IS NOT NULL)
            BEGIN
                SELECT @find_id = memb___id FROM MEMB_INFO
                WHERE memb___id = @memb___id
                if( @find_id <> 'NOT' )
                begin    
                    UPDATE MEMB_INFO SET Golds = Golds + @Bonus WHERE memb___id = @memb___id
                end
                else
                begin
                    INSERT INTO MEMB_INFO (memb___id,Golds)
                    VALUES (@memb___id,@Bonus)
                end
                UPDATE MEMB_STAT SET Tempo = @NovoTempo WHERE memb___id = @memb___id
            END
        end
    end
    Aparece que algumas linhas foi afetada .. quanto a essa nova que vc disponibilizou esta dando esse erro :

    Mensagem 207, Nível 16, Estado 1, Procedimento WZ_DISCONNECT_MEMB, Linha 42
    Nome de coluna 'OnlineTime' inválido.
    Last edited by vinybronks; 22/04/2018 at 04:57 AM.


  3. #13
    Fundador PerfectZone maniacoo's Avatar


    Data de Ingresso
    Mar 2016
    Posts
    461
    Thanks Thanks Given 
    12
    Thanks Thanks Received 
    698
    Thanked in
    29 Posts
    Mencionado
    65 Post(s)
    MEU HUMOR
    Cool
    Citação Originally Posted by vinybronks Ver Post
    Premiar por horas online

    39 minutes:------- Atualizado -------



    Aparece que algumas linhas foi afetada .. quanto a essa nova que vc disponibilizou esta dando esse erro :

    Mensagem 207, Nível 16, Estado 1, Procedimento WZ_DISCONNECT_MEMB, Linha 42
    Nome de coluna 'OnlineTime' inválido.
    é só criar a Coluna OnlineTime na MEMB_STAT

  4. #14
    Membro vinybronks's Avatar
    Data de Ingresso
    Sep 2017
    Posts
    159
    Thanks Thanks Given 
    2
    Thanks Thanks Received 
    2
    Thanked in
    1 Post
    Mencionado
    9 Post(s)
    MEU HUMOR
    Bitchy
    País
    Brazil
    Já tenho criada msm assim o erro continua u.u


  5. #15
    Developer Delphi Arcade's Avatar


    Data de Ingresso
    Sep 2017
    Posts
    151
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    10
    Thanked in
    5 Posts
    Mencionado
    20 Post(s)
    MEU HUMOR
    Relaxed
    País
    Brazil
    Citação Originally Posted by vinybronks Ver Post
    Já tenho criada msm assim o erro continua u.u
    Troque a OnlineTime pela coluna de tempo online que funciona na tua MEMB_STAT.
    A vida é um eterno aprendizado
    Seja sempre humilde!

Page 2 of 2 PrimeiroPrimeiro 12

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