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 Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.249
    Agradecido
    2002
    Agradeceu
    533
    Peso da Avaliação
    30

    Padrão Query para dar bônus VIP a todas as contas - MUSITE

    Tive a necessidade de dar bônus de vip a players do meu servidor, então fiz a query meio que as pressas...
    Tbm sei que não tem uma ferramenta que faz isso ainda, então vou liberar pra vocês.

    Que fique claro uma coisa: A QUERY FUNCIONA.

    Configurações do MEU SQL:

    VIPS estão na tabela MEMB_INFO
    Colunas PADRÕES, mas na MEMB_INFO, repito:

    VIP
    DateBegin
    DateEnd
    DateEndInteger

    Não me responsabilizo por uso incorreto.
    O script está todo comentado, se tiver um mínimo de conhecimento e paciência para ler, saberá como usar.

    É isso, bom proveito.

    Código:
    -- SCRIPT CRIADO POR
    -- RENATO VALER
    -- 19/11/2012
    -- 01:00 AM
    
    /* DECLARANDO VARIÁVEIS */
    
    DECLARE @TEMPO_VIP int; -- NÃO MEXA AQUI
    DECLARE @VIP_TOTAL int; -- NÃO MEXA AQUI
    DECLARE @BONUS_VIP int; -- NÃO MEXA AQUI
    DECLARE @VIP_FOR_ACC_FREE int; -- NÃO MEXA AQUI
    DECLARE @LOGINS varchar(12); -- NÃO MEXA AQUI
    
    /************************************************/
    /*			INÍCIO DAS CONFIGURAÇÕES			*/
    /************************************************/
    
    
    /* DEFININDO DIAS DE VIP A SER DADO COMO BÔNUS */
    
    SET @BONUS_VIP = 2; -- DIAS DE VIP A SER DADO COMO BÔNUS
    
    /* DEFININDO TIPO DE VIP A SER DADO PARA CONTAS FREE*/
    
    SET @VIP_FOR_ACC_FREE = 2; -- TIPO DE VIP A SER DADO PARA CONTAS FREE
    
    
    /************************************************/
    /*				FIM DAS CONFIGURAÇÕES			*/
    /************************************************/
    
    /* DECLARANDO CURSOR DE CONTAS VIP */
    DECLARE C_VIP CURSOR FOR -- NÃO MEXA AQUI
    
    /* LISTANDO LOGINS VIP */
    SELECT memb___id FROM [dbo].[Memb_Info] WHERE VIP > 0 -- NÃO MEXA AQUI
    
    OPEN C_VIP; -- NÃO MEXA AQUI
    FETCH NEXT FROM C_VIP INTO @LOGINS -- NÃO MEXA AQUI
    WHILE(@@FETCH_STATUS = 0)BEGIN -- NÃO MEXA AQUI
    
    /* SELECIONANDO TEMPO VIP RESTANTE DE CADA LOGIN */
    SET @TEMPO_VIP = (SELECT DATEDIFF(day, GETDATE(), DATEADD(s, CAST([dateend] as int), '19700101'))  -- NÃO MEXA AQUI
    as [diasRestantes] FROM [dbo].[MEMB_INFO] WHERE	[memb___id] = @LOGINS); -- NÃO MEXA AQUI
    
    /* EXECUTANDO CÁLCULO */
    SET @VIP_TOTAL = @TEMPO_VIP+@BONUS_VIP; -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP */
    UPDATE [dbo].[MEMB_INFO] SET [dateEnd] = DATEDIFF(s, '19700101', GETDATE() + @VIP_TOTAL) WHERE	[memb___id] = @LOGINS -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP EM NÚMEROS INTEIROS */
    UPDATE [dbo].[MEMB_INFO] SET [dateEndInteger] = [dateEndInteger]+@VIP_TOTAL WHERE [memb___id] = @LOGINS -- NÃO MEXA AQUI
    
    FETCH NEXT FROM C_VIP INTO @LOGINS; -- NÃO MEXA AQUI
    END; -- NÃO MEXA AQUI
    CLOSE C_VIP; -- NÃO MEXA AQUI
    DEALLOCATE C_VIP; -- NÃO MEXA AQUI
    
    
    /* DECLARANDO CURSOR DE CONTAS FREE */
    DECLARE C_FREE CURSOR FOR -- NÃO MEXA AQUI
    
    /* SELECIONANDO LOGINS DAS CONTAS FREE */
    SELECT memb___id FROM [dbo].[Memb_Info] WHERE VIP = 0 -- NÃO MEXA AQUI
    
    /* INICIANDO CURSOR DE CONTAS FREE */
    OPEN C_FREE; -- NÃO MEXA AQUI
    FETCH NEXT FROM C_FREE INTO @LOGINS -- NÃO MEXA AQUI
    WHILE(@@FETCH_STATUS = 0)BEGIN -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE INÍCIO DO VIP */
    UPDATE [dbo].[MEMB_INFO] SET [dateBegin] = DATEDIFF(s, '19700101', GETDATE()) WHERE	[memb___id] = @LOGINS  -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP */
    UPDATE [dbo].[MEMB_INFO] SET [dateEnd] = DATEDIFF(s, '19700101', GETDATE() + @BONUS_VIP) WHERE [memb___id] = @LOGINS -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP EM NÚMEROS INTEIROS */
    UPDATE [dbo].[MEMB_INFO] SET [dateEndInteger] = @BONUS_VIP, [VIP] = @VIP_FOR_ACC_FREE WHERE [memb___id] = @LOGINS -- NÃO MEXA AQUI
    
    /* FINALIZANDO CURSOR DE CONTAS FREE */
    FETCH NEXT FROM C_FREE INTO @LOGINS; -- NÃO MEXA AQUI
    END; -- NÃO MEXA AQUI
    CLOSE C_FREE; -- NÃO MEXA AQUI
    DEALLOCATE C_FREE; -- NÃO MEXA AQUI
    
    
    /* FIM DO SCRIPT */

    USA AS CONFIGURAÇÕES ORIGINAIS DO DALDEGAM (DB WEBSITE)?


    Código para quem usa a configuração padrão do daldegam, ISTO É:

    Código PHP:
    $TABLES_CONFIGS['WEBVIPS'] = array("database" => DATABASE//webSite || MuOnline 
                                       
    "table" => "webVips"//webVips || MEMB_INFO 
                                       
    "columnUsername" => "username"//username || memb___id 
                                       
    "columnType" => "type"//type || vip 
                                       
    "columnDateBegin" => "dateBegin",  
                                       
    "columnDateEnd" => "dateEnd"
                                       
    "columnDateEndInteger" => "dateEndInteger"); 
    Código:
    -- SCRIPT CRIADO POR
    -- RENATO VALER
    -- 19/11/2012
    -- 01:00 AM
    
    /* DECLARANDO VARIÁVEIS */
    
    DECLARE @TEMPO_VIP int; -- NÃO MEXA AQUI
    DECLARE @VIP_TOTAL int; -- NÃO MEXA AQUI
    DECLARE @BONUS_VIP int; -- NÃO MEXA AQUI
    DECLARE @VIP_FOR_ACC_FREE int; -- NÃO MEXA AQUI
    DECLARE @LOGINS varchar(12); -- NÃO MEXA AQUI
    
    /************************************************/
    /*			INÍCIO DAS CONFIGURAÇÕES			*/
    /************************************************/
    
    
    /* DEFININDO DIAS DE VIP A SER DADO COMO BÔNUS */
    
    SET @BONUS_VIP = 2; -- DIAS DE VIP A SER DADO COMO BÔNUS
    
    /* DEFININDO TIPO DE VIP A SER DADO PARA CONTAS FREE*/
    
    SET @VIP_FOR_ACC_FREE = 2; -- TIPO DE VIP A SER DADO PARA CONTAS FREE
    
    
    /************************************************/
    /*				FIM DAS CONFIGURAÇÕES			*/
    /************************************************/
    
    /* DECLARANDO CURSOR DE CONTAS VIP */
    DECLARE C_VIP CURSOR FOR -- NÃO MEXA AQUI
    
    /* LISTANDO LOGINS VIP */
    SELECT username FROM [dbo].[webVips] WHERE type > 0 -- NÃO MEXA AQUI
    
    OPEN C_VIP; -- NÃO MEXA AQUI
    FETCH NEXT FROM C_VIP INTO @LOGINS -- NÃO MEXA AQUI
    WHILE(@@FETCH_STATUS = 0)BEGIN -- NÃO MEXA AQUI
    
    /* SELECIONANDO TEMPO VIP RESTANTE DE CADA LOGIN */
    SET @TEMPO_VIP = (SELECT DATEDIFF(day, GETDATE(), DATEADD(s, CAST([dateend] as int), '19700101'))  -- NÃO MEXA AQUI
    as [diasRestantes] FROM [dbo].[webVips] WHERE	[username] = @LOGINS); -- NÃO MEXA AQUI
    
    /* EXECUTANDO CÁLCULO */
    SET @VIP_TOTAL = @TEMPO_VIP+@BONUS_VIP; -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP */
    UPDATE [dbo].[webVips] SET [dateEnd] = DATEDIFF(s, '19700101', GETDATE() + @VIP_TOTAL) WHERE	[username] = @LOGINS -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP EM NÚMEROS INTEIROS */
    UPDATE [dbo].[webVips] SET [dateEndInteger] = [dateEndInteger]+@VIP_TOTAL WHERE [username] = @LOGINS -- NÃO MEXA AQUI
    
    FETCH NEXT FROM C_VIP INTO @LOGINS; -- NÃO MEXA AQUI
    END; -- NÃO MEXA AQUI
    CLOSE C_VIP; -- NÃO MEXA AQUI
    DEALLOCATE C_VIP; -- NÃO MEXA AQUI
    
    
    /* DECLARANDO CURSOR DE CONTAS FREE */
    DECLARE C_FREE CURSOR FOR -- NÃO MEXA AQUI
    
    /* SELECIONANDO LOGINS DAS CONTAS FREE */
    SELECT username FROM [dbo].[webVips] WHERE type = 0 -- NÃO MEXA AQUI
    
    /* INICIANDO CURSOR DE CONTAS FREE */
    OPEN C_FREE; -- NÃO MEXA AQUI
    FETCH NEXT FROM C_FREE INTO @LOGINS -- NÃO MEXA AQUI
    WHILE(@@FETCH_STATUS = 0)BEGIN -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE INÍCIO DO VIP */
    UPDATE [dbo].[webVips] SET [dateBegin] = DATEDIFF(s, '19700101', GETDATE()) WHERE	[username] = @LOGINS  -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP */
    UPDATE [dbo].[webVips] SET [dateEnd] = DATEDIFF(s, '19700101', GETDATE() + @BONUS_VIP) WHERE [username] = @LOGINS -- NÃO MEXA AQUI
    
    /* ATUALIZANDO DATA DE FIM DO VIP EM NÚMEROS INTEIROS  E TORNANDO A CONTA VIP*/
    UPDATE [dbo].[webVips] SET [dateEndInteger] = @BONUS_VIP, [type] = @VIP_FOR_ACC_FREE WHERE [username] = @LOGINS -- NÃO MEXA AQUI
    
    
    /* FINALIZANDO CURSOR DE CONTAS FREE */
    FETCH NEXT FROM C_FREE INTO @LOGINS; -- NÃO MEXA AQUI
    END; -- NÃO MEXA AQUI
    CLOSE C_FREE; -- NÃO MEXA AQUI
    DEALLOCATE C_FREE; -- NÃO MEXA AQUI
    
    /* FIM DO SCRIPT */
    Última edição por Renato; 09-02-2014 às 10:27 AM.

  2. Os Seguintes 3 Usuários Agradeceram você Renato Por este Post Útil:


  3. #2

    Avatar de C. Henrique
    Data de Ingresso
    Jan 2012
    Localização
    Vitoria
    Idade
    25
    Posts
    505
    Agradecido
    45
    Agradeceu
    32
    Peso da Avaliação
    11

    Padrão

    está dando esse erro.

    Msg 207, Level 16, State 1, Line 0
    Invalid column name 'dateBegin'.


    oque pode ser ?


    My PC Specs:

    Processador: Intel® Core™ i7-990X Extreme Edition @ 3.46 GHz.
    Memoria Ram: 4GB Corsair.
    Placa Video: EVGA Geforce GTX 660Ti 2GB.
    Placa Mae: Intel DX79TO Extreme
    CPU cooler: Xigmatek Loki SD963.
    Fonte Corsair ATX 750W HX Series - CMPSU-750HX.
    Case: NZXT M59.
    Monitor LCD LG : 22 Polegadas

    Hidden Content

  4. #3

    Avatar de Notrak
    Data de Ingresso
    Aug 2013
    Localização
    Senador Canedo - GO
    Posts
    31
    Agradecido
    6
    Agradeceu
    4
    Peso da Avaliação
    0

    Padrão

    Sua tabela memb_info não possui a coluna 'dateBegin'.

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


  6. #4

    Avatar de C. Henrique
    Data de Ingresso
    Jan 2012
    Localização
    Vitoria
    Idade
    25
    Posts
    505
    Agradecido
    45
    Agradeceu
    32
    Peso da Avaliação
    11

    Padrão

    vou criar então.
    qual a data type pra ela ?

    marca allow nulls ?


    My PC Specs:

    Processador: Intel® Core™ i7-990X Extreme Edition @ 3.46 GHz.
    Memoria Ram: 4GB Corsair.
    Placa Video: EVGA Geforce GTX 660Ti 2GB.
    Placa Mae: Intel DX79TO Extreme
    CPU cooler: Xigmatek Loki SD963.
    Fonte Corsair ATX 750W HX Series - CMPSU-750HX.
    Case: NZXT M59.
    Monitor LCD LG : 22 Polegadas

    Hidden Content

  7. #5

    Avatar de lockzao
    Data de Ingresso
    Oct 2012
    Localização
    .
    Idade
    28
    Posts
    156
    Agradecido
    46
    Agradeceu
    37
    Peso da Avaliação
    7

    Padrão

    Não marca allow nulls cara.

    good luck

  8. #6

    Avatar de C. Henrique
    Data de Ingresso
    Jan 2012
    Localização
    Vitoria
    Idade
    25
    Posts
    505
    Agradecido
    45
    Agradeceu
    32
    Peso da Avaliação
    11

    Padrão

    e a data type ??
    poem qual?


    My PC Specs:

    Processador: Intel® Core™ i7-990X Extreme Edition @ 3.46 GHz.
    Memoria Ram: 4GB Corsair.
    Placa Video: EVGA Geforce GTX 660Ti 2GB.
    Placa Mae: Intel DX79TO Extreme
    CPU cooler: Xigmatek Loki SD963.
    Fonte Corsair ATX 750W HX Series - CMPSU-750HX.
    Case: NZXT M59.
    Monitor LCD LG : 22 Polegadas

    Hidden Content

  9. #7

    Avatar de xiscoss
    Data de Ingresso
    Aug 2010
    Localização
    Santa Catarina
    Posts
    360
    Agradecido
    146
    Agradeceu
    110
    Peso da Avaliação
    11

    Padrão

    Poem datetime, algo assim...

  10. O Seguinte Usuário Agradeceu xiscoss Por este Post Útil:


  11. #8

    Avatar de BeoWulf
    Data de Ingresso
    May 2011
    Localização
    Rio de Janeiro
    Idade
    27
    Posts
    389
    Agradecido
    275
    Agradeceu
    144
    Peso da Avaliação
    10

    Padrão

    O próprio Leandro Daldegam já postou página de dar vips para todas as contas
    Allahu Akbar

    الجميع سوف يموت هذا القرف !

    Acesse: Hidden Content

    Servidor Hard de Mu Online

  12. #9



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.249
    Agradecido
    2002
    Agradeceu
    533
    Peso da Avaliação
    30

    Padrão

    Mas a dele é em PHP e dependendo da quantidade de contas, o script explode o tempo limite de execução, ai dá merda.

  13. #10

    Avatar de ebtir
    Data de Ingresso
    Feb 2012
    Localização
    na minha casa
    Idade
    24
    Posts
    61
    Agradecido
    4
    Agradeceu
    4
    Peso da Avaliação
    6

    Padrão

    Sei que o tópico é um pouco antigo, realmente a query funciona, só que ela só da vip para usuários "free", você tem alguma que dê mais "X" dias de "vip" para usuários que já são vip? Exemplo: Eu sou usuário VipGold, tenho 2 dias de Vip, eu quero dar X dias de vip para esse usuário, obrigado!

 

 
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. |Pedido| Query de Adicionar resets a todas as contas
    Por KaKaRoToX no fórum Jobs e Querys
    Respostas: 3
    Último Post: 30-11-2013, 02:21 AM
  2. |Pedido| Query , dar vip a todas as contas.
    Por Brunno13 no fórum Pedidos
    Respostas: 10
    Último Post: 27-11-2013, 12:42 PM
  3. |Pedido| Quey adiciona vip para todas as contas.
    Por mudestroyer no fórum Pedidos
    Respostas: 5
    Último Post: 22-02-2013, 03:15 PM
  4. |Resolvido| Query para premiar todas contas com VIP !
    Por MuImperio no fórum Tópicos Resolvidos
    Respostas: 0
    Último Post: 26-01-2013, 12:03 PM
  5. |Pedido| Query para deletar todas as guilds de um servidor
    Por StaticX no fórum Pedidos
    Respostas: 1
    Último Post: 26-07-2012, 11:59 AM

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
  •