1299 Private Serverlarda, genellikle +8 ve üstü itemler tercih ediliyor.. Fakat DB'nizde +9 ve +10 itemler olup bunların +'sını 8'e çekmek istiyorsanız.. Aşağıda tam size göre bir paylaşım var .

Aşağıdaki Kodlar Tamamen AKUMA'ya aittir. Kodların amacı;

  • Bu Procedur +10 İtemleri +8 / +5 Uniqueleri +3 e veya +1 e Çekmenize yarar Girişte Tarama Yapar.
Denenmiştir , Hiçbir Sakıncası , Hiçbir BUGU Yoktur!

İlk Once ITEM Tablomuzda biraz değişiklik yapalım , +10 itemler +0 yazıyor , Onları +10 olarak değiştirelim.


Kod:
DECLARE @Num int,@strName varchar(100),@ProcessCount int
/*
Author : Ceribrio
*/
DECLARE CRS_ITEM_TABLE CURSOR FOR
SELECT Num,strName FROM ITEM WHERE strName LIKE '%(+0)%' AND Kind <> 91 AND Kind <> 92 AND Kind <> 93 AND Kind <> 94

SET @ProcessCount = 0

OPEN CRS_ITEM_TABLE

FETCH NEXT FROM CRS_ITEM_TABLE INTO @Num,@strName

WHILE (@@FETCH_STATUS = 0)
BEGIN

DECLARE @ItemName varchar(100),@ItemNum int,@RealItemName varchar(100),@CheckItemName varchar(100),@NewItemName varchar(100),@FindCount int

SELECT @ItemNum = Num, @ItemName = strName FROM ITEM WHERE Num = @Num - 2

SELECT @FindCount = Count(Num) FROM ITEM WHERE Num = @ItemNum

IF @FindCount <> 0
BEGIN
SET @RealItemName = RTRIM(LTRIM(REPLACE(@strName,'(+0)','')))
SET @CheckItemName = RTRIM(LTRIM(REPLACE(@ItemName,'(+8)','')))

IF @RealItemName = @CheckItemName
BEGIN
SET @NewItemName = @RealItemName + ' (+10)'
UPDATE ITEM SET strName = @NewItemName WHERE Num = @Num
SET @ProcessCount = @ProcessCount + 1
END
END

FETCH NEXT FROM CRS_ITEM_TABLE INTO @Num,@strName
END

CLOSE CRS_ITEM_TABLE

DEALLOCATE CRS_ITEM_TABLE

PRINT 'Değiştirilen İtem Sayısı : ' + RTRIM(LTRIM(STR(@ProcessCount)))
Bu kodu Query'den çalıstırın ve bekleyin ... 5- 10 Dakika ve daha fazla sürebilir ...


Eklenecek tablolarımız :
Kod:
/****** Object:  Table [dbo].[RESULT_CHECK_USER_ITEMS]    Script Date: 07/12/2008 14:12:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[RESULT_CHECK_USER_ITEMS](
[Num] [int] NULL,
[stacksize] [smallint] NULL,
[Durability] [smallint] NULL,
[strUserId] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[InventorySlot] [int] NULL,
[ItemName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[extname] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
Kod:
/****** Object:  Table [dbo].[RESULT_CHECK_USER_ITEMS_LOGS]    Script Date: 07/12/2008 14:13:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[RESULT_CHECK_USER_ITEMS_LOGS](
[strUserId] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[OldItemNum] [int] NULL,
[OldItemName] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[OptimizedItemNum] [int] NULL,
[OptimizedItemName] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
Editlenecek Tablo ;
Kod:
Userdata'yı Desing Table diyerek açın ve , En Son'a bir Satır Ekleyin , İsmi UserStatus olsun , int Olacak ... Nulls İşaretsiz olacak ! ve Default değeri 0 olacak !
Eklenecek Prosedürler :

Eğer +4 +5 Takıların , +1 Olmasını istiyorsanız Bunu Ekleyin ! Bir Alttakini eklemeyin !

Kod:
CREATE PROCEDURE [dbo].[CHECK_USER_ITEMS]
(@strUserID varchar(50))
AS

/*
Author : Ceribrio
*/

BEGIN
DECLARE @Authority int,@UserStatus int

SELECT @Authority = Authority,@UserStatus = UserStatus FROM USERDATA WHERE strUserID = @strUserID

