Char Delte Time

Results 1 to 4 of 4
  1. #1
    Enthusiast alger is offline
    MemberRank
    Jan 2009 Join Date
    43Posts

    Char Delte Time

    hello

    Duration of 7 days to delete the char. how to increment the time?

    so 10 days 15 days


  2. #2
    SilkRoad loveme is offline
    MemberRank
    Sep 2011 Join Date
    JanganLocation
    498Posts

    Re: Char Delte Time

    SRO_VT_SHARD query the underlying order

    Code:
    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
    it after execute.

    Code:
    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    
        ------------------------------------
        -- _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
    last SRO_VT_ACCOUNT execute and game open.

    Code:
    USE [SRO_VT_ACCOUNT]
    GO
    /****** Object:  StoredProcedure [dbo].[_ManageShardCharName]    Script Date: 02/14/2012 12:56:27 ******/
    SET ANSI_NULLS OFF
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    ALTER procedure [dbo].[_ManageShardCharName]
        @job        tinyint,
        @UserJID       int,
        @ShardID       smallint,
        @CharName     varchar(64),
        @OldName     varchar(64)
    as
        -- add new char name
        if (@job = 0)
        begin
            if (not exists(select * from SR_ShardCharNames where UserJID = @UserJID and ShardID = @ShardID and CharName = @CharName))
            begin
                insert SR_ShardCharNames values(@UserJID, @ShardID, @CharName)
            end
        end
        -- remove char name
        else if (@job = 1)
        begin
            delete SR_ShardCharNames where UserJID = @UserJID and ShardID = @ShardID and CharName = @CharName
        --    delete SR_CharAppoint where UserJID = @UserJID and ShardID = @ShardID and CharID = @CharName
        end
        -- rename previous one
        else if (@job = 2)
        begin
            update SR_ShardCharNames set CharName = @CharName where UserJID = @UserJID and ShardID = @ShardID and CharName = @OldName
            -- update SR_CharAppoint set CharID = @CharName where UserJID = @UserJID and ShardID = @ShardID and CharID = @OldName
        end


    forgetting : these processes have to be closed during the game

    Excerpt.

  3. #3
    Enthusiast alger is offline
    MemberRank
    Jan 2009 Join Date
    43Posts

    Re: Char Delte Time

    deletion have to extend to 15 Days..

  4. #4
    SilkRoad loveme is offline
    MemberRank
    Sep 2011 Join Date
    JanganLocation
    498Posts

    Re: Char Delte Time

    This code will be deleted and 7 days



Advertisement