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


HGIDC
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 14
  1. #1

    Avatar de Bortolini
    Data de Ingresso
    Nov 2012
    Localização
    Jundiai
    Posts
    189
    Agradecido
    32
    Agradeceu
    24
    Peso da Avaliação
    7

    Padrão Erro gold por horas online

    Galera estava olhando o fórum e vi um tutorial aqui de como adicionar gold por cada hora que o player ficar online.


    Rodei a Trigger

    USE [MuOnline]
    GO
    DROP TRIGGER MembStat_RecordOnlineHours
    GO
    CREATE TRIGGER MembStat_RecordOnlineHours ON MEMB_STAT
    FOR 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].[MEMB_STAT]
    SET OnlineHours = OnlineHours + datediff(hour, ConnectTM, getdate())
    WHERE memb___id = @memb___id
    END
    GO

    quando rodo a

    USE [MuOnline]
    GO
    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)
    Declare @ConnectStat tinyint
    Declare @OnlineHours real
    Set @ConnectStat = 0
    Set @find_id = 'NOT'
    select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON memb___id = memb___id
    where I.memb___id = @memb___id
    if( @find_id <> 'NOT' )
    begin
    Update MEMB_STAT SET ConnectStat = @ConnectStat, DisConnectTM = getdate(), OnlineHours = OnlineHours + datediff(hour, ConnectTM, getdate()) where memb___id = @memb___id

    SELECT @OnlineHours = OnlineHours FROM MEMB_STAT WHERE memb___id = @memb___id

    Update MEMB_INFO SET gold = gold+(@OnlineHours * 2) WHERE memb___id = @memb___id and @OnlineHours >= '1'

    Update MEMB_STAT SET OnlineHours = 0 WHERE memb___id = @memb___id

    end
    end
    GO

    da error, alguém sabe como resolver ?

    ---------- Post added at 02:10 AM ---------- Previous post was at 02:06 AM ----------

    erro
    Server: Msg 446, Level 16, State 9, Procedure WZ_DISCONNECT_MEMB, Line 11
    Cannot resolve collation conflict for equal to operation.

  2. #2


    Avatar de OgocX
    Data de Ingresso
    Jun 2011
    Localização
    minha casa
    Posts
    344
    Agradecido
    156
    Agradeceu
    96
    Peso da Avaliação
    10

    Padrão

    cara você já parou para pensar que está utilizando 2 métodos para conta a hora do player online? talvez o problema seja este... ou você utiliza 1 ou utiliza o outro mano
    Fox Mu Team: Hidden Content

  3. #3

    Avatar de Bortolini
    Data de Ingresso
    Nov 2012
    Localização
    Jundiai
    Posts
    189
    Agradecido
    32
    Agradeceu
    24
    Peso da Avaliação
    7

    Padrão

    ja penso em, que 1 conta as horas online e o outro da o premio ? ou sei la posso ta errado.

  4. #4


    Avatar de OgocX
    Data de Ingresso
    Jun 2011
    Localização
    minha casa
    Posts
    344
    Agradecido
    156
    Agradeceu
    96
    Peso da Avaliação
    10

    Padrão

    não pensei porque a resposta está aqui:

    Update MEMB_STAT SET ConnectStat = @ConnectStat, DisConnectTM = getdate(), OnlineHours = OnlineHours + datediff(hour, ConnectTM, getdate()) where memb___id = @memb___id

    isso é na procedure...

    faz o seguinte remove isso da procedure e tenta rodar... vai que funciona


    só para complementar:

    SET OnlineHours = OnlineHours + datediff(hour, ConnectTM, getdate())
    WHERE memb___id = @memb___id
    < isso é na trigger então porque fazer essa função duas vezes?
    Fox Mu Team: Hidden Content

  5. #5

    Avatar de Bortolini
    Data de Ingresso
    Nov 2012
    Localização
    Jundiai
    Posts
    189
    Agradecido
    32
    Agradeceu
    24
    Peso da Avaliação
    7

    Padrão

    assim funcionará ?
    USE [MuOnline]
    GO
    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)
    Declare @ConnectStat tinyint
    Declare @OnlineHours real
    Set @ConnectStat = 0
    Set @find_id = 'NOT'
    select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON memb___id = memb___id
    where I.memb___id = @memb___id
    if( @find_id <> 'NOT' )
    begin

    SELECT @OnlineHours = OnlineHours FROM MEMB_STAT WHERE memb___id = @memb___id

    Update MEMB_INFO SET gold = gold+(@OnlineHours * 2) WHERE memb___id = @memb___id and @OnlineHours >= '1'

    Update MEMB_STAT SET OnlineHours = 0 WHERE memb___id = @memb___id

    end
    end
    GO

  6. #6


    Avatar de OgocX
    Data de Ingresso
    Jun 2011
    Localização
    minha casa
    Posts
    344
    Agradecido
    156
    Agradeceu
    96
    Peso da Avaliação
    10

    Padrão

    bom creio eu que sim recomendo você fazer um backup de sua DB pois não sei quem fez essa procedure mais ao ver aqui vejo que ela está boa porém recomendo que faça vários testes antes de soltar para players etc...
    Fox Mu Team: Hidden Content

  7. #7

    Avatar de Bortolini
    Data de Ingresso
    Nov 2012
    Localização
    Jundiai
    Posts
    189
    Agradecido
    32
    Agradeceu
    24
    Peso da Avaliação
    7

    Padrão

    eu fiz aqui e não deu certo ainda continua dando error

  8. #8


    Avatar de OgocX
    Data de Ingresso
    Jun 2011
    Localização
    minha casa
    Posts
    344
    Agradecido
    156
    Agradeceu
    96
    Peso da Avaliação
    10

    Padrão

    faz o seguinte então roda assim:
    USE [MuOnline]
    GO
    DROP PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
    GO

    depois

    USE [MuOnline]
    GO
    CREATE PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
    @memb___id varchar(10)
    AS
    Begin
    set nocount on
    Declare @find_id varchar(10)
    Declare @ConnectStat tinyint
    Declare @OnlineHours real
    Set @ConnectStat = 0
    Set @find_id = 'NOT'
    select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON memb___id = memb___id
    where I.memb___id = @memb___id
    if( @find_id <> 'NOT' )
    begin

    SELECT @OnlineHours = OnlineHours FROM MEMB_STAT WHERE memb___id = @memb___id

    Update MEMB_INFO SET gold = gold+(@OnlineHours * 2) WHERE memb___id = @memb___id and @OnlineHours >= '1'

    Update MEMB_STAT SET OnlineHours = 0 WHERE memb___id = @memb___id

    end
    end
    GO

    e veja se na MEMB_STAT veja se a table OnlineHours está criada int 0
    Fox Mu Team: Hidden Content

  9. #9

    Avatar de Bortolini
    Data de Ingresso
    Nov 2012
    Localização
    Jundiai
    Posts
    189
    Agradecido
    32
    Agradeceu
    24
    Peso da Avaliação
    7

    Padrão

    TA DANDO ERROR
    Server: Msg 209, Level 16, State 1, Procedure WZ_DISCONNECT_MEMB, Line 11
    Ambiguous column name 'memb___id'.
    Server: Msg 209, Level 16, State 1, Procedure WZ_DISCONNECT_MEMB, Line 11
    Ambiguous column name 'memb___id'.

  10. #10


    Avatar de OgocX
    Data de Ingresso
    Jun 2011
    Localização
    minha casa
    Posts
    344
    Agradecido
    156
    Agradeceu
    96
    Peso da Avaliação
    10

    Padrão

    USE [MuOnline]
    GO
    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)
    Declare @ConnectStat tinyint
    Declare @OnlineHours real
    Set @ConnectStat = 0
    begin

    SELECT @OnlineHours = OnlineHours FROM MEMB_STAT WHERE memb___id = @memb___id

    Update MEMB_INFO SET gold = gold+(@OnlineHours * 2) WHERE memb___id = @memb___id and @OnlineHours >= '1'

    Update MEMB_STAT SET OnlineHours = 0 WHERE memb___id = @memb___id

    end
    end
    GO

    Tenta ae acabei de usar aqui no meu SQL e foi de boa!


    Caso n resolve converse comigo por MP antes que isso vire 1 bate papo
    Fox Mu Team: Hidden Content

 

 
Página 1 de 2 12 ÚltimoÚltimo

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| Ranking Horas Online
    Por KaKaRoToX no fórum Dúvidas
    Respostas: 3
    Último Post: 09-02-2015, 11:30 AM
  2. |Jobs/Query| Gold por horas online
    Por crazy_digital no fórum Jobs e Querys
    Respostas: 17
    Último Post: 01-06-2013, 02:43 PM
  3. |Resolvido| Gold Por Tempo Online MU S4.
    Por FlavioBarreto no fórum Tópicos Resolvidos
    Respostas: 3
    Último Post: 30-01-2013, 08:55 AM
  4. |Dúvida| Dar Gold aos online
    Por pavil no fórum Dúvidas|Pedidos
    Respostas: 0
    Último Post: 18-08-2012, 12:51 PM
  5. |Desenvolvimento| Troca de Horas Online por Gold ou cash
    Por Prøjë¢T no fórum Downloads
    Respostas: 16
    Último Post: 13-08-2011, 03:20 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
  •