IF (@Authority <> 0) OR (@UserStatus <> 1)
BEGIN

TRUNCATE TABLE RESULT_CHECK_USER_ITEMS
EXEC CHECK_FIND_USER_ITEMS @strUserID

DECLARE @Num int,@ItemName varchar(100),@InventorySlotNumber int

DECLARE CRS_RESULT_CHECK_USER_ITEMS CURSOR FOR
SELECT Num,ItemName,InventorySlot FROM RESULT_CHECK_USER_ITEMS WHERE strUserID = @strUserID AND ItemName <> 'Free Slot'

OPEN CRS_RESULT_CHECK_USER_ITEMS

FETCH NEXT FROM CRS_RESULT_CHECK_USER_ITEMS INTO @Num, @ItemName, @InventorySlotNumber
WHILE (@@FETCH_STATUS = 0)
BEGIN

DECLARE @ItemStrName varchar(100),@ItemNum int,@NewItemNum int,@Kind tinyint,@ItemType int,@CheckNum int

SET @ItemStrName = ''
SET @ItemNum = 0
SET @NewItemNum = 0
SET @Kind = 0
SET @ItemType = 0
SET @CheckNum = 0

IF CHARINDEX('+10',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind FROM ITEM WHERE Num = @Num
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 2
IF (@Kind != 91) OR (@Kind != 92) OR (@Kind != 93) OR (@Kind != 94)
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum,ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
ELSE IF CHARINDEX('+9',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind FROM ITEM WHERE Num = @Num
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 1
IF (@Kind != 91) OR (@Kind != 92) OR (@Kind != 93) OR (@Kind != 94)
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum,ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
ELSE IF CHARINDEX('+5',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind,@ItemType = ItemType FROM ITEM WHERE Num = @Num
IF @Kind = 91 OR @Kind = 92 OR @Kind = 93 OR @Kind = 94
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
IF @ItemType = 4
BEGIN
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 4
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum, ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
END
ELSE IF CHARINDEX('+4',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind,@ItemType = ItemType FROM ITEM WHERE Num = @Num
IF @Kind = 91 OR @Kind = 92 OR @Kind = 93 OR @Kind = 94
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
IF @ItemType = 4
BEGIN
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 3
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum, ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
END
ELSE IF CHARINDEX('+3',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind,@ItemType = ItemType FROM ITEM WHERE Num = @Num
IF @Kind = 91 OR @Kind = 92 OR @Kind = 93 OR @Kind = 94
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
IF @ItemType = 4
BEGIN
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 2
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum, ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
END
ELSE IF CHARINDEX('+2',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind,@ItemType = ItemType FROM ITEM WHERE Num = @Num
IF @Kind = 91 OR @Kind = 92 OR @Kind = 93 OR @Kind = 94
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
IF @ItemType = 4
BEGIN
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 1
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum, ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
END

FETCH NEXT FROM CRS_RESULT_CHECK_USER_ITEMS INTO @Num, @ItemName, @InventorySlotNumber
END

CLOSE CRS_RESULT_CHECK_USER_ITEMS

DEALLOCATE CRS_RESULT_CHECK_USER_ITEMS

EXEC CHECK_ENCODE_USER_ITEMS @strUserID

END

END
Eğer +4 +5 takıların , +3 olmasını istiyorsanız Bunu Ekleyin Bir Üsttekini eklemeyin !

Kod:
CREATE PROCEDURE [dbo].[CHECK_USER_ITEMS]
(@strUserID varchar(50))
AS

/*
Author : Ceribrio
*/

BEGIN
DECLARE @Authority int,@UserStatus int

SELECT @Authority = Authority,@UserStatus = UserStatus FROM USERDATA WHERE strUserID = @strUserID

IF (@Authority <> 0) OR (@UserStatus <> 1)
BEGIN

TRUNCATE TABLE RESULT_CHECK_USER_ITEMS
EXEC CHECK_FIND_USER_ITEMS @strUserID

DECLARE @Num int,@ItemName varchar(100),@InventorySlotNumber int

DECLARE CRS_RESULT_CHECK_USER_ITEMS CURSOR FOR
SELECT Num,ItemName,InventorySlot FROM RESULT_CHECK_USER_ITEMS WHERE strUserID = @strUserID AND ItemName <> 'Free Slot'

OPEN CRS_RESULT_CHECK_USER_ITEMS

FETCH NEXT FROM CRS_RESULT_CHECK_USER_ITEMS INTO @Num, @ItemName, @InventorySlotNumber
WHILE (@@FETCH_STATUS = 0)
BEGIN

DECLARE @ItemStrName varchar(100),@ItemNum int,@NewItemNum int,@Kind tinyint,@ItemType int,@CheckNum int

SET @ItemStrName = ''
SET @ItemNum = 0
SET @NewItemNum = 0
SET @Kind = 0
SET @ItemType = 0
SET @CheckNum = 0

IF CHARINDEX('+10',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind FROM ITEM WHERE Num = @Num
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 2
IF (@Kind != 91) OR (@Kind != 92) OR (@Kind != 93) OR (@Kind != 94)
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum,ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
ELSE IF CHARINDEX('+9',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind FROM ITEM WHERE Num = @Num
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 1
IF (@Kind != 91) OR (@Kind != 92) OR (@Kind != 93) OR (@Kind != 94)
BEGIN
SELECT @CheckNum = COUNT(Num) FROM ITEM WHERE Num = @NewItemNum
IF @CheckNum <> 0
BEGIN
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum,ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
ELSE IF CHARINDEX('+5',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind,@ItemType = ItemType FROM ITEM WHERE Num = @Num
IF @Kind = 91 OR @Kind = 92 OR @Kind = 93 OR @Kind = 94
BEGIN
IF @ItemType = 4
BEGIN
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 4
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum, ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END
ELSE IF CHARINDEX('+4',@ItemName) <> 0
BEGIN
SELECT @ItemNum = Num,@Kind = Kind,@ItemType = ItemType FROM ITEM WHERE Num = @Num
IF @Kind = 91 OR @Kind = 92 OR @Kind = 93 OR @Kind = 94
BEGIN
IF @ItemType = 4
BEGIN
SELECT @ItemStrName = strName,@NewItemNum = Num FROM ITEM WHERE Num = @ItemNum - 3
UPDATE RESULT_CHECK_USER_ITEMS SET Num = @NewItemNum, ItemName = '# DÜZELTİLDİ : ' + RTRIM(LTRIM(@ItemStrName)) + ' #' WHERE ItemName = @ItemName AND InventorySlot = @InventorySlotNumber
INSERT INTO RESULT_CHECK_USER_ITEMS_LOGS VALUES (@strUserID,@Num,@ItemName,@NewItemNum,@ItemStrName)
END
END
END


FETCH NEXT FROM CRS_RESULT_CHECK_USER_ITEMS INTO @Num, @ItemName, @InventorySlotNumber
END

CLOSE CRS_RESULT_CHECK_USER_ITEMS

DEALLOCATE CRS_RESULT_CHECK_USER_ITEMS

EXEC CHECK_ENCODE_USER_ITEMS @strUserID

END

END
Kod:
CREATE procedure [dbo].[CHECK_ENCODE_USER_ITEMS]
@StrUserID varchar(30)
AS
DECLARE
@length int,
@row int,
@i int,
@Num int,
@pos int,
@dur int,
@dur1 int,
@ext int,
@StackSize1 int,
@strName varchar(30),
@strExtName varchar(30),
@CNum varbinary(4),
@cdur varchar(2),
@Source tinyint,
@NEWNum int,
@StackSize int,
@cstack varchar(2),
@InventorySlot int

set @InventorySlot=0
set @i = 14*0
set @length = 401

select @row=count( * ) from userdata where struserid=@StrUserID

if @row>0
begin


Select @Num=Num,
@dur = Durability,
@StackSize1 = stacksize,
@StrUserID = strUserID
From RESULT_CHECK_USER_ITEMS
Where strUserID = @StrUserID and InventorySlot=@InventorySlot

Set @CNum = Substring(cast(@Num as varbinary(4)), 4, 1) + Substring(cast(@Num as varbinary(4)), 3, 1) + Substring(cast(@Num as varbinary(4)), 2, 1) + Substring(cast(@Num as varbinary(4)), 1, 1)
Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))


update UserData set strItem = cast(cast(cast(@CNum as varchar(4)) + @Cdur + @Cstack as varchar(8)) as binary(400)) where strUserID = @strUserID


set @i=@i+8
set @InventorySlot=@InventorySlot+1



WHILE @InventorySlot < 50
Begin

Select @Num=Num,
@dur = Durability,
@StackSize1 = stacksize,
@StrUserID = strUserID
From RESULT_CHECK_USER_ITEMS
Where strUserID = @StrUserID and InventorySlot=@InventorySlot

Set @CNum = Substring(cast(@Num as varbinary(4)), 4, 1) + Substring(cast(@Num as varbinary(4)), 3, 1) + Substring(cast(@Num as varbinary(4)), 2, 1) + Substring(cast(@Num as varbinary(4)), 1, 1)
Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))


update UserData set strItem = cast( substring(strItem, 1, @i) + cast(cast(@CNum as varchar(4)) + @Cdur + @Cstack as varchar(8)) + substring(strItem, @i+8, 401-@i) as binary(400)) where strUserID = @strUserID


set @i=@i+8
set @InventorySlot=@InventorySlot+1

end
end
Kod:
CREATE procedure [dbo].[CHECK_FIND_USER_ITEMS]
@StrUserID varchar(30)
AS
DECLARE
@length int,
@i int,
@Num int,
@dur int,
@duar int,
@StackSize1 int,
@InventorySlot int,
@Row int,
@name varchar(100),
@extname varchar(100),
@ext int


set @i = 14*0+1
set @length = 401

select @row=count(*) from userdata where struserid=@StrUserID

delete from RESULT_CHECK_USER_ITEMS where struserid=@StrUserID

if @row>0
begin

WHILE @i < @length
Begin

Select @Num=cast(cast(substring(cast(substring(strItem, @i,4) as varbinary(4)), 4, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 3, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 2, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 1, 1) as varbinary(4)) as int),
@dur = cast(cast(cast( substring(strItem, @i+5, 1) as varbinary(1))+cast(substring(strItem, @i+4, 1) as varbinary(1)) as varbinary(2)) as int),
@StackSize1 = cast(cast(cast( substring(strItem, @i+7, 1) as varbinary(1))+cast(substring(strItem, @i+6, 1) as varbinary(1)) as varbinary(2)) as int),
@StrUserID = strUserID
From UserData
Where strUserID = @StrUserID


if @Num=0
begin
set @extname='Free Slot'
set @name='Free Slot'
end
else
begin
set @extname='Not Find'
set @name='Not Using'

select @extname=strName from item where Num=@Num

if @extname='Not Find'
begin

set @ext=-1
set @name='Not Find'

select @extname=strName,@ext=Slot from item where Num= cast(substring(cast(@Num as varchar(9)), 1, 6)+'000' as int) --cast(substring(cast(@Num as varbinary(4)),0,5) as int)*1000
if @ext>-1
begin
set @duar=-1
If @ext = 0
select @duar = Duration,@name=strName From item where Num = cast(substring(cast(@Num as varchar(9)), 7, 9) as int)
end
end
end

insert into RESULT_CHECK_USER_ITEMS (Num,stacksize,Durability,struserid,InventorySlot,ItemName,extname) values(@Num,@stacksize1,@dur,@StrUserID,(@i-1) / 8,@extname,@name )

set @i=@i+8

end
end
ve Queryden ÇalıstıRınız ;
Kod:
update userdata set UserStatus = '0'
Burada Her hangi bir charın UserStatus'u 1 yaparsanız, o charı kontrol etmeyecektir !
GM'leri zaten kontrol etmez ...

ve En SOn Olarak ,

LOAD_USER_DATA proc'unu açarak ,

Oto Master varsa Hemen Altına yok İse ,
Kod:
SELECT Nation, Race, Class, HairColor, Rank, Title, [Level], [Exp], Loyalty, Face, City, Knights, Fame,
Hp, Mp, Sp, Strong, Sta, Dex, Intel, Cha, Authority, Points, Gold, [Zone], Bind, PX, PZ, PY, dwTime, strSkill, strItem,strSerial, sQuestCount, strQuest, MannerPoint, LoyaltyMonthly
FROM USERDATA WHERE strUserId = @id
SET @nRet = @@RowCount
Bu Kodun hemen üstüne , Ekliyoruz !


Değiştirilen itemleri ; "RESULT_CHECK_USER_ITEMS_LOGS" Tablosundan gorebiliriz