ÇáãæÞÚ ÇáÚÑÈí ÇáÇæá ááÚÈÉ Silkroad Online

ÇáãæÞÚ ÇáÚÑÈí ÇáÇæá ááÚÈÉ Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   ÞÓã ÇáÇÓÆáÉ æ ÇáÇÓÊÝÓÇÑÇÊ áÚãá ÇáÓíÑÝÑÇÊ ÇáÎÇÕÉ (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   Bug with ShardManager (https://silkroad4arab.com/vb/showthread.php?t=607849)

Chinaya 26-11-2016 03:53 PM

Bug with ShardManager
 
http://i.epvpimg.com/v0R7d.jpg

Íá ÇáãÔßáå Vsro Ver .193 íÇÑíÊ ãÓÇÚÏå
ÈíÞÝá ãÚÇíÇ ÈÚÏ ÇáÑÓÇáå Ïí
lãÔ ÝÑíÌíä 1.88

Chinaya 26-11-2016 03:54 PM

ÑÏ: Bug with ShardManager
 
ÇáãáÝÇÊ Çááí ÔÛÇá ÈíåÇ ÝíÑÌä 1.93
ãÔ ÝíÑÌä 1.88

Helper4You 26-11-2016 08:05 PM

ÑÏ: Bug with ShardManager
 
ãÔ ÝÇåã ãÔßáÊß ÈÕÑÇÍå

Chinaya 27-11-2016 01:40 AM

ÑÏ: Bug with ShardManager
 
íÇ ÈÇÔÇ ãÔßáÊí Çä Çá SR_ShardManager
[íÞÝá ÈÚÏ ÇáÑÓÇáå Çááí Ýí ÇáÕæÑÉ Çááí ÝæÞ
ÈÚÏ ÇáÑÓÇáå Ïí ÈíÞÝá æÈíÎÊÝí
æÇäÇ ÔÛÇá Èí ãáÝÇÊ ÝíÑÌä 1.93
ãÔ 1.88

Helper4You 28-11-2016 04:39 PM

ÑÏ: Bug with ShardManager
 
ÇÚãáæ ÊËÈíÊ ... .

æÇÊÇßÏ ãä Setup Server ...

Çä ÔÇÁ Çááå åÊßæä ÇáãÔßáå ãäåÇ Çä ÔÇÁ Çááå

Úáì ÇáÚãæã ÇÚãáì ÇÖÇÝå Úáì ÇáÝíÓ Èæß æÇäÇ åÓÚÏß Çä ÔÇÁ Çááå

Dev.Ri3o 28-11-2016 08:10 PM

ÑÏ: Bug with ShardManager
 
åÊÚãá Ïæá
ßæÏ:

USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_DeleteCharPermanently]    Script Date: 02/14/2012 12:54:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO


--!!!CHECK!!!
ALTER              PROCEDURE [dbo].[_DeleteCharPermanently]
@CharID        as int
as
        ------------------------------------
        -- ì�¼ë‹¨ ì‚*ì*œë�œ ìº�ë¦*ì�¸ì§€ 부터 검사!
        ------------------------------------
        if (not exists(select charid from _deletedchar where charid = @CharID))
        begin
                return -1
        end
        ------------------------------------
        -- ì‚*ì*œí›„ 경과ë�œ 시간ì�´ 대략 7ì�¼ì�´ 맞는가 확ì�¸ (샤드ì—� 혹시 버그가 있ì�„ì§€ 모르니ê¹�...)
        ------------------------------------
        declare @deleted_date datetime
        declare @cur_date          datetime
        declare @elapsed_min int
        declare @UserJID                int
--        declare @deleted_slot  int
        set @cur_date = getdate()
        select @UserJID = UserJID, /*@deleted_slot = CharSlot,*/ @deleted_date = deleteddate  from _deletedchar with (nolock) where charid = @CharID
       
        -- ì‚*ì*œì‹œí‚¨ì§€ 6ì�¼ + 23시간 ì�´ìƒ�ì�´ 지난 ìº�ë¦*ì�¸ê°€? (1시간 ì*•ë�„ì�˜ 오차ë�¼ë©´ ì�¸ì*•í•´ 준다 ëƒ�하~)
        set @elapsed_min = datediff(minute, @deleted_date, @cur_date)
        if (@elapsed_min < ((60 * 24 * 6) + (60 * 23)))
        begin
                return -2
        end
        ------------------------------------
        -- ì‚*ì*œë�œ ìº�ë¦*ì�´ 맞는지 다시한번 확ì�¸
        ------------------------------------
        declare @is_deleted tinyint
        select @is_deleted = deleted from _Char where CharID = @CharID
        if (@is_deleted <> 1)
        begin
                return -3
        end

        ------------------------------------
        -- 지울 ìº�ë¦*ì�´ _User ì—� 있는 CharID와 ì�¼ì¹˜í•˜ëŠ”ê°€ 검사
        ------------------------------------
        declare @char_id_to_check                int
        set @char_id_to_check = 0

/*        -- commented by novice. for server integration.
        if (@deleted_slot = 0)
                begin        select @char_id_to_check = CharID1 from _User where UserJID = @UserJID end
        else if (@deleted_slot = 1)
                begin        select @char_id_to_check = CharID2 from _User where UserJID = @UserJID end
        else if (@deleted_slot = 2)
                begin        select @char_id_to_check = CharID3 from _User where UserJID = @UserJID end
        else
                begin
                        return -4
                end
        -- ì¼�! 어떻게 ë�œê±°ì•¼?  ì�´ìƒ�한 넘ì�´ ìž�리를 차지하ê³* 있다!
        if (@char_id_to_check <> @CharID)
        begin
                return -5
        end
*/
        -- start by novice.
        select @char_id_to_check = CharID from _User where UserJID = @UserJID and CharID = @CharID
       
        if (@char_id_to_check = 0)
        begin
                -- 지울 ìº�ë¦*í„°ê°€ _User ì—� 없어?
                return -5
        end
        -- finish by novice.
       
begin transaction
       
        declare @GuildID int
        exec @GuildID = _DeleteCharPermanently_NoTX  @UserJID, @CharID --, @deleted_slot
        if (@GuildID is null)
                set @GuildID = -10000       
        if (@GuildID < 0)
        begin
                rollback transaction
                return @GuildID
        end       
commit transaction
       
        return @GuildID

ßæÏ:

USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_DeleteCharPermanently_NoTX]    Script Date: 02/14/2012 12:54:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

ALTER PROCEDURE [dbo].[_DeleteCharPermanently_NoTX]
        @UserJID        INT
,        @CharID                INT
AS
        ------------------------------------
        -- Inventory¶û ±×¾ÃˆÂ¿Â¡ °Â¡Ã�ö°Ã* Àִø ¾Ã†Ã€ÃŒÃ…Ûµé ³¯·Ã�¹Ã¶¸®Ã€Ãš...
        ------------------------------------
        -------------- Ã†ê ¼Ã’Ãˆ¯ ¾Ã†Ã€ÃŒÃ…ÛºÎÅÃ� ÀÃ�´Ãœ »èÃ�¦ ----------------
        declare @result int
        declare @Slot tinyint
        declare @RefItemID int
       
        declare pc_inv_cursor cursor fast_forward for
        select inv.slot
        from _Inventory as inv join _Items as it on inv.ItemID = it.ID64
        where
        (inv.CharID = @CharID and inv.Slot >= 13 and inv.ItemID > 0) and        -- Àåºñâ Ã�¦Â¿ÃœÃ‡Ã�°Ã* ¾Ã†Ã€ÃŒÃ…Û Àִ ¼Ã¸¼Ã¶ Àκ¥Ã…丮 ¾ÃˆÂ¿Â¡ µé¾îÀÖÀ¸¸ç
        (it.Data <> 0)                                                                                          and        -- ¼Ã’ȯ¼Ã¶¸¦ °Â¡Ã�ö°Ã* ÀִÂ
        (exists (select top 1 ID from _RefObjCommon where ID = it.RefItemID and TypeID1 = 3 and TypeID2 = 2)) -- Æê¼Ã’ȯ ¾Ã†Ã€ÃŒÃ…Ûµé ã¾Ã†Ã�à~
       
        open pc_inv_cursor
        fetch next from pc_inv_cursor  into @slot
        while @@fetch_status = 0
        begin
                        exec @result = _STRG_DEL_ITEM_NoTX 1, @CharID, @Slot       
                        if (@result < 0)
                        begin
                                close pc_inv_cursor
                                deallocate pc_inv_cursor
                                return @result
                        end
                                               
                        fetch next from pc_inv_cursor  into @Slot
        end
       
        close pc_inv_cursor
        deallocate pc_inv_cursor
        ------------------- ³²Ã€Âº ¾Ã†Ã€ÃŒÃ…Ûµé ¸ùâ »èÃ�¦  -------------------
        -- ¾Ã†Ã€ÃŒÃ…ÛÀÌ ÇÃ�³Âª¶Ã³µµ ÀִÙ¸é...
        if (exists (select top 1 itemID from _Inventory where CharID = @CharID AND ItemID <> 0))
        begin
                update _ItemPool Set InUse = 0
                from _ItemPool as pool join _Inventory as inv on pool.ItemID = Inv.ItemID
                where Inv.CharID = @CharID and Inv.ItemID <> 0
        end
        ----------- ¾Ã†Ã€ÃŒÃ…Ûµé ³¯·ÃˆÃ€¸´Ã� ÃÖÃ�¾Ã€ûÀ¸·ç Àκ¥Ã…丮 »èÃ�¦  ------------
        delete from _Inventory where CharID = @CharID
        if (@@error <> 0)
        begin
                return -10001
        end

        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        --                APPLY_AVATAR_SYSTEM (Çã½Ã‚¿Ã*)
        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

        ------------------- ³²Ã€Âº ¾Ã†¹Ã™Ã…¸ Àκ¥Ã…丮 ¾Ã†Ã€ÃŒÃ…Ûµé ¸ùâ »èÃ�¦  -------------------
        -- ¾Ã†Ã€ÃŒÃ…ÛÀÌ ÇÃ�³Âª¶Ã³µµ ÀִÙ¸é...
        if (exists (select top 1 itemID from _InventoryForAvatar where CharID = @CharID AND ItemID <> 0))
        begin
                update _ItemPool Set InUse = 0
                from _ItemPool as pool join _InventoryForAvatar as InvAva on pool.ItemID = InvAva.ItemID
                where InvAva.CharID = @CharID and InvAva.ItemID <> 0
        end
        ----------- ¾Ã†Ã€ÃŒÃ…Ûµé ³¯·ÃˆÃ€¸´Ã� ÃÖÃ�¾Ã€ûÀ¸·ç ¾Ã†¹Ã™Ã…¸ Àκ¥Ã…丮 »èÃ�¦  ------------
        delete from _InventoryForAvatar where CharID = @CharID
        if (@@error <> 0)
        begin
                return -10008
        end

        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        --                APPLY_AVATAR_SYSTEM (Çã½Ã‚¿Ã*)
        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

        ------------------------------------
        -- COS »èÃ�¦
        ------------------------------------
/*
        declare @engaged_cos int
        set @engaged_cos = 0
        select @engaged_cos = EngagedCOS from _char with (nolock) where CharID = @CharID
       
        if (@engaged_cos = 0)
        begin
                -- ¿Ö ¹ÃŸ»Ã½Ã‡Ã�´Ã‚ Ã�ö Àß ¸Ã°¸£°ÃšÃ�ö¸¸... ¾Ã†Ã�Ö µÃ¥¹°°Ã” COS ¸¸ ³²¾Ã†Ã€Ã–´Ã‚ °Ã¦Â¿Ã¬°Â¡ Àִõ¶Ã³°Ã*... -_-;
                select @engaged_cos = ID from _CharCOS with (nolock) where OwnerCharID = @CharID
                if (@engaged_cos is null)
                        set @engaged_cos = 0
        end
        if (@engaged_cos is not null and @engaged_cos <> 0)
        begin
                declare @Return_Del_COS int
                exec @Return_Del_COS = _DeleteCharCOS_NoTX  @CharID, @engaged_cos
                if (@Return_Del_COS < 0)
                begin
                        return -10002
                end
        end
*/
        ------------------------------------
        -- Trijob µ¥Ã€ÃŒÃ…Ã� »èÃ�¦
        ------------------------------------
        delete from _CharTrijob where CharID = @CharID
        ------------------------------------
        -- ½ÂºÃ…³ »èÃ�¦
        ------------------------------------
        delete _CharSkill where CharId = @CharID
        delete _CharSkillMastery where charId = @CharID
        ------------------------------------
        -- Äù½ÂºÃ†® »èÃ�¦
        ------------------------------------
        delete _CharQuest where CharID = @CharID
        ------------------------------------
        -- ±Ã¦µÃ¥ ¸â¹Ã¶ »èÃ�¦
        ------------------------------------
        -- !!! ¸¸¾à ¿©±â¼* Guild ¸â¹Ã¶ »èÃ�¦°Â¡ ÀÃ�¾î³ÂªÃ�ö ¾ÃŠÃ€¸¸é ShardManager ¿¡¼*
        -- _Guild_DelMember ȣÃâÇØ Ã�Öµµ·Ã� ¼Ã¶Ã�¤Ã‡Ã˜¾ÃŸ ÇѴÙ! Ã�ö±Ã�˼ ±× °ÃºÃ�¤Ã€Âº SkipÇÃ�°Ã*
        -- ¸Ãž¸Ã°¸®Â¿Â¡¼* »èÃ�¦¸¸ ÀÃ�¾î³Âª°Ã” µÃ‡¾î ÀÖ°Ã…µ¢...
        declare @GuildID int
        set @GuildID = 0
        select @GuildID = GuildID from _char where charid = @CharID
        if (@GuildID is not null and @GuildID <> 0)
        begin
                if (not exists (select ID from _Guild where ID = @GuildID))
                begin
                        update _Char set GuildID = 0 where CharID = @CharID
                end
                else
                begin
                        declare @Return_Del_GuildMember int
                        exec @Return_Del_GuildMember = _Guild_DelMember_NoTX @GuildID, @CharID
                        if (@Return_Del_GuildMember < 0)
                                return -10003
                end
        end

        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        --                APPLY_MENTOR_SYSTEM (ÃÖÀÎÈ£)
        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        DECLARE @CampID INT
        SET @CampID = 0
        SELECT @CampID = CampID FROM _TrainingCampMember WHERE CharID = @CharID
        IF (@CampID IS NOT NULL AND @CampID <> 0)
        BEGIN
                DECLARE @Ret_DelCampMember INT
                EXEC @Ret_DelCampMember = _TRAINING_CAMP_DELMEMBER @CampID, @CharID, 0
                IF (@Ret_DelCampMember < 0)
                        RETURN -10007
        END

        -- ÀÖÀ¸¸é Ã�ö¿ö¹Ã¶¸®Ã€Ãš~ ¹¹.
        DELETE FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @CharID

        -- °Ã¦Ã‡èÄ¡ ¹Ã¶Ã‡Ã� ·¹Ã„ڵåµµ~~ ¤»¤»
        DELETE FROM _TrainingCampBuffStatus WHERE CampID = @CampID

        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        --                APPLY_MENTOR_SYSTEM (ÃÖÀÎÈ£)
        --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

        -----------------------------------
        -- Ä£±¸ ¸®½ÂºÃ†® »èÃ�¦ ( ³ÂªÃ€Ã‡ Ä£±¸ ¸®½ÂºÃ†® + Ä£±¸Ã€Ã‡ Ä£±¸ ¸®½ÂºÃ†®Ã�ß ³Âª )
        -----------------------------------
        -- ³» Ä£±¸µé..
        declare @FriendCharID        int
        declare @cursor_var        cursor
       
        set @cursor_var = cursor fast_forward
        for
        select FriendCharID
        from _Friend
        where CharID = @CharID
       
        open @cursor_var
       
        fetch next from @cursor_var into @FriendCharID
       
        while( @@FETCH_STATUS = 0 )
        begin
                delete _Friend where CharID = @FriendCharID and FriendCharID = @CharID
       
                fetch next from @cursor_var into @FriendCharID
        end
        close @cursor_var
        deallocate @cursor_var
        -- ³Âª..
        delete _Friend where CharID = @CharID
        -----------------------------------
        -----------------------------------
        -- ÂÊÃ�ö »èÃ�¦
        -----------------------------------
        delete _Memo where CharID = @CharID
        ------------------------------------
        -- TimedJob »èÃ�¦Ã‡Ã�±â
        ------------------------------------
        delete _TimedJob where CharID = @CharID
        ------------------------------------
        -- Static Avatar Ã�¤Âº¸ »èÃ�¦
        ------------------------------------       
        delete from _staticavatar where charid = @charid
        ------------------------------------
        -- ±Ã“¸» ºÃ*·° Ã�¤Âº¸ »èÃ�¦
        ------------------------------------       
        delete from _BlockedWhisperers where OwnerID = @charid       
        ------------------------------------
        -- ÆÄƼÃÊ´ë ºÃ*·° Ã�¤Âº¸ »èÃ�¦ 10.06.07
        ------------------------------------
        DELETE FROM _BlockedPartyInviter WHERE CharID = @charid       
        ------------------------------------
        -- _DeletedChar Entry »èÃ�¦
        ------------------------------------
        delete from _DeletedChar where CharID = @CharID
        if (@@error <> 0)
        begin
                return -10004
        end
        -- start by novice.
        DELETE FROM _User WHERE UserJID = @UserJID and CharID = @CharID
        -- finish by novice.

        ------------------------------------
        -- commit !!!
        ------------------------------------
       
        -- Ã…¬¶Ã³Ã€ÃŒ¾Ã°Ã†®Â¿ë Äü½½·Ã” Ã�¤Âº¸ ÀúÀå Ã…×À̺Ã* ³¯¸®±â!!!
        exec _RemoveClientConfig @CharID                -- by novice...... for saving client configurations...
        return @GuildID


Dev.Ri3o 29-11-2016 11:04 PM

ÑÏ: Bug with ShardManager
 
##


ÇáÓÇÚÉ ÇáÂä 12:10 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions, Inc.