Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Procedure Anti Dup Ban


 Compartilhar

Posts Recomendados

Use muonline

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

 

Créditos:

yBatata

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.