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


HGIDC
Resultados 1 a 1 de 1
  1. #1

    Avatar de Cøłєridgє
    Data de Ingresso
    Mar 2010
    Localização
    Italia
    Posts
    786
    Agradecido
    1
    Peso da Avaliação
    21

    Lightbulb Auto Ban Em Quem Dupa Em Seu Server

    ANTES DE TUDO FAÇA UM BACKUP DE SUAS DB ANTES DE TESTAR ESSA QUERY !


    Alguns que testaram e deu zica no servidor bloqueando todas as contas, estou postanto porque " TESTEI " e funcionou perfeitamente, mais em outros deu problemas, na duvida faça um backup antes de testar, caso nao de certo so restaurar para o backup.


    Aki estão os passos,siga tudo certinho que não dará possiveis erros:

    1 - vá em Iniciar / Programas / Microsoft SQL Server / Query Analyzer

    2 - será aberto um recorrente que diz conectar ao SQL Server, ai você vai entrar com seu loguin e senha do sql.

    3- Após logar no sql,use a data base MuOnline e copie este texto

    if exists(select * from dbo.sysobjects where type='p' and name='WZ_GetItemSerial')
    drop procedure WZ_GetItemSerial
    go
    CREATE procedure WZ_GetItemSerial
    as
    BEGIN
    DECLARE @ItemSerial int
    set nocount on
    begin transaction
    update GameServerInfo set @ItemSerial = ItemCount = (case when ItemCount < 0x7effffff then ItemCount+1
    else 1
    end )
    if(@@error <> 0)
    begin
    rollback transaction
    select-1
    end
    else
    begin
    commit transaction
    select @ItemSerial
    end
    END

    GO
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_CheckSameID]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
    drop trigger [dbo].[trg_CheckSameID]
    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AllItemsLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[AllItemsLog]
    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CopyLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[CopyLog]
    GO

    CREATE TABLE [dbo].[AllItemsLog] (
    [items_id] [int] IDENTITY (1, 1) NOT NULL ,
    [items_type] [binary] (1) NOT NULL ,
    [items_serial] [binary] (4) NOT NULL ,
    [items_acid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[CopyLog] (
    [copy_id] [int] IDENTITY (1, 1) NOT NULL ,
    [copy_acid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [copy_whdata] [binary] (1200) NOT NULL ,
    [copy_date] [datetime] NOT NULL
    ) ON [PRIMARY]
    GO

    ALTER TABLE [dbo].[AllItemsLog] ADD
    CONSTRAINT [DF_CT_ITEM_item] DEFAULT (0) FOR [items_type],
    CONSTRAINT [DF_CT_ITEM_itemid] DEFAULT (0) FOR [items_serial],
    CONSTRAINT [DF_CT_ITEM_itemrole] DEFAULT ('\') FOR [items_acid]
    GO

    CREATE INDEX [IX_CT_ITEM] ON [dbo].[AllItemsLog]([items_type], [items_serial]) ON [PRIMARY]
    GO

    ALTER TABLE [dbo].[CopyLog] ADD
    CONSTRAINT [DF_CopyLog_copy_date] DEFAULT (getdate()) FOR [copy_date]
    GO


    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    CREATE TRIGGER [dbo].[trg_CheckSameID] ON [dbo].[character]
    FOR UPDATE
    AS
    BEGIN
    IF UPDATE(inventory)
    BEGIN
    SET NOCOUNT ON
    DECLARE
    @wh_acid varchar(10),
    @wh_data binary(1200),
    @wh_type binary(1),
    @wh_serial binary(4),

    @cr_user varchar(10),
    @cr_acid varchar(10),
    @cr_data binary(760),
    @cr_type binary(1),
    @cr_serial binary(4),

    @al_acid varchar(10),
    @j int,
    @k int,
    @find bit

    SELECT @cr_acid=i.accountid,
    @cr_data=i.inventory
    FROM inserted i

    SET @j=0
    SET @find=0

    WHILE @j<76 AND @cr_data IS NOT NULL
    BEGIN
    SET @cr_type=SUBSTRING(@cr_data,@j*10+1,1)
    SET @cr_serial=SUBSTRING(@cr_data,@j*10+4,4)
    IF @cr_type<>0xFF AND @cr_serial<>0x00000000
    BEGIN
    SELECT @al_acid=items_acid FROM allitemslog WHERE items_type=@cr_type AND items_serial=@cr_serial


    IF @al_acid IS NULL
    INSERT INTO allitemslog (items_type,items_serial,items_acid) VALUES (@cr_type,@cr_serial,@cr_acid)
    ELSE
    BEGIN
    UPDATE allitemslog SET items_acid=@cr_acid WHERE items_type=@cr_type AND items_serial=@cr_serial


    SELECT @wh_data=items FROM warehouse WHERE accountid=@al_acid

    SET @k=0
    WHILE @k<120 AND @wh_data IS NOT NULL
    BEGIN
    SET @wh_type=SUBSTRING(@wh_data,@k*10+1,1)
    SET @wh_serial=SUBSTRING(@wh_data,@k*10+4,4)
    IF @wh_type=@cr_type AND @wh_serial=@cr_serial
    SET @find=1
    SET @k=@k+1
    END
    END
    END
    SET @j=@j+1
    END
    IF @find=1
    BEGIN
    INSERT INTO copylog (copy_whdata,copy_acid,copy_date) VALUES (@wh_data,@al_acid,getdate())
    -- this is wer u can add more punishment like ban or lock characters
    UPDATE Character SET CtlCode=1 WHERE accountid=@al_acid
    END
    SET NOCOUNT OFF
    END
    END
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO
    DECLARE @al_acid char(50)
    set @al_acid = 'ASUS'
    UPDATE Character SET CtlCode=1 WHERE accountid=@al_acid
    go
    select * from AllItemsLog
    select * from CopyLog <----- copie até aki e siga o tutorial

    4- Presione F5 e depois Ctrl N

    5- Vai abrir 1 outra tela ,copie o texto abaixo

    select * from AllItemsLog
    select * from CopyLog

    6- De F5 e Ctrl N novamente e mais 1 vez vai abrir uma outra tela ,ai você ira colar o código abaixo !

    select * from CopyLog

    7- Presione F5 e está tudo pronto ,e em seguida feche todas as janelas abertas,salvando todos os logs onde você quiser

    Obs:Faça isso somente com player's online !

    Creditos: ViCtOr

    Espero que tenha ajudado !


    F.A.Q (Perguntas Freqüentes)

    Duvida: Quais Versões pode usar essa query?
    Resposta:TESTEI NA VERSÃO 97 e funcionou perfeitamente, soube que foi testada na 99 e 1.0 e funcionou normal mais não posso garantir.

    Duvida: E os itens do NPC que são serial 0000000000 vai banir os players?
    Resposta: Não da block injusto de itens comprados no NPC, podem ate dupar itens de NPC e não ser banido no automatico, mais que sentido teria dupar um item que e so comprar quantos quiser no NPC?

    Duvida: Caso eu tenha testado e não tenha ficado bom como eu tiro essa query ?
    Resposta: ^^ Não faço ideia ^^ por isso avisei bem GRANDE no inicio para fazer um backup antes.
    Última edição por Cøłєridgє; 14-07-2010 às 02:39 PM.

    Hidden Content Hidden Content -
    Sou melhor do que as pessoas pensam e pior do que elas imaginam ...

 

 

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. |Download| auto db bkp
    Por hadeslan no fórum Downloads
    Respostas: 1
    Último Post: 03-08-2017, 02:41 PM
  2. |Resolvido| Auto Reload no CS.exe
    Por egoe no fórum Tópicos resolvidos
    Respostas: 10
    Último Post: 03-04-2012, 04:18 PM
  3. |Tutorial| Auto Backup Db's.
    Por pablox no fórum Tutoriais
    Respostas: 8
    Último Post: 14-11-2010, 02:30 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
  •