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!

Reset System part 2.

Elite Diviner
Joined
Nov 13, 2015
Messages
463
Reaction score
19
is this an automatic reset if reach the required level and do logout then if log it in back then already reset? sorry for bumping old post just wanted to add an automatic reset system that has max reborn 10 with auto reset if reach level 190/200 :) thanks for those who help
 
█║▌║▌║TheMerc iful║▌║▌║█
Loyal Member
Joined
Jan 29, 2005
Messages
1,367
Reaction score
80
guybrush - Reset System part 2. - RaGEZONE Forums


some help?!
 
Joined
Sep 11, 2008
Messages
719
Reaction score
122
You can re-write it by your own skills ,
check the database -> [dbo].[cabal_character_table] , expand it goto stored proc find -> get_cabal_character_ex

The def with ep8 and this code is the tables you should supply the code with ep8 tables has ...
besides you only working with cabal_character_table check the tables and the stored proc...
 
Banned
Banned
Joined
Apr 13, 2014
Messages
734
Reaction score
76
You can re-write it by your own skills ,
check the database -> [dbo].[cabal_character_table] , expand it goto stored proc find -> get_cabal_character_ex

The def with ep8 and this code is the tables you should supply the code with ep8 tables has ...
besides you only working with cabal_character_table check the tables and the stored proc...

Thankyousomuch for the hint, but I can only find get_cabal_character and set_cabal_character_ex



Thankyousomuch for the hint, but I can only find get_cabal_character and set_cabal_character_ex

I tried to modify the get_cabal_character and use the query and I just added column Reset on my cabal_character_table ​it's successful but when I try to enter new character I can't enter in game. Just load all the time.
 
Experienced Elementalist
Joined
Jan 30, 2010
Messages
267
Reaction score
129
Execute First:
Code:
ALTER TABLE [dbo].[cabal_character_table]
ADD
 [Reset] [int] NULL DEFAULT (0)
GO

Then execute only one of these below:
Code:
USE [Server01]
GO
/****** Object:  StoredProcedure [dbo].[get_cabal_character]    Script Date: 7/6/2019 9:54:16 PM ******/
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

	--------------------------------------------------------------------------------------------------------------------------------------------
	--
	-- Reset System
	-- Author: chacina
	-- Mod: guybrush,Goldenheaven
	--
	--------------------------------------------------------------------------------------------------------------------------------------------
  	DECLARE
	@MaxLevel int,
	@ResetPoint int,
	@AlzReq bigint,
	@STR_ int,
	@DEX_ int,
	@INT_ int,
	@HP_ int,
	@MP_ int,
	@WorldIdx_ int,
	@Position_ int,
	@ClassReset_ int,
	@SPPoint  int,
	@resetlimit int,
	@reset int
	
	
	-- Basic Config
	--------------------------------------------------------------------------------------------------------------------------------------------
	SET @MaxLevel = 200		-- Level for reset
	SET @resetlimit = 3		-- Level for reset
	SET @ResetPoint = 250		-- Point for add after reset
	SET @SPPoint = 250		-- Point for add after reset
	SET @AlzReq = 1000000		-- Alz required for reset
	SET @ClassReset_ = dbo.SplitStyle('BattleStyle',@CH_STYLE)
  	-- getting the reset number
	set @reset= (select reset from cabal_character_table where CharacterIdx=@CHARACTERIDX)
	
	
	IF(@reset<=@resetlimit and @CH_LEV = @MaxLevel)
	BEGIN
		-- Class Config
		--------------------------------------------------------------------------------------------------------------------------------------------
		--Warrior
		
		IF(@ClassReset_=1)
		BEGIN
			SET @STR_ = 24			-- STR after you reset
			SET @DEX_ = 8			-- DEX after you reset
			SET @INT_ = 3			-- INT after you reset
			SET @HP_ = 3276850		-- HP after you reset
			SET @MP_ = 1310740		-- MP after you reset
			SET @WorldIdx_ = 1		-- You will born in this world
			SET @Position_ = 1376293	-- Coordenate
		END
		
		--wizard
		
		ELSE IF(@ClassReset_=2)
		BEGIN
			SET @STR_ = 3			-- STR after you reset
			SET @DEX_ = 6			-- DEX after you reset
			SET @INT_ = 26			-- INT after you reset
			SET @HP_ = 2621480		-- HP after you reset
			SET @MP_ = 2293795		-- MP after you reset
			SET @WorldIdx_ = 2		-- You will born in this world
			SET @Position_ = 4915405	-- Coordenate
	    	END
	
		--blader
		
		ELSE IF(@ClassReset_=3)
		BEGIN
			SET @STR_ = 16			-- STR after you reset
			SET @DEX_ = 16			-- DEX after you reset
			SET @INT_ = 3			-- INT after you reset
			SET @HP_ = 3276850		-- HP after you reset
			SET @MP_ = 1310740		-- MP after you reset
			SET @WorldIdx_ = 2		-- You will born in this world
			SET @Position_ = 4915405		-- Coordenate
		END
		
		--forcer archer
		
		ELSE IF(@ClassReset_=4)
		BEGIN
			SET @STR_ = 6			-- STR after you reset
			SET @DEX_ = 12			-- DEX after you reset
			SET @INT_ = 17			-- INT after you reset
			SET @HP_ = 2621480		-- HP after you reset
			SET @MP_ = 2293795		-- MP after you reset
			SET @WorldIdx_ = 3		-- You will born in this world
			SET @Position_ = 10485821	-- Coordenate
	    	END
		
		--forcer shielder
		
		ELSE IF(@ClassReset_=5)
		BEGIN
			SET @STR_ = 15			-- STR after you reset
			SET @DEX_ = 9			-- DEX after you reset
			SET @INT_ = 11			-- INT after you reset
			SET @HP_ = 2949165		-- HP after you reset
			SET @MP_ = 1966110		-- MP after you reset
			SET @WorldIdx_ = 1		-- You will born in this world
			SET @Position_ = 1376293	-- Coordenate
	    	END
		
		--forcer blader
		
		ELSE IF(@ClassReset_=6)
		BEGIN
			SET @STR_ = 12			-- STR after you reset
			SET @DEX_ = 11			-- DEX after you reset
			SET @INT_ = 12			-- INT after you reset
			SET @HP_ = 2949165		-- HP after you reset
			SET @MP_ = 1966110		-- MP after you reset
			SET @WorldIdx_ = 3		-- You will born in this world
			SET @Position_ = 10485821	-- Coordenate
	    	END
		
		
	    
		UPDATE cabal_character_table
			SET LEV = 1, EXP = 0, STR = @STR_, DEX = @DEX_, INT = @INT_, SP= @SPPoint * (@reset + 1),  PNT = @ResetPoint * (@reset + 1), 
			HP = @HP_, MP = @MP_, Alz = Alz - @AlzReq, WorldIdx = @WorldIdx_,
			Position = @Position_, Reset = @reset + 1
			WHERE LEV = @MaxLevel AND Alz >= @AlzReq AND Login = 0 AND CharacterIdx=@CHARACTERIDX
	END
  
	---------------------------------------------------------------------------------------------------------
	-- End reset system
	---------------------------------------------------------------------------------------------------------


	-- 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 = GMBuff,
		@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 = GMBuff,
			@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

