ForumDATA
Would you like to react to this message? Create an account in a few clicks or log in to continue.

ForumDATA

ForumDATA Forum
 
AnasayfaAnasayfa  AramaArama  Latest imagesLatest images  Zayıflama Lida Fx15 ve Biber Hapı zlfvbhZayıflama Lida Fx15 ve Biber Hapı zlfvbh  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme

Aşağa gitmek 
2 posters
YazarMesaj
ADMİN
KoManyak Yönetim
KoManyak Yönetim
ADMİN


Takım Takım : 1
Ruh Hali Ruh Hali : 31
Mesaj Sayısı Mesaj Sayısı : 157
Doğum tarihi Doğum tarihi : 21/12/94
Kayıt tarihi Kayıt tarihi : 29/03/09
Yaş Yaş : 29
Nerden Nerden : Edirne
Lakap Lakap : Murphy

Cüzdan
Altın Altın: 21893114
Para Para: 93127124

[PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Empty
MesajKonu: [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme   [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Icon_minitimePtsi Tem. 06, 2009 9:00 am

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!


Başlayalım ;

İ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 : DeathRow
*/
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
Sayfa başına dön Aşağa gitmek
http://forumdata.web-rpg.org
ADMİN
KoManyak Yönetim
KoManyak Yönetim
ADMİN


Takım Takım : 1
Ruh Hali Ruh Hali : 31
Mesaj Sayısı Mesaj Sayısı : 157
Doğum tarihi Doğum tarihi : 21/12/94
Kayıt tarihi Kayıt tarihi : 29/03/09
Yaş Yaş : 29
Nerden Nerden : Edirne
Lakap Lakap : Murphy

Cüzdan
Altın Altın: 21893114
Para Para: 93127124

[PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Empty
MesajKonu: Geri: [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme   [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Icon_minitimePtsi Tem. 06, 2009 9:01 am

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

İyi Eğlenceler..
Sayfa başına dön Aşağa gitmek
http://forumdata.web-rpg.org
soneR.
KoManyaK Eski Üye
KoManyaK Eski Üye
avatar


Mesaj Sayısı Mesaj Sayısı : 53
Doğum tarihi Doğum tarihi : 25/10/94
Kayıt tarihi Kayıt tarihi : 08/07/09
Yaş Yaş : 29
Nerden Nerden : £diRNé
Lakap Lakap : ßeLLi ßi$e y0q

[PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Empty
MesajKonu: Geri: [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme   [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Icon_minitimePerş. Tem. 09, 2009 2:34 am

TşK.
Sayfa başına dön Aşağa gitmek
soneR.
KoManyaK Eski Üye
KoManyaK Eski Üye
avatar


Mesaj Sayısı Mesaj Sayısı : 53
Doğum tarihi Doğum tarihi : 25/10/94
Kayıt tarihi Kayıt tarihi : 08/07/09
Yaş Yaş : 29
Nerden Nerden : £diRNé
Lakap Lakap : ßeLLi ßi$e y0q

[PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Empty
MesajKonu: Geri: [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme   [PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme Icon_minitimePerş. Tem. 09, 2009 2:34 am

Helal
Sayfa başına dön Aşağa gitmek
 
[PAYLAŞIM]+10,+9 İtemleri +8'e ve +5,+4 Uniqueleri +3 veya +1 Çekme
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» BayrakLarı Ve CadıLar Bayramı İtemleri Eklemek
» [ PAYLASIM ] XSkip Login
» {{PayLaşım}}Maradona Combo KukLası KoyaLım..
» [Paylaşım]Name Change(Nick Değiştirme) Ekleme Kodu

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
ForumDATA  :: Pvp Paylaşımlar :: Prosedürler & Kodlar :: Prosedürler-
Buraya geçin: