- 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 ?
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!i dont see annything in there that sets it to that number :sCheck your get_cabal_character and set_cabal_character at Server01>Stored Procedure
1 |
2 |
2 |
4 |
1 |
4 |
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
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
I dont see where its getting added and where chars are stored its over 21k cant see the exact number atmall map 4095