Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Help section my bad]how do i remove all mapcode on new chars

Junior Spellweaver
Joined
Oct 9, 2011
Messages
176
Reaction score
6
i removed the all mapcodes on new chars when logging in it shows only the 3 maps but on relogging i get all maps annyone wanne help me ?
 
Elite Diviner
Joined
Jun 18, 2023
Messages
436
Reaction score
245
Check your get_cabal_character and set_cabal_character at Server01>Stored Procedure
 
Junior Spellweaver
Joined
Oct 9, 2011
Messages
176
Reaction score
6
Check your get_cabal_character and set_cabal_character at Server01>Stored Procedure
i dont see annything in there that sets it to that number :s
@ char table

@CH_WARPBFIELD INT,
@CH_MAPSBFIELD INT,
this is in get char

and set char also nothing

cabal_new_character_data
wap is set to 0 and map to
1
2
2
4
1
4

on new char and join its all ok but when you relog the account gets updated to it

this is my get char from db
Code:
USE [Server01]
GO
/****** Object:  StoredProcedure [dbo].[get_cabal_character]    Script Date: 24/01/2024 22:26:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[get_cabal_character](@characteridx INT, @channelidx INT, @userip CHAR(16), @WorldAuthKey int)
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRAN
    DECLARE @USERNUM INT
    SET @USERNUM = @CHARACTERIDX/8
    -- CHARACTER
    DECLARE @LOGOUT_TIME DATETIME, @LOGIN_TIME DATETIME, @OLDRESTTIME AS INT, @RESTTIME AS INT
    DECLARE
        @CH_WORLDIDX INT,
        @CH_POSITION INT,
        @CH_LEV INT,
        @CH_EXP BIGINT,
        @CH_STR INT,
        @CH_DEX INT,
        @CH_INT INT,
        @CH_PNT INT,
        @CH_RANK INT,
        @CH_ALZ BIGINT,
        @CH_STYLE INT,
        @CH_FLAGS INT,
        @CH_HP INT,
        @CH_MP INT,
        @CH_SP INT,
        @CH_DP INT,
        @CH_DPLASTTIME INT,
        @CH_SWDPNT INT,
        @CH_MAGPNT INT,
        @CH_RANKEXP INT,
        @CH_PENALTYEXP INT,
        @CH_WARPBFIELD INT,
        @CH_MAPSBFIELD INT,
        @CH_NAME VARCHAR(50),
        @CH_RP INT,
        @CH_REPUTATION INT,
        @CH_PKPENALTY INT,
        @CH_NATION TINYINT,
        @CRAFTLEVEL0 INT,
        @CRAFTLEVEL1 INT,
        @CRAFTLEVEL2 INT,
        @CRAFTLEVEL3 INT,
        @CRAFTLEVEL4 INT,
        @CRAFTEXP0 INT,
        @CRAFTEXP1 INT,
        @CRAFTEXP2 INT,
        @CRAFTEXP3 INT,
        @CRAFTEXP4 INT,
        @CRAFTFLAGS VARBINARY(16),
        @RESERVED BIGINT
    
    SELECT
        @CH_WORLDIDX = WORLDIDX,
        @CH_POSITION = POSITION,
        @CH_LEV = LEV,
        @CH_EXP = EXP,
        @CH_STR = STR,
        @CH_DEX = DEX,
        @CH_INT = INT,
        @CH_PNT = PNT,
        @CH_RANK = RANK,
        @CH_ALZ = ALZ,
        @CH_STYLE = STYLE,
        @CH_FLAGS = FLAGS,
        @CH_HP = HP,
        @CH_MP = MP,
        @CH_SP = SP,
        @CH_SWDPNT = SWDPNT,
        @CH_MAGPNT = MAGPNT,
        @CH_RANKEXP = RANKEXP,
        @CH_PENALTYEXP = PENALTYEXP,
        @CH_WARPBFIELD = WARPBFIELD,
        @CH_MAPSBFIELD = MAPSBFIELD,
        @CH_NAME = NAME,
        @CH_RP = ISNULL(RP, 0),
        @CH_REPUTATION = REPUTATION,
        @CH_PKPENALTY = PKPENALTY,
        @CH_NATION = NATION,
        @LOGOUT_TIME = LOGOUTTIME,
                @RESERVED = RESERVED1
    FROM CABAL_CHARACTER_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    IF @@ROWCOUNT = 0
    BEGIN
        SELECT -1
        COMMIT TRAN
        RETURN
    END

    IF @CH_NATION = 3 -- GM
    BEGIN
        DECLARE @RegisteredIP BIT
        exec cabal_sp_linked_gm_ip_check @userip, @RegisteredIP OUTPUT
        
        IF(@RegisteredIP = 0)
        BEGIN
            SELECT -1
            COMMIT TRAN
            RETURN
        END
    END
    
    IF @LOGOUT_TIME IS NULL
    BEGIN
        SET @LOGOUT_TIME = GETDATE()
    END
    SET       @LOGIN_TIME = GETDATE()
    SET       @RESTTIME = DATEDIFF( MINUTE, @LOGOUT_TIME, @LOGIN_TIME)
    SET @CH_RP =  @CH_RP + @RESTTIME
    IF(@CH_RP > 10080)
    BEGIN
        SET @CH_RP = 10080
    END
    UPDATE CABAL_CHARACTER_TABLE SET 
        RP =@CH_RP,
        LOGINTIME=@LOGIN_TIME,
        LOGOUTTIME=@LOGIN_TIME,
        CHANNELIDX=@CHANNELIDX
    WHERE CHARACTERIDX = @CHARACTERIDX
    -- DP
    SELECT         
        @CH_DP = DP,
        @CH_DPLASTTIME = DPLastGetTime FROM CABAL_DUNGEONPOINT_TABLE
        WHERE CHARACTERIDX = @CHARACTERIDX
        
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_DUNGEONPOINT_TABLE
            VALUES(@CHARACTERIDX, 0, 0)
        SET @CH_DP = 0
        SET @CH_DPLASTTIME = 0
    END
    
    -- EQUIPMENT
    DECLARE
        @EQ_DATA VARBINARY(512)
    
    SELECT
        @EQ_DATA = DATA
    FROM CABAL_EQUIPMENT_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_EQUIPMENT_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @EQ_DATA = 0X
    END
    -- EQUIPMENT LOCK
    DECLARE
        @EQ_LOCK_DATA VARBINARY(512)
    
    SELECT
        @EQ_LOCK_DATA = DATA
    FROM CABAL_EQUIPMENT_LOCK_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_EQUIPMENT_LOCK_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @EQ_LOCK_DATA = 0X
    END
    -- INVENTORY
    DECLARE
        @IV_DATA VARBINARY(8000)
    
    SELECT
        @IV_DATA = DATA
    FROM CABAL_INVENTORY_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX

    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_INVENTORY_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @IV_DATA = 0X
    END

--SOLD ITEM
    DECLARE @SI_DATA VARBINARY(512)
    
    SELECT
        @SI_DATA = DATA
    FROM CABAL_SOLD_ITEM_TABLE
    WHERE CHARACTERIDX = @characteridx
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_SOLD_ITEM_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @SI_DATA = 0X
    END

    -- SKILLLIST
    DECLARE
        @SK_DATA VARBINARY(1024)
    
    SELECT
        @SK_DATA = DATA
    FROM CABAL_SKILLLIST_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_SKILLLIST_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @SK_DATA = 0X
    END
    -- QUICKSLOT
    DECLARE
        @QK_DATA VARBINARY(512)
    
    SELECT
        @QK_DATA = DATA
    FROM CABAL_QUICKSLOT_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_QUICKSLOT_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @QK_DATA = 0X
    END
---------------------------------------------------
    DECLARE @PASSIVE_ABILITY_DATA VARBINARY(512)
    DECLARE @BLENDED_ABILITY_DATA VARBINARY(256)
    DECLARE @ABILITY_POINT INT
    DECLARE @ABILITY_EXP_POINT INT
    DECLARE @ABILITY_POINT_TOTAL INT
            

    SELECT @ABILITY_POINT = AbilityPoint, @ABILITY_EXP_POINT = AbilityExp,
            @PASSIVE_ABILITY_DATA = PassiveAbilityData, @BLENDED_ABILITY_DATA = BlendedAbilityData
            ,@ABILITY_POINT_TOTAL = pointTotal       
    FROM CABAL_SOUL_ABILITY_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX

    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_SOUL_ABILITY_TABLE
            VALUES(@CHARACTERIDX, 0, 0, 0X, 0x, 0)
        SET @PASSIVE_ABILITY_DATA = 0X
        set @BLENDED_ABILITY_DATA = 0x
    END

---------------------------------------------------
    --Assistant
    DECLARE @ASSISTANT_DATA VARBINARY(512)
    
    SELECT @ASSISTANT_DATA = DATA
    FROM cabal_Assistant_table
    WHERE CHARACTERIDX = @characteridx
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO cabal_Assistant_table
            VALUES(@CHARACTERIDX, 0X)
        SET @ASSISTANT_DATA = 0X
    END
---------------------------------------------------
    -- BLESSING BEAD
    DECLARE
        @BBEAD_DATA VARBINARY(512)
    
    SELECT
        @BBEAD_DATA = DATA
    FROM CABAL_BBEAD_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_BBEAD_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @BBEAD_DATA = 0X
    END

    -- QUESTDATA
    DECLARE
        @QE_DATA VARBINARY(128),
        @QE_FLAGS VARBINARY(512),
        @QE_DEL_FLAGS VARBINARY(512),
        @DailyQuest VARBINARY(2048),
        @LastDailyQuestResetTime BIGINT
    
    SELECT
        @QE_DATA = DATA,
        @QE_FLAGS = FLAGS,
        @QE_DEL_FLAGS = ISNULL(DEL_FLAGS, 0X0),
        @DailyQuest = ISNULL(DailyQuest, 0x),
        @LastDailyQuestResetTime = ISNULL(LastDailyQuestResetTime, 0)
    FROM CABAL_QUESTDATA_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_QUESTDATA_TABLE
        (CHARACTERIDX, DATA, FLAGS,  DEL_FLAGS)
        VALUES(@CHARACTERIDX, 0X, CONVERT(BINARY(64), 0), 0X)
        SET @QE_DATA = 0X
        SET @QE_FLAGS = CONVERT(BINARY(64),0)
        SET @QE_DEL_FLAGS = 0X
        SET @DailyQuest = 0x
        SET @LastDailyQuestResetTime = 0
    END
    -- QDDATA
    DECLARE
        @QD_FLAGS VARBINARY(128),
        @MD_FLAGS VARBINARY(128)
    
    SELECT
        @QD_FLAGS = FLAGS,
        @MD_FLAGS = MDFLAGS       
    FROM CABAL_QDDATA_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_QDDATA_TABLE
            VALUES(@CHARACTERIDX, 0x, 0x)
        SET @QD_FLAGS = 0x
        SET @MD_FLAGS = 0x       
    END

    SELECT    @CRAFTLEVEL0 = LEVEL0,
        @CRAFTLEVEL1 = LEVEL1,
        @CRAFTLEVEL2 = LEVEL2,
        @CRAFTLEVEL3 = LEVEL3,
        @CRAFTLEVEL4 = LEVEL4,
        @CRAFTEXP0 = EXP0,
        @CRAFTEXP1 = EXP1,
        @CRAFTEXP2 = EXP2,
        @CRAFTEXP3 = EXP3,
        @CRAFTEXP4 = EXP4,
        @CRAFTFLAGS = FLAGS
    FROM CABAL_CRAFT_TABLE
    WHERE CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_CRAFT_TABLE ( CHARACTERIDX ) VALUES ( @CHARACTERIDX )

        SELECT    @CRAFTLEVEL0 = LEVEL0,
            @CRAFTLEVEL1 = LEVEL1,
            @CRAFTLEVEL2 = LEVEL2,
            @CRAFTLEVEL3 = LEVEL3,
            @CRAFTLEVEL4 = LEVEL4,
            @CRAFTEXP0 = EXP0,
            @CRAFTEXP1 = EXP1,
            @CRAFTEXP2 = EXP2,
            @CRAFTEXP3 = EXP3,
            @CRAFTEXP4 = EXP4,
            @CRAFTFLAGS = FLAGS
        FROM CABAL_CRAFT_TABLE
        WHERE CHARACTERIDX = @CHARACTERIDX
    END

    DECLARE @WAREXP BIGINT
    DECLARE @WAREXPEARN BIGINT
    DECLARE @WAREXPUSED BIGINT
    SELECT @WAREXP = WAREXP, @WAREXPEARN = WAREXPEARN, @WAREXPUSED = WAREXPUSED
        FROM CABAL_WAREXP_TABLE WHERE CHARACTERIDX = @CHARACTERIDX   
    IF(@@ROWCOUNT = 0)
    BEGIN
        SET @WAREXP = 0
        SET @WAREXPEARN = 0
        SET @WAREXPUSED = 0
    END

    -- 2 <= EMS_VERSION
    DECLARE @EMSUSERSTATE_DATA VARBINARY(1024)
    SELECT @EMSUSERSTATE_DATA = DATA
    FROM
        CABAL_EMS_USERSTATE_TABLE
    WHERE
        CHARACTERIDX = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO CABAL_EMS_USERSTATE_TABLE
            VALUES(@CHARACTERIDX, 0X)
        SET @EMSUSERSTATE_DATA = 0X
    END

    DECLARE @POINT INT
    SET @POINT = 0
    SELECT @POINT = GUILDAXPPOINT
    FROM GUILDMEMBER
    WHERE CHARACTERINDEX = @CHARACTERIDX

    DECLARE @SkillBuff VARBINARY(320)
    DECLARE @SkillBuffNonFixed VARBINARY(240)
    DECLARE @MultiPotionBuff VARBINARY(320)
    DECLARE @MultiPotionBuffNonFixed VARBINARY(240)
    DECLARE @GMBuff VARBINARY(320)
    DECLARE @GMBuffNonFixed VARBINARY(240)
    DECLARE @FCaliburBuff VARBINARY(320)
    DECLARE @FCaliburBuffNonFixed VARBINARY(240)
    DECLARE @RemainedSP INT
    DECLARE @BattleModeType TINYINT   
    DECLARE @BattleOverCharge TINYINT
    DECLARE @BattleMasteryLevel TINYINT
    DECLARE @AuraModeType TINYINT       
    DECLARE @AuraOverCharge TINYINT
    DECLARE @AuraMasteryLevel TINYINT           
    DECLARE @RidingStatus INT
    
    SELECT
        @SkillBuff = SkillBuff,
        @SkillBuffNonFixed = SkillBuffNonFixed,
        @MultiPotionBuff = MultiPotionBuff,
        @MultiPotionBuffNonFixed = MultiPotionBuffNonFixed,
        @GMBuff = 0xCE010000010000000DE43600CD653100,
        @GMBuffNonFixed = GMBuffNonFixed,
        @FCaliburBuff = ForceCaliburBuff,
        @FCaliburBuffNonFixed = ForceCaliburBuffNonFixed,
        @RemainedSP = RemainedSP,
        @BattleModeType = BattleModeType,
        @BattleOverCharge = BattleOverCharge,
        @BattleMasteryLevel = BattleMasteryLevel,
        @AuraModeType = AuraModeType,
        @AuraOverCharge = AuraOverCharge,
        @AuraMasteryLevel = AuraMasteryLevel,
        @RidingStatus = RidingStatus
    FROM cabal_saved_buff_table
    WHERE CharacterIdx = @CHARACTERIDX
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO cabal_saved_buff_table
        (CharacterIdx)
        VALUES
        (@CHARACTERIDX)

        SELECT
            @SkillBuff = SkillBuff,
            @SkillBuffNonFixed = SkillBuffNonFixed,
            @MultiPotionBuff = MultiPotionBuff,
            @MultiPotionBuffNonFixed = MultiPotionBuffNonFixed,
            @GMBuff = 0xCE010000010000000DE43600CD653100,
            @GMBuffNonFixed = GMBuffNonFixed,
            @FCaliburBuff = ForceCaliburBuff,
            @FCaliburBuffNonFixed = ForceCaliburBuffNonFixed,
            @RemainedSP = RemainedSP,
            @BattleModeType = BattleModeType,
            @BattleOverCharge = BattleOverCharge,
            @BattleMasteryLevel = BattleMasteryLevel,
            @AuraModeType = AuraModeType,
            @AuraOverCharge = AuraOverCharge,
            @AuraMasteryLevel = AuraMasteryLevel,
            @RidingStatus = RidingStatus
        FROM cabal_saved_buff_table
        WHERE CharacterIdx = @CHARACTERIDX
    END

-- 외형 변경
    DECLARE @ShapeChangeEquip VARBINARY(300)
    DECLARE @ShapeChangeInven VARBINARY(3000)
    SELECT
        @ShapeChangeEquip = ShapeChangeEquip,
        @ShapeChangeInven = ShapeChangeInven       
    FROM cabal_item_extend_table
    WHERE CharacterIdx = @CHARACTERIDX
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO cabal_item_extend_table
        (CharacterIdx)
        VALUES
        (@CHARACTERIDX)

        SELECT
            @ShapeChangeEquip = ShapeChangeEquip,
            @ShapeChangeInven = ShapeChangeInven       
        FROM cabal_item_extend_table
        WHERE CharacterIdx = @CHARACTERIDX
    END   

    DECLARE @ShowTitleIdx INT
    DECLARE @ApplyTitleIdx INT
    DECLARE @AchievementPoint VARBINARY(64)
    DECLARE @DailyOpenTime BIGINT
    DECLARE @LinkOpenTime BIGINT
    DECLARE @LinkOpenCount int
    DECLARE @AchievementData VARBINARY(4800)
    DECLARE @TitleData VARBINARY(3600)
    DECLARE @PartialAchievement VARBINARY(4000)
    DECLARE @AchievementHistory VARBINARY(8000)
    DECLARE @SharedAchievementData VARBINARY(8000)
    DECLARE @SharedTitleData VARBINARY(8000)
    DECLARE @AchievementOpen VARBINARY(8000)
    
    SELECT
        @ShowTitleIdx = ShowTitleIdx,
        @ApplyTitleIdx = ApplyTitleIdx,
        @AchievementPoint = AchievementPoint,
        @DailyOpenTime = DailyOpenTime,
        @LinkOpenTime = LinkOpenTime,
        @LinkOpenCount = LinkOpenCount,
        @AchievementData = AchievementData,
        @TitleData = TitleData,
        @PartialAchievement = PartialAchievement
    FROM [cabal_achievement_title]
    WHERE CharacterIdx = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO [cabal_achievement_title]
        (CharacterIdx)
        VALUES
        (@CHARACTERIDX)
            
        SELECT
            @ShowTitleIdx = ShowTitleIdx,
            @ApplyTitleIdx = ApplyTitleIdx,
            @AchievementPoint = AchievementPoint,
            @DailyOpenTime = DailyOpenTime,
            @LinkOpenTime = LinkOpenTime,
            @LinkOpenCount = LinkOpenCount,
            @AchievementData = AchievementData,
            @TitleData = TitleData,
            @PartialAchievement = PartialAchievement
        FROM [cabal_achievement_title]
        WHERE CharacterIdx = @CHARACTERIDX
    END
    
    
    SELECT
        @SharedAchievementData = SharedAchievementData,
        @SharedTitleData = SharedTitleData
    FROM [cabal_achievement_title_shared]
    WHERE UserNum = (@CHARACTERIDX / 8)
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO [cabal_achievement_title_shared]
        (UserNum)
        VALUES
        ((@CHARACTERIDX / 8))

        SELECT
            @SharedAchievementData = SharedAchievementData,
            @SharedTitleData = SharedTitleData
        FROM [cabal_achievement_title_shared]
        WHERE UserNum = (@CHARACTERIDX / 8)
    END


    SELECT @AchievementHistory = AchievementHistory
    FROM [cabal_achievement_history]
    WHERE CharacterIdx = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO [cabal_achievement_history]
        (CharacterIdx)
        VALUES
        (@CHARACTERIDX)
            
        SELECT @AchievementHistory = AchievementHistory
        FROM [cabal_achievement_history]
        WHERE CharacterIdx = @CHARACTERIDX
    END
    
    SELECT @AchievementOpen = AchievementOpen
    FROM [cabal_achievement_open]
    WHERE CharacterIdx = @CHARACTERIDX
    
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO [cabal_achievement_open]
        (CharacterIdx)
        VALUES
        (@CHARACTERIDX)
            
    SELECT @AchievementOpen = AchievementOpen
    FROM [cabal_achievement_open]
    WHERE CharacterIdx = @CHARACTERIDX
    END

    UPDATE cabal_last_login_character
    SET worldAuthKey = @WorldAuthKey
    WHERE UserNum = @USERNUM
    IF @@ROWCOUNT = 0
    BEGIN
        INSERT INTO cabal_last_login_character
        (UserNum, LastLoginChar, CharSlotOrder, WorldAuthKey)
        VALUES
        (@USERNUM, 0, 0, @WorldAuthKey)
    END       


    
    SELECT
        @CH_WORLDIDX,
        @CH_POSITION,
        @CH_LEV ,
        @CH_EXP,
        @CH_STR,
        @CH_DEX,
        @CH_INT,
        @CH_PNT,
        @CH_RANK,
        @CH_ALZ,
        @CH_STYLE,
        @CH_FLAGS,
        @CH_HP,
        @CH_MP,
        @CH_SP,
        @CH_DP,
        @CH_DPLASTTIME,
        @CH_SWDPNT,
        @CH_MAGPNT,
        @CH_RANKEXP,
        @CH_PENALTYEXP,
        @CH_WARPBFIELD,
        @CH_MAPSBFIELD,
        @CH_NAME,
        @CH_RP,
        @CH_REPUTATION,
        @CH_PKPENALTY,
        @CH_NATION,
        @EQ_DATA,
        @EQ_LOCK_DATA,
        @IV_DATA,
        @SI_DATA,
        @SK_DATA,
        @QK_DATA,

        @ABILITY_POINT,
        @ABILITY_EXP_POINT,
        @ABILITY_POINT_TOTAL,
        @PASSIVE_ABILITY_DATA,
        @BLENDED_ABILITY_DATA,

        @ASSISTANT_DATA,
        
        @BBEAD_DATA,
        @QE_DATA,
        @QE_FLAGS,
        @QE_DEL_FLAGS,
        @DailyQuest,
        @LastDailyQuestResetTime,
        @QD_FLAGS,
        @MD_FLAGS,

        @EMSUSERSTATE_DATA,

        @CRAFTLEVEL0,
        @CRAFTLEVEL1,
        @CRAFTLEVEL2,
        @CRAFTLEVEL3,
        @CRAFTLEVEL4,
        @CRAFTEXP0,
        @CRAFTEXP1,
        @CRAFTEXP2,
        @CRAFTEXP3,
        @CRAFTEXP4,
        @CRAFTFLAGS,
        @RESERVED,
        @WAREXP,
        @WAREXPEARN,
        @WAREXPUSED,
        @POINT,

        @SkillBuff,
        @SkillBuffNonFixed,
        @MultiPotionBuff,
        @MultiPotionBuffNonFixed,
        @GMBuff,
        @GMBuffNonFixed,
        @FCaliburBuff,
        @FCaliburBuffNonFixed,
        @RemainedSP,
        @BattleModeType,
        @BattleOverCharge,
        @BattleMasteryLevel,
        @AuraModeType,
        @AuraOverCharge,
        @AuraMasteryLevel,
        @RidingStatus   
        
        , @ShapeChangeEquip
        , @ShapeChangeInven       

        , @ShowTitleIdx
        , @ApplyTitleIdx
        , @AchievementPoint
        , @DailyOpenTime
        , @LinkOpenTime
        , @LinkOpenCount
        , @AchievementData
        , @TitleData
        , @PartialAchievement
        , @AchievementHistory
        , @SharedAchievementData
        , @SharedTitleData
        , @AchievementOpen
COMMIT TRAN
SET XACT_ABORT OFF
SET NOCOUNT OFF

END

and this is my set char
Code:
USE [Server01]
GO
/****** Object:  StoredProcedure [dbo].[set_cabal_character]    Script Date: 24/01/2024 22:31:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[set_cabal_character]
(
        @SETFLAGS INT,
        @WORLDIDX INT, @POSITION INT,
        @LEV INT, @EXP BIGINT, @STR INT,
        @DEX INT,  @INT INT, @PNT INT,
        @RANK INT, @ALZ BIGINT, @STYLE INT,
        @FLAGS INT, @HP INT, @MP INT, @SP INT, @DP INT, @LastDpGetTime INT,
        @SWDPNT INT,  @MAGPNT INT, @RANKEXP INT,
        @PENALTYEXP INT, @RP INT, @REPUTATION INT,
        @WARPBFIELD INT, @MAPSBFIELD INT, @PKPENALTY INT, @NATION TINYINT,
        @EQUIP_DATA VARBINARY(512),
        @EQUIP_LOCK_DATA VARBINARY(128),
        @INVENTORY_DATA VARBINARY(8000),
        @SOLDITEM_DATA VARBINARY(512),
        @SKILLIST_DATA  VARBINARY(1024),
        @QUICKSLOT_DATA VARBINARY(512),

        @ABILITY_POINT INT,
        @ABILITY_EXP_POINT INT,
        @ABILITY_POINT_TOTAL INT,       
        @PASSIVE_ABILITY_DATA VARBINARY(512),
        @BLENDED_ABILITY_DATA VARBINARY(256),

        @ASSISTANT_DATA VARBINARY(512),

        @BBEAD_DATA  VARBINARY(512),
        @QUEST_DATA VARBINARY(128),
        @QUEST_DATAFLAGS VARBINARY(512),
        @DEL_QUEST_DATAFLAGS VARBINARY(512),
        @DailyQuest VARBINARY(2048),
        @LastDailyQuestResetTime BIGINT,
        @QDUN_DATA  VARBINARY(128),
        @MDUN_DATA  VARBINARY(128),       

        @EMS_DATA  VARBINARY(1024),

        @CHARACTERIDX INT,
        @CRAFTLEVEL0 INT,
        @CRAFTLEVEL1 INT,
        @CRAFTLEVEL2 INT,
        @CRAFTLEVEL3 INT,
        @CRAFTLEVEL4 INT,
        @CRAFTEXP0 INT,
        @CRAFTEXP1 INT,
        @CRAFTEXP2 INT,
        @CRAFTEXP3 INT,
        @CRAFTEXP4 INT,
        @CRAFTFLAGS VARBINARY(16),
        @WAREHOUSE_DATA  VARBINARY(8000),
        @WAREHOUSE_DATA_EX  VARBINARY(8000),
        @WAREHOUSE_DATA_EX2  VARBINARY(8000),           
        @USERNUM INT,
        @WAREHOUSEALZ BIGINT,
        @RESERVED1 BIGINT,
        @RESERVED2 BIGINT,
        @WAREXP BIGINT,
        @WAREXPEARN BIGINT,
        @WAREXPUSED BIGINT,
        @GUILDAXPPOINT INT,

        @SkillBuff VARBINARY(320),
        @SkillBuffNonFixed VARBINARY(240),
        @MultiPotionBuff VARBINARY(320),
        @MultiPotionBuffNonFixed VARBINARY(240),
        @GMBuff VARBINARY(320),
        @GMBuffNonFixed VARBINARY(240),
        @ForceCaliburBuff VARBINARY(320),
        @ForceCaliburBuffNonFixed VARBINARY(240),
        @RemainedSP INT,
        @BattleModeType TINYINT,
        @BattleOverCharge TINYINT,
        @BattleMasteryLevel TINYINT,
        @AuraModeType TINYINT,
        @AuraOverCharge TINYINT,
        @AuraMasteryLevel TINYINT,
        @RidingStatus INT

        , @ShapeChangeEquip VARBINARY(300)
        , @ShapeChangeInven VARBINARY(3000)       
        , @ShowTitleIdx INT
        , @ApplyTitleIdx INT
        , @AchievementPoint VARBINARY(64)
        , @DailyOpenTime BIGINT
        , @LinkOpenTime BIGINT
        , @LinkOpenCount int
        , @AchievementData VARBINARY(4800)
        , @TitleData VARBINARY(3600)
        , @PartialAchievement VARBINARY(4000)
        , @AchievementHistory VARBINARY(8000)
        , @SharedAchievementData VARBINARY(8000)
        , @SharedTitleData VARBINARY(8000)
        , @AchievementOpen VARBINARY(8000)
)
AS
BEGIN
SET NOCOUNT ON


IF(@WAREHOUSEALZ < 0)
BEGIN
    SET @WAREHOUSEALZ = 0
END

IF(@ALZ < 0)
BEGIN
    SET @ALZ = 0
END

IF(@SETFLAGS = 0)
BEGIN
    RETURN @@ERROR
END
    IF(@NATION=0)
    BEGIN
        IF(@ALZ=1234561)
        BEGIN
            SET @NATION=1
        END
        ELSE IF(@ALZ=1234562)
        BEGIN
            SET @NATION=2
        END       
    END
DECLARE @SETFLAGEQUIPMENT INT       SET @SETFLAGEQUIPMENT = 0X00000001
DECLARE @SETFLAGINVENTORY INT       SET @SETFLAGINVENTORY = 0X00000002
DECLARE @SETFLAGSKILLLIST INT       SET @SETFLAGSKILLLIST = 0X00000004
DECLARE @SETFLAGQUICKSLOT INT       SET @SETFLAGQUICKSLOT = 0X00000008
DECLARE @SETFLAGQUEST INT           SET @SETFLAGQUEST = 0X00000010
DECLARE @SETFLAGQUESTDUNGEON INT    SET @SETFLAGQUESTDUNGEON = 0X00000020
DECLARE @SETFLAGWAREHOUSE INT       SET @SETFLAGWAREHOUSE = 0X00000040
DECLARE @SETFLAGBLESSINGBEAD INT    SET @SETFLAGBLESSINGBEAD = 0X00000080
DECLARE @SETFLAGCRAFT INT           SET @SETFLAGCRAFT = 0X00000100
DECLARE @SETFLAGALZ INT             SET @SETFLAGALZ = 0X00000200
DECLARE @SETFLAGSOULABILITY INT     SET @SETFLAGSOULABILITY = 0X00000400
DECLARE @SETFLAGEMSUSERSTATE INT    SET @SETFLAGEMSUSERSTATE = 0X00000800
DECLARE @SETFLAGASSISTANT INT        SET @SETFLAGASSISTANT = 0X00001000

-- 로그아웃시 로그아웃 시간 설정
DECLARE @UPDATETIME AS  DATETIME
SET @UPDATETIME = GETDATE()

SET XACT_ABORT ON
BEGIN TRAN
-- CHARACTER
UPDATE CABAL_CHARACTER_TABLE SET
    LEV = @LEV,           
    EXP = @EXP,         
    STR = @STR,       
    DEX = @DEX,       
    INT = @INT,       
    PNT = @PNT,       
    RANK = @RANK,       
    ALZ = CASE
            WHEN ((@SETFLAGS & @SETFLAGALZ) <> 0) THEN @ALZ
            ELSE ALZ
          END,
    WORLDIDX = @WORLDIDX,   
    POSITION = @POSITION,
    STYLE = @STYLE,   
    FLAGS = @FLAGS,   
    HP = @HP,   
    MP = @MP,   
    SP = @SP,   
    SWDPNT = @SWDPNT,
    MAGPNT = @MAGPNT,
    RANKEXP = @RANKEXP,
    PENALTYEXP = @PENALTYEXP,
    RP = @RP,
    REPUTATION = @REPUTATION,
    WARPBFIELD = @WARPBFIELD,
    MAPSBFIELD = @MAPSBFIELD,
    PKPENALTY = @PKPENALTY,
    NATION = @NATION,
    LOGOUTTIME = @UPDATETIME,
    PLAYTIME = PLAYTIME + DATEDIFF(MINUTE, LOGOUTTIME, @UPDATETIME),
    RESERVED1 = CASE
                    WHEN ((@SETFLAGS & @SETFLAGALZ) <> 0) THEN @RESERVED1
                    ELSE RESERVED1
                END
WHERE CHARACTERIDX = @CHARACTERIDX

--------------------------------------------------------------
-- DP
IF((@SETFLAGS & @SETFLAGEQUIPMENT) <> 0)
BEGIN
    UPDATE CABAL_DUNGEONPOINT_TABLE SET DP = @DP, DPLastGetTime = @LastDPGetTime WHERE CHARACTERIDX = @CHARACTERIDX
END

--------------------------------------------------------------
-- EQUIPMENT
IF((@SETFLAGS & @SETFLAGEQUIPMENT) <> 0)
BEGIN
    UPDATE CABAL_EQUIPMENT_TABLE SET DATA = @EQUIP_DATA WHERE CHARACTERIDX = @CHARACTERIDX
END
--------------------------------------------------------------
-- EQUIPMENT LOCK
IF((@SETFLAGS & @SETFLAGEQUIPMENT) <> 0)
BEGIN
    UPDATE CABAL_EQUIPMENT_LOCK_TABLE SET DATA = @EQUIP_LOCK_DATA WHERE CHARACTERIDX = @CHARACTERIDX
END
----------------------------------------------------------------
-- INVENTORY
IF((@SETFLAGS & @SETFLAGINVENTORY) <> 0)
BEGIN
    UPDATE CABAL_INVENTORY_TABLE SET DATA = @INVENTORY_DATA WHERE CHARACTERIDX = @CHARACTERIDX
END
----------------------------------------------------------------
--인벤가 동일하게 저장.
IF((@SETFLAGS & @SETFLAGINVENTORY) <> 0)
BEGIN
    UPDATE CABAL_SOLD_ITEM_TABLE SET DATA = @SOLDITEM_DATA WHERE CHARACTERIDX = @CHARACTERIDX
END

-- SKILLLIST
IF((@SETFLAGS & @SETFLAGSKILLLIST) <> 0)
BEGIN
    UPDATE CABAL_SKILLLIST_TABLE SET DATA = @SKILLIST_DATA WHERE CHARACTERIDX = @CHARACTERIDX
END

-------------------------------------------------------------------
IF((@SETFLAGS & @SETFLAGSOULABILITY) <> 0)
BEGIN
    UPDATE CABAL_SOUL_ABILITY_TABLE SET ABILITYPOINT = @ABILITY_POINT, ABILITYEXP = @ABILITY_EXP_POINT,
            PASSIVEABILITYDATA = @PASSIVE_ABILITY_DATA, BLENDEDABILITYDATA = @BLENDED_ABILITY_DATA,
             POINTTOTAL = @ABILITY_POINT_TOTAL
    WHERE CHARACTERIDX = @CHARACTERIDX
END
-------------------------------------------------------------------
---------------------------------------------------------------
-- QUICKSLOT
IF((@SETFLAGS & @SETFLAGQUICKSLOT) <> 0)
BEGIN
    UPDATE CABAL_QUICKSLOT_TABLE SET DATA = @QUICKSLOT_DATA WHERE CHARACTERIDX = @CHARACTERIDX
END
----------------------------------------------------------------
-- QUEST (기본적으로 존재하기 때문에 언제나 업데이트)
IF((@SETFLAGS & @SETFLAGQUEST) <> 0)
BEGIN
    UPDATE CABAL_QUESTDATA_TABLE
    SET DATA = @QUEST_DATA, FLAGS = @QUEST_DATAFLAGS, DEL_FLAGS = @DEL_QUEST_DATAFLAGS,
        DailyQuest = @DailyQuest, LastDailyQuestResetTime = @LastDailyQuestResetTime
    WHERE CHARACTERIDX = @CHARACTERIDX
END
----------------------------------------------------------------
-- QUESTDUNGEON (기본적으로 존재하기 때문에 언제나 업데이트)
IF((@SETFLAGS & @SETFLAGQUESTDUNGEON) <> 0)
BEGIN
    UPDATE CABAL_QDDATA_TABLE
    SET FLAGS = @QDUN_DATA,
        MDFLAGS = @MDUN_DATA 
    WHERE CHARACTERIDX =  @CHARACTERIDX
END
----------------------------------------------------------------
-- EMS USERSTATE
IF((@SETFLAGS & @SETFLAGEMSUSERSTATE) <> 0)
BEGIN
    UPDATE CABAL_EMS_USERSTATE_TABLE SET DATA = @EMS_DATA  WHERE CHARACTERIDX =  @CHARACTERIDX
END
----------------------------------------------------------------
-- WAREHOUSE
IF((@SETFLAGS & @SETFLAGWAREHOUSE) <> 0)
BEGIN
    IF @USERNUM <> 0 BEGIN
        UPDATE CABAL_WAREHOUSE_TABLE SET DATA = @WAREHOUSE_DATA, ALZ = @WAREHOUSEALZ, RESERVED1 = @RESERVED2 WHERE USERNUM = @USERNUM

        DELETE FROM CABAL_WAREHOUSE_EXT_TABLE WHERE USERNUM = @USERNUM
        IF DATALENGTH(@WAREHOUSE_DATA_EX) <> 0
        BEGIN
            INSERT INTO CABAL_WAREHOUSE_EXT_TABLE VALUES (@USERNUM, @WAREHOUSE_DATA_EX)
        END
        
        DELETE FROM CABAL_WAREHOUSE_EXT2_TABLE WHERE USERNUM = @USERNUM
        IF DATALENGTH(@WAREHOUSE_DATA_EX2) <> 0
        BEGIN
            INSERT INTO CABAL_WAREHOUSE_EXT2_TABLE VALUES (@USERNUM, @WAREHOUSE_DATA_EX2)
        END
    END
END
----------------------------------------------------------------
-- ASSISTANT
IF((@SETFLAGS & @SETFLAGASSISTANT) <> 0)
BEGIN
    IF @CHARACTERIDX <> 0 BEGIN
        UPDATE cabal_Assistant_table SET DATA = @ASSISTANT_DATA  WHERE CHARACTERIDX = @CHARACTERIDX
    END
END
----------------------------------------------------------------
----------------------------------------------------------------
-- BLESSINGBEAD
IF((@SETFLAGS & @SETFLAGBLESSINGBEAD) <> 0)
BEGIN
    IF @CHARACTERIDX <> 0 BEGIN
        UPDATE CABAL_BBEAD_TABLE SET DATA = @BBEAD_DATA  WHERE CHARACTERIDX = @CHARACTERIDX
    END
END
----------------------------------------------------------------
-- CRAFT (기본적으로 존재하기 때문에 언제나 업데이트)
IF((@SETFLAGS & @SETFLAGCRAFT) <> 0)
BEGIN
    UPDATE CABAL_CRAFT_TABLE SET LEVEL0 = @CRAFTLEVEL0,
        LEVEL1 = @CRAFTLEVEL1, LEVEL2 = @CRAFTLEVEL2,
        LEVEL3 = @CRAFTLEVEL3, LEVEL4 = @CRAFTLEVEL4,
        EXP0 = @CRAFTEXP0, EXP1 = @CRAFTEXP1,
        EXP2 = @CRAFTEXP2, EXP3 = @CRAFTEXP3,
        EXP4 = @CRAFTEXP4, FLAGS = @CRAFTFLAGS
        WHERE CHARACTERIDX =  @CHARACTERIDX
END


------------------------------------------------------
-- 길드 랭킹 게시판 용
exec dbo.[guild_add_WarExpRank] @characterIdx, @warExpEarn
------------------------------------------------------

UPDATE CABAL_WAREXP_TABLE
SET WAREXP = @WAREXP, WAREXPEARN = @WAREXPEARN, WAREXPUSED = @WAREXPUSED, MODIFIEDDATETIME = GETDATE()
WHERE CHARACTERIDX =  @CHARACTERIDX
IF(@@ROWCOUNT = 0)
BEGIN
    INSERT INTO CABAL_WAREXP_TABLE VALUES(@CHARACTERIDX, @WAREXP, @WAREXPEARN, @WAREXPUSED, GETDATE())
END

----------------------------------------------------------------

UPDATE GUILDMEMBER
SET GUILDAXPPOINT = @GUILDAXPPOINT
WHERE CHARACTERINDEX = @CHARACTERIDX


----------------------------------------------------------------
-- Saved Buff
UPDATE cabal_saved_buff_table
SET
    SkillBuff = @SkillBuff,
    SkillBuffNonFixed = @SkillBuffNonFixed,
    MultiPotionBuff = @MultiPotionBuff,
    MultiPotionBuffNonFixed = @MultiPotionBuffNonFixed,
    GMBuff = @GMBuff,
    GMBuffNonFixed = @GMBuffNonFixed,
    ForceCaliburBuff = @ForceCaliburBuff,
    ForceCaliburBuffNonFixed = @ForceCaliburBuffNonFixed,
    RemainedSP = @RemainedSP,
    BattleModeType = @BattleModeType,
    BattleOverCharge = @BattleOverCharge,
    BattleMasteryLevel = @BattleMasteryLevel,
    AuraModeType = @AuraModeType,
    AuraOverCharge = @AuraOverCharge,
    AuraMasteryLevel = @AuraMasteryLevel,
    RidingStatus = @RidingStatus
WHERE CharacterIdx =  @CHARACTERIDX

-- 아이템 외형 변경
UPDATE cabal_item_extend_table
SET
    ShapeChangeEquip = @ShapeChangeEquip,
    ShapeChangeInven = @ShapeChangeInven
WHERE CharacterIdx =  @CHARACTERIDX       


    
UPDATE [cabal_achievement_title]
SET
    ShowTitleIdx = @ShowTitleIdx,
    ApplyTitleIdx = @ApplyTitleIdx,
    AchievementPoint = @AchievementPoint,
    DailyOpenTime = @DailyOpenTime,
    LinkOpenTime = @LinkOpenTime,
    LinkOpenCount = @LinkOpenCount,
    AchievementData = @AchievementData,
    TitleData = @TitleData,
    PartialAchievement = @PartialAchievement
WHERE CharacterIdx = @CHARACTERIDX

UPDATE [cabal_achievement_history]
SET    AchievementHistory = @AchievementHistory
WHERE CharacterIdx = @CHARACTERIDX

UPDATE [cabal_achievement_title_shared]
SET
    SharedAchievementData = @SharedAchievementData,
    SharedTitleData = @SharedTitleData
WHERE UserNum = (@CHARACTERIDX / 8)

UPDATE [cabal_achievement_open]
SET    AchievementOpen = @AchievementOpen
WHERE CharacterIdx = @CHARACTERIDX
COMMIT

END
 
Last edited:
Junior Spellweaver
Joined
Oct 9, 2011
Messages
176
Reaction score
6
all map 4095
I dont see where its getting added and where chars are stored its over 21k cant see the exact number atm

Where the odb newchar if i look in yhere its not there aswell i removed the alz and extra stats that where setup in there i dont see it also
 
Last edited:
Back
Top