|
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE TRIGGER [dbo].[clear_copyitems] ON
[dbo].[warehouse] FOR UPDATE AS BEGIN
IF UPDATE(items) BEGIN DECLARE @al_acid
varchar(10) DECLARE @al_name varchar(10)
DECLARE @whItems AS binary(1200) DECLARE @bdItems AS
binary(760)
DECLARE @bItem AS binary(1) DECLARE @wItem AS binary(1)
DECLARE @bItemId AS binary(4) DECLARE @WItemId AS
binary(4)
DECLARE @i AS int DECLARE @ii AS int
DECLARE @find AS int
SET @find=0
SELECT @al_acid=inserted.accountid,@whItems=inserted.items
FROM inserted
SELECT @al_name=GameIDC FROM AccountCharacter WHERE
id=@al_acid SELECT @bdItems=inventory FROM character WHERE
accountid=@al_acid AND name=@al_name
SET @i=0 WHILE @i<120 BEGIN SET
@wItem=SUBSTRING(@whItems,@i*10+1,1) SET
@wItemId=SUBSTRING(@whItems,@i*10+4,4)
IF @wItem<>0xFF AND @wItemId<>0x00000000 AND
@wItem IS NOT NULL AND @wItemId IS NOT NULL BEGIN SET @ii=0 WHILE
@ii<76 BEGIN SET @bItem=SUBSTRING(@bdItems,@ii*10+1,1) SET
@bItemId=SUBSTRING(@bdItems,@ii*10+4,4) IF @bItem<>0xFF AND
@bItemId<>0x00000000 BEGIN IF @bItem=@wItem AND
@bItemId=@wItemId BEGIN SET
@whitems=SUBSTRING(@whitems,1,@i*10)+0xFFFFFFFFFFFFFFFFFFFF+SUBSTRING(@whitems,(1+@i)*10+1,(76-1-@i)*10) SET
@find=1 SET @ii=76 END SET @ii=@ii+1 END END
SET @i=@i+1 END END IF @find=1 BEGIN UPDATE
warehouse SET items=@whitems WHERE accountid=@al_acid END
END END GO SET QUOTED_IDENTIFIER OFF
GO SET ANSI_NULLS ON GO
|