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

Alpha Servers
Página 5 de 7 PrimeiroPrimeiro ... 34567 ÚltimoÚltimo
Resultados 41 a 50 de 63
  1. #41



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.099
    Agradecido
    2520
    Agradeceu
    492
    Peso da Avaliação
    30

    Padrão

    É pra isso que servem as querys de alter table:

    Código:
    USE [MUOnline]
    GO
    
    ALTER TABLE [dbo].[MEMB_STAT]
    ALTER COLUMN [ConnectTM] [datetime] NULL
    GO
    
    ALTER TABLE [dbo].[MEMB_STAT]
    ALTER COLUMN [DisConnectTM] [datetime] NULL
    GO
    
    ALTER TABLE [dbo].[MEMB_INFO]
    ADD	[TimeON] [bigint] NOT NULL DEFAULT 0
    GO
    
    ALTER TABLE [dbo].[Character]
    ADD	[ConnectTM] [datetime] NULL
    GO
    
    ALTER TABLE [dbo].[Character]
    ADD	[DisConnectTM] [datetime] NULL
    GO
    
    ALTER TABLE  [dbo].[Character]
    ADD	[TimeON] [bigint] DEFAULT ((0)) NOT NULL
    GO
    Você rodou as querys que estão no primeiro post desse tópico?
    Última edição por Renato; 06-04-2016 às 09:47 PM.
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  2. #42

    Avatar de lucasubatuba
    Data de Ingresso
    Mar 2016
    Localização
    Porto Alegre
    Idade
    30
    Posts
    6
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    ALTER TABLE [dbo].[MEMB_INFO]
    ADD [TimeON] [bigint] NOT NULL DEFAULT 0
    GO
    Não seria?

    ALTER TABLE [dbo].[MEMB_STAT]
    ADD [TimeON] [bigint] NOT NULL DEFAULT 0
    GO
    Att.

    @EDIT

    Alterando o código conforme citei, o problema foi solucionado.

    Porém acredito que algumas hipóteses não estejam conforme.
    Se puderes me adicionar no skype para conversamos: [CENSURADO].

    A única forma que acredito estar contato tempo sem problemas seria conectar a um personagem e desconectar da conta;
    Caso seja realizada a troca de personagem, o primeiro char logado ainda fica contando;
    Caso logue na conta e não selecione nem um char, a conta acrescenta tempo online para o char logado no último acesso da mesma.
    E por aii vai!

    Att.
    Última edição por Renato; 07-04-2016 às 10:28 AM.

  3. #43

    Avatar de Mr.Junior
    Data de Ingresso
    Jul 2011
    Localização
    Hortolândia
    Idade
    31
    Posts
    507
    Agradecido
    165
    Agradeceu
    97
    Peso da Avaliação
    18

    Padrão

    @ Renato

    Mandei mensagem a você no Skype mais não sei se chegou, pois o Skype anda com uns bugs loucos.

    Referente aos tempo Diário / Semanal e mensal é possível ?
    "Só tem o direito de criticar aqueles, que pretendem ajudar "

  4. #44



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.099
    Agradecido
    2520
    Agradeceu
    492
    Peso da Avaliação
    30

    Padrão

    @lucasubatuba é MEMB_INFO mesmo, eu que falei errado na minha explicação anterior. Observe a procedure:

    Código:
    /*
    | @modifications - Renato Valer
    | @version - 2.0.0
    | @last update - 2015/08/28 - 09h25min
    | @warning: Não me responsabilizo por uso incorreto e possíveis deadlocks. Use por sua conta e risco.
    */
    
    USE MuOnline
    GO
    
    IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'WZ_DISCONNECT_MEMB')
    DROP PROCEDURE [DBO].[WZ_DISCONNECT_MEMB]
    GO
    
    CREATE PROCEDURE [DBO].[WZ_DISCONNECT_MEMB] @memb___id VARCHAR(10) AS BEGIN
    
    SET NOCOUNT ON
    
    DECLARE @Find_ID VARCHAR(10),
    @ConnectStat TINYINT,
    @LoginTime INT,
    @LogoutTime INT,
    @ConnectTM INT,
    @DisConnectTM INT,
    @TimeON_Account BIGINT,
    @TimeON_Char BIGINT,
    @GameIDC VARCHAR(10),
    @CharConnectTM DATETIME,
    @CharConnectTM_Int INT,
    @Now DATETIME,
    @Now_Int INT;
    
    SET @ConnectStat = 0
    SET @Find_ID = 'NOT'
    SET @Now = GETDATE();
    
    SELECT @Find_ID = S.memb___id 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	
    
    UPDATE MEMB_STAT SET ConnectStat = @ConnectStat, DisconnectTM = @Now WHERE memb___id = @memb___id;
    
    
    /*
    Selecionamos os momentos de login e logout da conta e convertemos para números inteiros.
    */
    
    SET @ConnectTM = (SELECT DATEDIFF(s, '19700101', MEMB_STAT.ConnectTM) FROM MEMB_STAT WHERE memb___id = @memb___id);
    SET @DisConnectTM = DATEDIFF(s, '19700101', @Now);
    
    
    /*
    Executamos os cálculos para obtermos o tempo total online da conta.
    */
    
    SET @TimeON_Account = @DisConnectTM - @ConnectTM;
    
    /*
    Atualizamos o tempo total online da conta.
    */
    
    UPDATE MEMB_INFO  SET TimeON = TimeON + @TimeON_Account WHERE memb___id = @memb___id;
    
    
    /*
    Selecionando nick do último char logado
    */	
    
    SET @GameIDC = (SELECT GameIDC FROM AccountCharacter WHERE Id = @memb___id);
    
    /*
    Algum char foi logado antes de sair da conta.
    Mesmo que o cara tenha logado na conta e criado o char, o GameIDC
    só vai ser preenchido se o cara logar na conta.
    Sendo assim, se GameIDC for NULL, indica que nenhum char
    nunca foi logado nessa conta, então não tem necessidade de contar tempo on.
    */	
    IF(@GameIDC IS NOT NULL) BEGIN
    
    /*
    Verificamos se esse char existe.
    Motivo: o cara pode ter clicado em "selecionar char", deletado o char 
    e depois deslogado da conta.
    Se não existe, não precisa fazer nada.
    */
    IF EXISTS (SELECT Name FROM Character WHERE AccountID = @memb___id AND Name = @GameIDC) BEGIN
    
    /*
    Verificação: quando foi o último connect desse char que acabou de deslogar?
    Se for nulo, significa que ocorreu algum problema na trigger, então
    adicionamos o valor de "agora" convertido em timestamp para possibilitar o cálculo.
    */
    
    SET @CharConnectTM = (SELECT ConnectTM FROM Character WHERE AccountID = @memb___id AND Name = @GameIDC);
    IF (@CharConnectTM IS NULL) BEGIN
    SET @CharConnectTM_Int = DATEDIFF(s, '19700101', @Now);
    END
    /*
    Se não for nulo, convertemos para timestamp.
    */
    ELSE BEGIN
    SET @CharConnectTM_Int = DATEDIFF(s, '19700101', @CharConnectTM);
    END
    
    /*
    Executamos os cálculos para obtermos o tempo total online
    do último char logado.
    */
    
    SET @TimeON_Char = (@DisConnectTM - @CharConnectTM_Int);
    
    /*
    Atualizamos o tempo total online do último char logado.
    */
    
    UPDATE Character SET TimeON = TimeON + @TimeON_Char, DisConnectTM = @Now WHERE AccountID = @memb___id AND Name = @GameIDC;	
    
    END
    END
    END
    SET NOCOUNT OFF
    END

    Optei por colocar o TimeON na MEMB_INFO em razão de ser uma tabela mais "segura", pois alguns administradores rodam querys que "limpam" a MEMB_STAT, de modo que se a TimeON ficar na MEMB_STAT e o administrador fizer isso (acredite, tem muito admin lesado por aí), todos os dados relacionados a tempo online da conta se perderiam.

    Contudo, na explicação anterior, eu acabei mencionando MEMB_STAT por erro, pois já faz muito tempo que fiz a query kkkk

    []'s
    Última edição por Renato; 07-04-2016 às 10:33 AM.
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  5. O Seguinte Usuário Agradeceu Renato Por este Post Útil:


  6. #45

    Avatar de Mr.Junior
    Data de Ingresso
    Jul 2011
    Localização
    Hortolândia
    Idade
    31
    Posts
    507
    Agradecido
    165
    Agradeceu
    97
    Peso da Avaliação
    18

    Padrão

    Problema resolvido e obrigado ao @Renato por toda atenção.

    "Só tem o direito de criticar aqueles, que pretendem ajudar "

  7. O Seguinte Usuário Agradeceu Mr.Junior Por este Post Útil:


  8. #46

    Avatar de lucasubatuba
    Data de Ingresso
    Mar 2016
    Localização
    Porto Alegre
    Idade
    30
    Posts
    6
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    Citação Postado originalmente por Mr.Junior Ver Post
    No meu teste season8.3 da x-team..

    Esta funcionando porem o tempo total ONLINE da conta é contabilizado já o TEMPO TOTAL ONLINE DO CHAR não esta contabilizando.
    @Mr.Junior

    Conseguiu resolver este problema?
    Favor me add skype: [CENSURADO]

    Obrigado.

    Mensagem de moderação:


    Artigo 17 - É proibido aos usuários, com exceção de anunciantes e parceiros, postar em tópicos endereços de contatos pessoais como e-mail, facebook, Skype, telefone ou qualquer outro meio de contato exterior ao fórum. Se desejar enviar tais dados a alguém, envie por Mensagem Pessoal (MP).

    Leia as [Somente usuários registrados podem vem os links. ] para evitar punições.
    Última edição por Renato; 08-04-2016 às 11:09 AM.

  9. #47

    Avatar de Mr.Junior
    Data de Ingresso
    Jul 2011
    Localização
    Hortolândia
    Idade
    31
    Posts
    507
    Agradecido
    165
    Agradeceu
    97
    Peso da Avaliação
    18

    Padrão

    @Renato

    Me tira uma dúvida a contagem é feita sempre que o personagem " DESLOGA " digamos que no meu caso eu possua ranking " DIARIO " e uma Job que é executada todos os dias ás 23:59:59 assim todo ranking " DIARIO " é zerado acontece que por algum motivo desconhecido os personagem conseguem ter mais de 45 horas em 1 dia sendo que 1 dia tem apenas 24 horas.

    Sabe o que pode ser isso ?

    Veja abaixo :



    Poderia me ajudar nesta questão ? O ideal seria contabilizar no maximo 24 horas já que tenho um determinada job que zera o ranking todos os dias.
    "Só tem o direito de criticar aqueles, que pretendem ajudar "

  10. #48



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.099
    Agradecido
    2520
    Agradeceu
    492
    Peso da Avaliação
    30

    Padrão

    Se o char não desloga, o tempo não é contabilizado. Se não é contabilizado, não pode ser "zerado" pela job. Compreendeu?

    Em síntese: se o cara deixa o char logado 2, 3 dias seguidos, o tempo on só vai ser contado quando o cara sair, resultando em 48...72 horas no "diário"...

    Não rola fazer ranking diário por conta disso.

    @Mr. Junior o que daria pra você fazer é uma modificação na JOB que zera o tempo online diário para que ela faça o que a trigger faz: calcule o tempo dos chars onlines e depois zere.
    Última edição por Renato; 29-05-2016 às 12:57 PM.
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  11. O Seguinte Usuário Agradeceu Renato Por este Post Útil:


  12. #49

    Avatar de _-TONNYB0RUS-_
    Data de Ingresso
    Apr 2016
    Localização
    Brasil
    Idade
    30
    Posts
    31
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    o ranking contabiliza em segundos , é possível alterar para contabilizar para horas?

  13. #50



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.099
    Agradecido
    2520
    Agradeceu
    492
    Peso da Avaliação
    30

    Padrão

    Citação Postado originalmente por _-TONNYB0RUS-_ Ver Post
    o ranking contabiliza em segundos , é possível alterar para contabilizar para horas?
    tempo on * 3600

    Recomendo mudar isso apenas na "exibição", não no armazenamento.

    Exemplo de código que faz isso:

    Código PHP:
     <?php
    $find 
    mssql_query("SELECT TimeON FROM MEMB_INFO WHERE memb___id='".$login."'");
    $fetch mssql_fetch_object($find);    
    $seconds $fetch->TimeON;
    $hours floor($seconds 3600);
    $seconds -= $hours 3600;
    $minutes floor($seconds 60);
    $seconds -= $minutes 60;
    $timeON = (''.$hours.'h'.$minutes.'min'.$seconds.'sec');
    echo 
    $timeON;
    ?>
    A exibição terá esse formato: 00h00min00sec
    Última edição por Renato; 06-07-2016 às 11:24 AM.
    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

 

 
Página 5 de 7 PrimeiroPrimeiro ... 34567 ÚltimoÚltimo

Informações de Tópico

Usuários Navegando neste Tópico

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

Tópicos Similares

  1. |Dúvida| As vezes não dá para Criar mais Char na Conta
    Por Luciano no fórum Dúvidas
    Respostas: 1
    Último Post: 06-11-2015, 11:52 PM
  2. |Jobs/Query| conta online sem tempo real
    Por hadeslan no fórum Jobs e Querys
    Respostas: 3
    Último Post: 06-09-2015, 01:43 PM
  3. |Dúvida| Como Adicionar Ranking Tempo Char Online
    Por KaKaRoToX no fórum Dúvidas|Pedidos
    Respostas: 0
    Último Post: 17-01-2015, 10:05 PM
  4. |Dúvida| Conta não cadastrada depois de um tempo online.
    Por caahs2feeh no fórum Dúvidas
    Respostas: 5
    Último Post: 09-09-2012, 08:45 PM
  5. Respostas: 8
    Último Post: 11-06-2011, 08:46 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
  •