Same Procedure different features (MaxHP = Previous Lvl190 HP + (500*Resets),MaxMP = Previous Lvl190 MP + (1000*Resets), No Reset Limits, No SP changes):
Code:
USE [Server01]
GO
/****** Object:  StoredProcedure [dbo].[get_cabal_character]    Script Date: 7/7/2019 12:06:24 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Batch submitted through debugger: SQLQuery3.sql|7|0|C:\Users\Goldenheaven\AppData\Local\Temp\~vs83FA.sql
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

		--------------------------------------------------------------------------------------------------------------------------------------------
	--
	-- Reset System
	-- Author: chacina
	-- Mod: guybrush,Goldenheaven
	--
	--------------------------------------------------------------------------------------------------------------------------------------------
  	DECLARE
	@MaxLevel int,
	@ResetPoint int,
	@AlzReq bigint,
	@STR_ int,
	@DEX_ int,
	@INT_ int,
	@HP_ int,
	@MP_ int,
	@WorldIdx_ int,
	@Position_ int,
	@ClassReset_ int,
	@reset int
	
	
	-- Basic Config
	--------------------------------------------------------------------------------------------------------------------------------------------
	SET @MaxLevel = 190		-- Level for reset
	SET @ResetPoint = 250		-- Point for add after reset
	SET @AlzReq = 1000000		-- Alz required for reset
	SET @ClassReset_ = dbo.SplitStyle('BattleStyle',@CH_STYLE)
  	-- getting the reset number
	set @reset= (select reset from cabal_character_table where CharacterIdx=@CHARACTERIDX)
	
	
	IF(@CH_LEV = @MaxLevel)
	BEGIN
		-- Class Config
		--------------------------------------------------------------------------------------------------------------------------------------------
		--Warrior
		
		IF(@ClassReset_=1)
		BEGIN
			SET @STR_ = 24			-- STR after you reset
			SET @DEX_ = 8			-- DEX after you reset
			SET @INT_ = 3			-- INT after you reset
			SET @WorldIdx_ = 1		-- You will born in this world
			SET @Position_ = 1376293	-- Coordenate
		END
		
		--wizard
		
		ELSE IF(@ClassReset_=2)
		BEGIN
			SET @STR_ = 3			-- STR after you reset
			SET @DEX_ = 6			-- DEX after you reset
			SET @INT_ = 26			-- INT after you reset
			SET @WorldIdx_ = 2		-- You will born in this world
			SET @Position_ = 4915405	-- Coordenate
	    	END
	
		--blader
		
		ELSE IF(@ClassReset_=3)
		BEGIN
			SET @STR_ = 16			-- STR after you reset
			SET @DEX_ = 16			-- DEX after you reset
			SET @INT_ = 3			-- INT after you reset
			SET @WorldIdx_ = 2		-- You will born in this world
			SET @Position_ = 4915405		-- Coordenate
		END
		
		--forcer archer
		
		ELSE IF(@ClassReset_=4)
		BEGIN
			SET @STR_ = 6			-- STR after you reset
			SET @DEX_ = 12			-- DEX after you reset
			SET @INT_ = 17			-- INT after you reset
			SET @WorldIdx_ = 3		-- You will born in this world
			SET @Position_ = 10485821	-- Coordenate
	    	END
		
		--forcer shielder
		
		ELSE IF(@ClassReset_=5)
		BEGIN
			SET @STR_ = 15			-- STR after you reset
			SET @DEX_ = 9			-- DEX after you reset
			SET @INT_ = 11			-- INT after you reset
			SET @WorldIdx_ = 1		-- You will born in this world
			SET @Position_ = 1376293	-- Coordenate
	    	END
		
		--forcer blader
		
		ELSE IF(@ClassReset_=6)
		BEGIN
			SET @STR_ = 12			-- STR after you reset
			SET @DEX_ = 11			-- DEX after you reset
			SET @INT_ = 12			-- INT after you reset
			SET @WorldIdx_ = 3		-- You will born in this world
			SET @Position_ = 10485821	-- Coordenate
	    	END
		
		UPDATE cabal_character_table
			SET LEV = 1, EXP = 0, STR = @STR_, DEX = @DEX_, INT = @INT_, PNT = @ResetPoint * (@reset + 1), 
			HP = @CH_HP+ ((@reset + 1)*500), MP = @CH_MP+ ((@reset + 1)*1000), Alz = Alz - @AlzReq, WorldIdx = @WorldIdx_,
			Position = @Position_, Reset = @reset + 1
			WHERE LEV = @MaxLevel AND Alz >= @AlzReq AND Login = 0 AND CharacterIdx=@CHARACTERIDX
	END
  
	---------------------------------------------------------------------------------------------------------
	-- End reset system
	---------------------------------------------------------------------------------------------------------


	-- 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 = GMBuff,
		@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 = GMBuff,
			@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

AutoLogout Execution code (No limit,HP=Lv190HP+500*Resets,MP=Lv190MP+1000*Resets,SP=Lv190SP+250*Resets):
Code:
USE [Server01]
GO
/****** Object:  StoredProcedure [dbo].[cabal_sp_SetCharLoginStt]    Script Date: 7/8/2019 9:27:34 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[cabal_sp_SetCharLoginStt](@CharacterIdx INT, @Login INT)
AS
BEGIN
	IF(@Login = 1)
	BEGIN
		UPDATE CABAL_CHARACTER_TABLE
		SET Login = 0
		WHERE CharacterIdx BETWEEN (@CHARACTERIDX/8)*8 AND (@CharacterIdx/8)*8 + 6
	END
	
	UPDATE CABAL_CHARACTER_TABLE
	SET Login = @Login
	WHERE CharacterIdx = @CharacterIdx
	
	--------------------------------------------------------------------------------------------------------------------------------------------
	--
	-- Reset System
	-- Author: chacina
	-- Mod: guybrush,Goldenheaven
	--
	--------------------------------------------------------------------------------------------------------------------------------------------
  	DECLARE
	@MaxLevel int,
	@ResetPoint int,
	@AlzReq bigint,
	@STR_ int,
	@DEX_ int,
	@INT_ int,
	@HP_ int,
	@MP_ int,
	@WorldIdx_ int,
	@Position_ int,
	@ClassReset_ int,
	@SPPoint  int,
	@resetlimit int,
	@reset int,
	@CH_ALZ BIGINT, 
	@CH_STYLE INT, 
	@CH_LEV INT,
	@CH_HP INT,
	@CH_SP INT,
	@CH_MP INT

	SELECT 
		@CH_LEV = LEV,
		@CH_ALZ = ALZ, 
		@CH_STYLE = STYLE, 
		@CH_HP = HP, 
		@CH_MP = MP,
		@CH_SP = SP,
		@reset = Reset
	FROM CABAL_CHARACTER_TABLE
	WHERE CHARACTERIDX = @CHARACTERIDX
	IF @@ROWCOUNT = 0
	BEGIN
		SELECT -1
		COMMIT TRAN
		RETURN
	END

	-- Basic Config
	--------------------------------------------------------------------------------------------------------------------------------------------
	SET @MaxLevel = 200		-- Level for reset
	SET @ResetPoint = 250		-- Point for add after reset
	SET @SPPoint = 250		-- Point for add after reset
	SET @AlzReq = 1000000		-- Alz required for reset
	SET @ClassReset_ = dbo.SplitStyle('BattleStyle',@CH_STYLE)
	
	IF(@CH_LEV = @MaxLevel)
	BEGIN
		-- Class Config
		--------------------------------------------------------------------------------------------------------------------------------------------
		--Warrior
		
		IF(@ClassReset_=1)
		BEGIN
			SET @STR_ = 24			-- STR after you reset
			SET @DEX_ = 8			-- DEX after you reset
			SET @INT_ = 3			-- INT after you reset
			SET @WorldIdx_ = 1		-- You will born in this world
			SET @Position_ = 1376293	-- Coordenate
		END
		
		--wizard
		
		ELSE IF(@ClassReset_=2)
		BEGIN
			SET @STR_ = 3			-- STR after you reset
			SET @DEX_ = 6			-- DEX after you reset
			SET @INT_ = 26			-- INT after you reset
			SET @WorldIdx_ = 2		-- You will born in this world
			SET @Position_ = 4915405	-- Coordenate
	    	END
	
		--blader
		
		ELSE IF(@ClassReset_=3)
		BEGIN
			SET @STR_ = 16			-- STR after you reset
			SET @DEX_ = 16			-- DEX after you reset
			SET @INT_ = 3			-- INT after you reset
			SET @WorldIdx_ = 2		-- You will born in this world
			SET @Position_ = 4915405		-- Coordenate
		END
		
		--forcer archer
		
		ELSE IF(@ClassReset_=4)
		BEGIN
			SET @STR_ = 6			-- STR after you reset
			SET @DEX_ = 12			-- DEX after you reset
			SET @INT_ = 17			-- INT after you reset
			SET @WorldIdx_ = 3		-- You will born in this world
			SET @Position_ = 10485821	-- Coordenate
	    	END
		
		--forcer shielder
		
		ELSE IF(@ClassReset_=5)
		BEGIN
			SET @STR_ = 15			-- STR after you reset
			SET @DEX_ = 9			-- DEX after you reset
			SET @INT_ = 11			-- INT after you reset
			SET @WorldIdx_ = 1		-- You will born in this world
			SET @Position_ = 1376293	-- Coordenate
	    	END
		
		--forcer blader
		
		ELSE IF(@ClassReset_=6)
		BEGIN
			SET @STR_ = 12			-- STR after you reset
			SET @DEX_ = 11			-- DEX after you reset
			SET @INT_ = 12			-- INT after you reset
			SET @WorldIdx_ = 3		-- You will born in this world
			SET @Position_ = 10485821	-- Coordenate
	    	END
	
		SET @HP_ = @CH_HP/(POWER(2,16))+(500*@reset)
		SET @MP_ = @CH_MP/(POWER(2,16))+(1000*@reset)
		
		UPDATE cabal_character_table
			SET LEV = 1, EXP = 0, STR = @STR_, DEX = @DEX_, INT = @INT_, SP= @CH_SP + @SPPoint * (@reset + 1),  PNT = @ResetPoint * (@reset + 1), 
			HP = (@HP_*POWER(2, 16)+@HP_), MP = (@MP_*POWER(2, 16)+@MP_), Alz = Alz - @AlzReq, WorldIdx = @WorldIdx_,
			Position = @Position_, Reset = @reset + 1
			WHERE LEV = @MaxLevel AND Alz >= @AlzReq AND Login = 0 AND CharacterIdx=@CHARACTERIDX
	END 
---------------------------------------------------------------------------------------------------------
-- End reset system
---------------------------------------------------------------------------------------------------------
END

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

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON

Free & Not Tested But its for Ep8
If it works (and it probably should on each login):

HP & MP Edits on non autologout execution only increase maxhp & maxmp because i forgot its in int so the full number represets say:
500/500 is ‭32768500‬
 
Last edited:
Back
Top