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

Alpha Servers
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.099
    Agradecido
    2519
    Agradeceu
    492
    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
    31
    Posts
    353
    Agradecido
    39
    Agradeceu
    27
    Peso da Avaliação
    16

    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
    30
    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
    31
    Posts
    353
    Agradecido
    39
    Agradeceu
    27
    Peso da Avaliação
    16

    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
    34
    Posts
    137
    Agradecido
    44
    Agradeceu
    33
    Peso da Avaliação
    13

    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
    31
    Posts
    353
    Agradecido
    39
    Agradeceu
    27
    Peso da Avaliação
    16

    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
    343
    Agradecido
    144
    Agradeceu
    106
    Peso da Avaliação
    17

    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
    33
    Posts
    290
    Agradecido
    260
    Agradeceu
    136
    Peso da Avaliação
    15

    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.099
    Agradecido
    2519
    Agradeceu
    492
    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
    30
    Posts
    59
    Agradecido
    3
    Agradeceu
    3
    Peso da Avaliação
    13

    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
  •