DB COM ERROR(Thread:0, HRESULT:80040E57, GUID:0C733A63-2A1C-11CE-ADE5-00AA0044773D) : DB_Login(dbo.smp_login_character) : Arithmetischer Überlauffehler beim Konvertieren von expression in den int-Datentyp.
Help me pls. :D
Code:
-- start of smp_login_character
ALTER PROCEDURE [dbo].[smp_login_character]
@OUT_SID INT OUTPUT,
@OUT_ACCOUNT VARCHAR(60) OUTPUT,
@OUT_PERMISSION INT OUTPUT,
@OUT_PARTY_SID INT OUTPUT,
@OUT_GUILD_SID INT OUTPUT,
@OUT_PREV_GUILD_SID INT OUTPUT,
@OUT_GUILD_PERMISSION TINYINT OUTPUT,
@OUT_X INT OUTPUT,
@OUT_Y INT OUTPUT,
@OUT_Z INT OUTPUT,
@OUT_LAYER INT OUTPUT,
@OUT_RACE INT OUTPUT,
@OUT_SEX INT OUTPUT,
@OUT_LV INT OUTPUT,
@OUT_MAX_REACHED_LEVEL INT OUTPUT,
@OUT_EXP BIGINT OUTPUT,
@OUT_LAST_DECREASED_EXP BIGINT OUTPUT,
@OUT_HP INT OUTPUT,
@OUT_MP INT OUTPUT,
@OUT_STAMINA INT OUTPUT,
@OUT_HAVOC INT OUTPUT,
@OUT_JOB INT OUTPUT,
@OUT_JOB_DEPTH INT OUTPUT,
@OUT_JLV INT OUTPUT,
@OUT_JP INT OUTPUT,
@OUT_TOTAL_JP INT OUTPUT,
@OUT_TALENT_POINT INT OUTPUT,
@OUT_JOB_0 INT OUTPUT,
@OUT_JOB_1 INT OUTPUT,
@OUT_JOB_2 INT OUTPUT,
@OUT_JLV_0 INT OUTPUT,
@OUT_JLV_1 INT OUTPUT,
@OUT_JLV_2 INT OUTPUT,
@OUT_IP DECIMAL(18,4) OUTPUT,
@OUT_CHA INT OUTPUT,
@OUT_PKC INT OUTPUT,
@OUT_DKC INT OUTPUT,
@OUT_HUNTAHOLIC_POINT INT OUTPUT,
@OUT_HUNTAHOLIC_ENTER_COUNT INT OUTPUT,
@OUT_ETHEREAL_STONE_DURABILITY INT OUTPUT,
@OUT_SUMMON_0 INT OUTPUT,
@OUT_SUMMON_1 INT OUTPUT,
@OUT_SUMMON_2 INT OUTPUT,
@OUT_SUMMON_3 INT OUTPUT,
@OUT_SUMMON_4 INT OUTPUT,
@OUT_SUMMON_5 INT OUTPUT,
@OUT_SKIN_COLOR INT OUTPUT,
@OUT_MODEL_00 INT OUTPUT,
@OUT_MODEL_01 INT OUTPUT,
@OUT_MODEL_02 INT OUTPUT,
@OUT_MODEL_03 INT OUTPUT,
@OUT_MODEL_04 INT OUTPUT,
@OUT_HAIR_COLOR_INDEX INT OUTPUT,
@OUT_HAIR_COLOR_RGB INT OUTPUT,
@OUT_HIDE_EQUIP_FLAG INT OUTPUT,
@OUT_TEXTURE_ID INT OUTPUT,
@OUT_BELT_0 BIGINT OUTPUT,
@OUT_BELT_1 BIGINT OUTPUT,
@OUT_BELT_2 BIGINT OUTPUT,
@OUT_BELT_3 BIGINT OUTPUT,
@OUT_BELT_4 BIGINT OUTPUT,
@OUT_BELT_5 BIGINT OUTPUT,
@OUT_GOLD BIGINT OUTPUT,
@OUT_CHAOS INT OUTPUT,
@OUT_FLAG_LIST VARCHAR(1000) OUTPUT,
@OUT_CLIENT_INFO VARCHAR(4096) OUTPUT,
@OUT_LOGIN_COUNT INT OUTPUT,
@OUT_MAIN_SUMMON INT OUTPUT,
@OUT_SUB_SUMMON INT OUTPUT,
@OUT_REMAIN_SUMMON_TIME INT OUTPUT,
@OUT_PET INT OUTPUT,
@OUT_REMAIN_CHAT_BLOCK_TIME INT OUTPUT,
@ADV_CHAT_COUNT INT OUTPUT,
@OUT_LOGOUT_DURATION INT OUTPUT,
@OUT_NAME_CHANGED INT OUTPUT,
@OUT_AUTO_USED INT OUTPUT,
@OUT_GUILD_BLOCK_TIME DATETIME OUTPUT,
@OUT_PKMODE TINYINT OUTPUT,
@IN_NAME NVARCHAR(31),
@IN_ACCOUNT_ID INT
AS
SET NOCOUNT ON
BEGIN TRANSACTION
DECLARE @DELETE_TIME DATETIME;
DECLARE @ITEM_COOL_TIME_CNT INT;
DECLARE @LOGOUT_TIME DATETIME;
SELECT @DELETE_TIME = delete_time FROM dbo.Character WITH (NOLOCK) WHERE name = @IN_NAME AND account_id = @IN_ACCOUNT_ID;
IF @DELETE_TIME IS NOT NULL AND DATEPART( year, @DELETE_TIME ) > 9000
BEGIN
UPDATE dbo.Character WITH (XLOCK) SET login_count = login_count + 1, login_time = GETDATE() WHERE name = @IN_NAME AND account_id = @IN_ACCOUNT_ID;
SELECT
@OUT_SID = sid,
@OUT_ACCOUNT = account,
@OUT_PERMISSION = permission,
@OUT_PARTY_SID = party_id,
@OUT_X = x,
@OUT_Y = y,
@OUT_Z = z,
@OUT_LAYER = layer,
@OUT_RACE = race,
@OUT_SEX = sex,
@OUT_LV = lv,
@OUT_MAX_REACHED_LEVEL = max_reached_level,
@OUT_EXP = exp,
@OUT_LAST_DECREASED_EXP = last_decreased_exp,
@OUT_HP = hp,
@OUT_MP = mp,
@OUT_STAMINA = stamina,
@OUT_HAVOC = havoc,
@OUT_JOB = job,
@OUT_JOB_DEPTH = job_depth,
@OUT_JLV = jlv,
@OUT_JP = jp,
@OUT_TOTAL_JP = total_jp,
@OUT_TALENT_POINT = talent_point,
@OUT_JOB_0 = job_0,
@OUT_JOB_1 = job_1,
@OUT_JOB_2 = job_2,
@OUT_JLV_0 = jlv_0,
@OUT_JLV_1 = jlv_1,
@OUT_JLV_2 = jlv_2,
@OUT_IP = immoral_point,
@OUT_CHA = cha,
@OUT_PKC = pkc,
@OUT_DKC = dkc,
@OUT_HUNTAHOLIC_POINT = huntaholic_point,
@OUT_HUNTAHOLIC_ENTER_COUNT = huntaholic_enter_count,
@OUT_ETHEREAL_STONE_DURABILITY = ethereal_stone_durability,
@OUT_SUMMON_0 = summon_0,
@OUT_SUMMON_1 = summon_1,
@OUT_SUMMON_2 = summon_2,
@OUT_SUMMON_3 = summon_3,
@OUT_SUMMON_4 = summon_4,
@OUT_SUMMON_5 = summon_5,
@OUT_SKIN_COLOR = skin_color,
@OUT_MODEL_00 = model_00,
@OUT_MODEL_01 = model_01,
@OUT_MODEL_02 = model_02,
@OUT_MODEL_03 = model_03,
@OUT_MODEL_04 = model_04,
@OUT_HAIR_COLOR_INDEX = hair_color_index,
@OUT_HAIR_COLOR_RGB = hair_color_rgb,
@OUT_HIDE_EQUIP_FLAG = hide_equip_flag,
@OUT_TEXTURE_ID = texture_id,
@OUT_BELT_0 = belt_00,
@OUT_BELT_1 = belt_01,
@OUT_BELT_2 = belt_02,
@OUT_BELT_3 = belt_03,
@OUT_BELT_4 = belt_04,
@OUT_BELT_5 = belt_05,
@OUT_GOLD = gold,
@OUT_CHAOS = chaos,
@OUT_FLAG_LIST = flag_list,
@OUT_CLIENT_INFO = client_info,
@OUT_LOGIN_COUNT = login_count,
@OUT_MAIN_SUMMON = main_summon,
@OUT_SUB_SUMMON = sub_summon,
@OUT_REMAIN_SUMMON_TIME = remain_summon_time,
@OUT_PET = pet,
@OUT_REMAIN_CHAT_BLOCK_TIME = chat_block_time,
@ADV_CHAT_COUNT = adv_chat_count,
@LOGOUT_TIME = logout_time,
@OUT_LOGOUT_DURATION = DATEDIFF( minute, logout_time, GETDATE() ),
@OUT_NAME_CHANGED = name_changed,
@OUT_AUTO_USED = auto_used,
@OUT_PKMODE = pkmode
FROM dbo.Character WITH (NOLOCK) WHERE name = @IN_NAME AND account_id = @IN_ACCOUNT_ID;
IF EXISTS ( SELECT * FROM dbo.GuildMember WITH (NOLOCK) WHERE player_id = @OUT_SID )
BEGIN
SELECT
@OUT_GUILD_SID = guild_id,
@OUT_PREV_GUILD_SID = prev_guild_id,
@OUT_GUILD_PERMISSION = permission,
@OUT_GUILD_BLOCK_TIME = guild_block_time
FROM dbo.GuildMember WITH (NOLOCK) WHERE player_id = @OUT_SID
END
ELSE
BEGIN
SET @OUT_GUILD_SID = 0
SET @OUT_PREV_GUILD_SID = 0
SET @OUT_GUILD_PERMISSION = 0
SET @OUT_GUILD_BLOCK_TIME = '2000-1-1'
END
IF @OUT_SID IS NOT NULL
BEGIN
SELECT @ITEM_COOL_TIME_CNT = count(*) FROM dbo.ItemCoolTime WITH (NOLOCK) WHERE owner_id = @OUT_SID;
IF @ITEM_COOL_TIME_CNT < 1
BEGIN
INSERT INTO dbo.ItemCoolTime (
owner_id,
cool_time_00, cool_time_01, cool_time_02, cool_time_03, cool_time_04,
cool_time_05, cool_time_06, cool_time_07, cool_time_08, cool_time_09,
cool_time_10, cool_time_11, cool_time_12, cool_time_13, cool_time_14,
cool_time_15, cool_time_16, cool_time_17, cool_time_18, cool_time_19,
cool_time_20, cool_time_21, cool_time_22, cool_time_23, cool_time_24,
cool_time_25, cool_time_26, cool_time_27, cool_time_28, cool_time_29,
cool_time_30, cool_time_31, cool_time_32, cool_time_33, cool_time_34,
cool_time_35, cool_time_36, cool_time_37, cool_time_38, cool_time_39
)
VALUES
(
@OUT_SID,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
);
END
IF @ADV_CHAT_COUNT > 0
BEGIN
DECLARE @current_t DATETIME
DECLARE @renew_t DATETIME
set @current_t = GETDATE()
set @renew_t = CONVERT( DATETIME, LTRIM(STR(YEAR( @current_t ) )) + '-' + LTRIM(STR( MONTH( @current_t ) ) )+ '-' + LTRIM(STR(DAY( @current_t ) ) ) + ' 06:00:00', 120 )
IF @current_t < @renew_t
BEGIN
SET @renew_t = DATEADD( day, -1, @renew_t )
END
IF @renew_t > @LOGOUT_TIME
BEGIN
SET @ADV_CHAT_COUNT = 0
END
END
END
END
DECLARE @ERR INT
SET @ERR = @@ERROR
COMMIT TRANSACTION
RETURN @ERR
-- end of smp_login_character