Kingdom Sro
remo
Askar Bilişim
Azel Bilişim
doca sro
Monster Bilişim

 
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
vSRO | KERVAN PET BUGU ENGELLEME (Delay Süresi Ekleme)
(Okunma: 532)
BURAKSERIT
#1
Information 
Bu Query Town'da yapılan pet bug'unu engelliyor.
Konuyu daha fazla açacak olursak şöyle anlatayım;

Traderler pet açarken bir şehirden diğer şehire ışınlanıyor bu bug yapıyor.
Bu bug ise GameServer'a crash verdiyor.
Yada Thiefler Pet açarken Town'a giriyor, biliyorsunuz ki Thief'ler pet ile şehire giriş yapamaz.

Bu yapacağınız işlem 5 saliselik bir lag yapıyor oyuncuya, bu yüzden oyuncu bu süre içerisinde bir işlem gerçekleştiremiyor.

SRO_VT_SHARD > Stored Prosedured > _AddNewCos

Prosedürünü açın, prosedürün en alt kısmı bu şekildedir;

Kod:
comit tran
return @CoS_ID

Bu son iki satırı silip yerine aşağıdaki satırları ekleyip F5 ile okutun. Lütfen önce yedek alın.
Kod:
commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID

İsteyenler ise aşağıdaki kodu komple Yeni Query açarak içine yapıştırıp F5 yapsın. _AddNewCos prosedürünüz komple değişecektir. 
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewCOS]    Script Date: 14.07.2016 19:41:24 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[_AddNewCOS]
    @OwnerCharID    int,
    @RefObjID    int,
    @Level        int,
    @HP        int,
    @MP        int,
    @HGP        int,
    @KeeperNPC    int,
    @State        int,
    @InventorySize  int,
    @itemID        int,
    @PickItemConfig tinyint,
    @RentEndTime     smalldatetime
as

begin tran

    declare @COS_ID    int
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    declare @MaxInventorySize tinyint
    select @MaxInventorySize = InventorySize
    from _RefObjCommon, _RefObjChar
    where _RefObjCommon.ID = @RefObjID and _RefObjCommon.Link = _RefObjChar.ID
    
    if( @@rowcount = 0 or @MaxInventorySize < @InventorySize )
    begin
        rollback tran
        return -5
    end

    insert into _CharCOS values (@OwnerCharID, @RefObjID, @HP, @MP, @KeeperNPC, @State, NULL, @Level, 0, @HGP, @PickItemConfig, @RentEndTime)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    set @COS_ID = @@identity
    if (@COS_ID = 0 OR @@error <> 0)
    begin
        rollback tran
        return -1
    end

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    if (@MaxInventorySize > 0)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    begin
        declare @Slot  int
        set @Slot = 0
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        while (@Slot < @MaxInventorySize)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        begin
            insert into _InvCOS values(@COS_ID, @Slot, 0)
            if (@@error <> 0)
            begin
                -- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
                rollback tran
                return -2
            end    
        
            set @Slot = @Slot + 1
        end
    end
    
    if( @itemID <> 0 )
    begin
        update _Items set Data = @COS_ID where ID64 = @itemID
        if( @@error <> 0 or @@rowcount = 0 )
        begin
            rollback transaction
            return -4
        end
        
    end

commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID


#Düzenlenerek alıntı yapılmıştır. Denenmiştir.
Son Düzenleme: 22.02.2017, Saat: 07:59, Düzenleyen: BURAKSERIT
Cevapla
Teşekkür Edenler:
HistoricaL
#2
(14.07.2016, Saat: 18:39)BURAKSERIT Adlı Kullanıcıdan Alıntı: Bu Query Town'da yapılan pet bug'unu engelliyor.
Konuyu daha fazla açacak olursak şöyle anlatayım;

Traderler pet açarken bir şehirden diğer şehire ışınlanıyor bu bug yapıyor.
Bu bug ise GameServer'a crash verdiyor.
Yada Thiefler Pet açarken Town'a giriyor, biliyorsunuz ki Thief'ler pet ile şehire giriş yapamaz.

Bu yapacağınız işlem 5 saliselik bir lag yapıyor oyuncuya, bu yüzden oyuncu bu süre içerisinde bir işlem gerçekleştiremiyor.

SRO_VT_SHARD > Stored Prosedured > _AddNewCos

Prosedürünü açın, prosedürün en alt kısmı bu şekildedir;

Kod:
comit tran
return @CoS_ID

Bu son iki satırı silip yerine aşağıdaki satırları ekleyip F5 ile okutun. Lütfen önce yedek alın.
Kod:
commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID

İsteyenler ise aşağıdaki kodu komple Yeni Query açarak içine yapıştırıp F5 yapsın. _AddNewCos prosedürünüz komple değişecektir. 
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewCOS]    Script Date: 14.07.2016 19:41:24 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[_AddNewCOS]
    @OwnerCharID    int,
    @RefObjID    int,
    @Level        int,
    @HP        int,
    @MP        int,
    @HGP        int,
    @KeeperNPC    int,
    @State        int,
    @InventorySize  int,
    @itemID        int,
    @PickItemConfig tinyint,
    @RentEndTime     smalldatetime
as

begin tran

    declare @COS_ID    int
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    declare @MaxInventorySize tinyint
    select @MaxInventorySize = InventorySize
    from _RefObjCommon, _RefObjChar
    where _RefObjCommon.ID = @RefObjID and _RefObjCommon.Link = _RefObjChar.ID
    
    if( @@rowcount = 0 or @MaxInventorySize < @InventorySize )
    begin
        rollback tran
        return -5
    end

    insert into _CharCOS values (@OwnerCharID, @RefObjID, @HP, @MP, @KeeperNPC, @State, NULL, @Level, 0, @HGP, @PickItemConfig, @RentEndTime)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    set @COS_ID = @@identity
    if (@COS_ID = 0 OR @@error <> 0)
    begin
        rollback tran
        return -1
    end

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    if (@MaxInventorySize > 0)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    begin
        declare @Slot  int
        set @Slot = 0
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        while (@Slot < @MaxInventorySize)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        begin
            insert into _InvCOS values(@COS_ID, @Slot, 0)
            if (@@error <> 0)
            begin
                -- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
                rollback tran
                return -2
            end    
        
            set @Slot = @Slot + 1
        end
    end
    
    if( @itemID <> 0 )
    begin
        update _Items set Data = @COS_ID where ID64 = @itemID
        if( @@error <> 0 or @@rowcount = 0 )
        begin
            rollback transaction
            return -4
        end
        
    end

commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID


#Düzenlenerek alıntı yapılmıştır. Denenmiştir.

Konunuz editlendi ve birkaç kısım değiştirildi. Konu için teşekkürler
Ara
Cevapla
Teşekkür Edenler:
BURAKSERIT
#3
(14.07.2016, Saat: 18:45)HistoricaL Adlı Kullanıcıdan Alıntı:
(14.07.2016, Saat: 18:39)BURAKSERIT Adlı Kullanıcıdan Alıntı: Bu Query Town'da yapılan pet bug'unu engelliyor.
Konuyu daha fazla açacak olursak şöyle anlatayım;

Traderler pet açarken bir şehirden diğer şehire ışınlanıyor bu bug yapıyor.
Bu bug ise GameServer'a crash verdiyor.
Yada Thiefler Pet açarken Town'a giriyor, biliyorsunuz ki Thief'ler pet ile şehire giriş yapamaz.

Bu yapacağınız işlem 5 saliselik bir lag yapıyor oyuncuya, bu yüzden oyuncu bu süre içerisinde bir işlem gerçekleştiremiyor.

SRO_VT_SHARD > Stored Prosedured > _AddNewCos

Prosedürünü açın, prosedürün en alt kısmı bu şekildedir;

Kod:
comit tran
return @CoS_ID

Bu son iki satırı silip yerine aşağıdaki satırları ekleyip F5 ile okutun. Lütfen önce yedek alın.
Kod:
commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID

İsteyenler ise aşağıdaki kodu komple Yeni Query açarak içine yapıştırıp F5 yapsın. _AddNewCos prosedürünüz komple değişecektir. 
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewCOS]    Script Date: 14.07.2016 19:41:24 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[_AddNewCOS]
    @OwnerCharID    int,
    @RefObjID    int,
    @Level        int,
    @HP        int,
    @MP        int,
    @HGP        int,
    @KeeperNPC    int,
    @State        int,
    @InventorySize  int,
    @itemID        int,
    @PickItemConfig tinyint,
    @RentEndTime     smalldatetime
as

begin tran

    declare @COS_ID    int
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    declare @MaxInventorySize tinyint
    select @MaxInventorySize = InventorySize
    from _RefObjCommon, _RefObjChar
    where _RefObjCommon.ID = @RefObjID and _RefObjCommon.Link = _RefObjChar.ID
    
    if( @@rowcount = 0 or @MaxInventorySize < @InventorySize )
    begin
        rollback tran
        return -5
    end

    insert into _CharCOS values (@OwnerCharID, @RefObjID, @HP, @MP, @KeeperNPC, @State, NULL, @Level, 0, @HGP, @PickItemConfig, @RentEndTime)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    set @COS_ID = @@identity
    if (@COS_ID = 0 OR @@error <> 0)
    begin
        rollback tran
        return -1
    end

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    if (@MaxInventorySize > 0)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    begin
        declare @Slot  int
        set @Slot = 0
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        while (@Slot < @MaxInventorySize)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        begin
            insert into _InvCOS values(@COS_ID, @Slot, 0)
            if (@@error <> 0)
            begin
                -- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
                rollback tran
                return -2
            end    
        
            set @Slot = @Slot + 1
        end
    end
    
    if( @itemID <> 0 )
    begin
        update _Items set Data = @COS_ID where ID64 = @itemID
        if( @@error <> 0 or @@rowcount = 0 )
        begin
            rollback transaction
            return -4
        end
        
    end

commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID


#Düzenlenerek alıntı yapılmıştır. Denenmiştir.

Konunuz editlendi ve birkaç kısım değiştirildi. Konu için teşekkürler

Rica ederim, yararlı konuydu. Paylaşılmadığı için paylaşayım dedim.
Düzenleme için teşekkürler.
Cevapla
Teşekkür Edenler:
hqpro
#4
(14.07.2016, Saat: 18:45)HistoricaL Adlı Kullanıcıdan Alıntı:
(14.07.2016, Saat: 18:39)BURAKSERIT Adlı Kullanıcıdan Alıntı: Bu Query Town'da yapılan pet bug'unu engelliyor.
Konuyu daha fazla açacak olursak şöyle anlatayım;

Traderler pet açarken bir şehirden diğer şehire ışınlanıyor bu bug yapıyor.
Bu bug ise GameServer'a crash verdiyor.
Yada Thiefler Pet açarken Town'a giriyor, biliyorsunuz ki Thief'ler pet ile şehire giriş yapamaz.

Bu yapacağınız işlem 5 saliselik bir lag yapıyor oyuncuya, bu yüzden oyuncu bu süre içerisinde bir işlem gerçekleştiremiyor.

SRO_VT_SHARD > Stored Prosedured > _AddNewCos

Prosedürünü açın, prosedürün en alt kısmı bu şekildedir;

Kod:
comit tran
return @CoS_ID

Bu son iki satırı silip yerine aşağıdaki satırları ekleyip F5 ile okutun. Lütfen önce yedek alın.
Kod:
commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID

İsteyenler ise aşağıdaki kodu komple Yeni Query açarak içine yapıştırıp F5 yapsın. _AddNewCos prosedürünüz komple değişecektir. 
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewCOS]    Script Date: 14.07.2016 19:41:24 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[_AddNewCOS]
    @OwnerCharID    int,
    @RefObjID    int,
    @Level        int,
    @HP        int,
    @MP        int,
    @HGP        int,
    @KeeperNPC    int,
    @State        int,
    @InventorySize  int,
    @itemID        int,
    @PickItemConfig tinyint,
    @RentEndTime     smalldatetime
as

begin tran

    declare @COS_ID    int
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    declare @MaxInventorySize tinyint
    select @MaxInventorySize = InventorySize
    from _RefObjCommon, _RefObjChar
    where _RefObjCommon.ID = @RefObjID and _RefObjCommon.Link = _RefObjChar.ID
    
    if( @@rowcount = 0 or @MaxInventorySize < @InventorySize )
    begin
        rollback tran
        return -5
    end

    insert into _CharCOS values (@OwnerCharID, @RefObjID, @HP, @MP, @KeeperNPC, @State, NULL, @Level, 0, @HGP, @PickItemConfig, @RentEndTime)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    set @COS_ID = @@identity
    if (@COS_ID = 0 OR @@error <> 0)
    begin
        rollback tran
        return -1
    end

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    if (@MaxInventorySize > 0)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    begin
        declare @Slot  int
        set @Slot = 0
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        pet_skill_item (ÃÖ¼±È£)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        while (@Slot < @MaxInventorySize)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        begin
            insert into _InvCOS values(@COS_ID, @Slot, 0)
            if (@@error <> 0)
            begin
                -- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
                rollback tran
                return -2
            end    
        
            set @Slot = @Slot + 1
        end
    end
    
    if( @itemID <> 0 )
    begin
        update _Items set Data = @COS_ID where ID64 = @itemID
        if( @@error <> 0 or @@rowcount = 0 )
        begin
            rollback transaction
            return -4
        end
        
    end

commit tran

declare @bla varchar(max);

select @bla = codename128 from _refobjcommon where ID = @ReFObjID

if @bla like '%COS_T%'

begin

WAITFOR DELAY '0:00:00.5' --süre

END

return @CoS_ID


#Düzenlenerek alıntı yapılmıştır. Denenmiştir.

Konunuz editlendi ve birkaç kısım değiştirildi. Konu için teşekkürler

merhaba Atack ped lerde sorun yasiyorum dc oluyor onda bu sekilde bir sorun varmi veya baska sekilde cozum oneriniz varmi
Ara
Cevapla
Teşekkür Edenler:
BURAKSERIT
#5
Bahsettiğiniz konunun bu konu ile alakası yoktur.
Cevapla
Teşekkür Edenler:
hqpro
#6
(17.02.2017, Saat: 01:20)BURAKSERIT Adlı Kullanıcıdan Alıntı: Bahsettiğiniz konunun bu konu ile alakası yoktur.

tesekkur ederim
Ara
Cevapla
Teşekkür Edenler:
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  vSro %5 Lucky Skill Ekleyiniz! dargdarg18 3 37 3 saat önce
Son Yorum: BURAKSERIT
  vSro %5 Lucky Skill Ekleyiniz! dargdarg18 1 17 3 saat önce
Son Yorum: BURAKSERIT
  vSro Trigger Öğrenme silverrains 9 149 29.03.2017, Saat: 20:06
Son Yorum: BURAKSERIT
  vSro Su Altı Kervan Yolu dargdarg18 0 31 29.03.2017, Saat: 17:40
Son Yorum: dargdarg18

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
  Tarih: 31.03.2017, Saat: 02:29