Hotkeys wont save?

06/24/2013 05:07 piratehat2#1
Hey guys, I have a small problem with my skills staying on the skill bar after i log off. I don't really know where to start looking to solve the issue.

The files i am using are the 8.1 files found here:
[Only registered and activated users can see links. Click Here To Register...]

I would be thankful to receive help from you guys c:.
06/24/2013 06:13 Azreil#2
Open your gameserver.opt ....change

"T game.cash_usable_server:1"
To...
"T game.cash_usable_server:0"

Delete your gameserver.eop....run rappelz compress....drag your newly edited gameserver.opt over to the compress window and drop it in there....poof..now the skill bar wont vanish.
06/24/2013 06:55 piratehat2#3
Thank you very much for the quick response and easy fix
06/24/2013 12:58 ThunderNikk#4
Not quite as easy as that, Ill be back when you want to figure out how to get HV working again.
06/24/2013 21:15 piratehat2#5
Quote:
Originally Posted by thndr View Post
Not quite as easy as that, Ill be back when you want to figure out how to get HV working again.
I was, and still am aware that changing it to 0 makes HV ineffective. However I have this awesome Zoidberg GM tool that allows me to give myself HV buffs.
[Only registered and activated users can see links. Click Here To Register...]
06/24/2013 21:40 TealSky#6
The Hotkeys going missing coincide with a message in notice mode (Cannot Connect To Server) which coincides to an error throw both on the GameServer Console Log and in the GameLog.txt located in the server_bin (server folder)

This error is thrown by:

dbo.smp_check_purchased_item

Code:
USE [teal_sky_telecaster_test]
GO
/****** Object:  StoredProcedure [dbo].[smp_check_purchased_item]    Script Date: 6/24/2013 9:38:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[smp_check_purchased_item]

@IN_ACCOUNT_ID INT,
@IN_SID INT,
@OUT_TOTAL_ITEM_COUNT INT OUTPUT,	/* Total Item Count */
@OUT_NEW_ITEM_COUNT INT OUTPUT,		/* New Item Count (AKA New presents received)*/
@OUT_PREMIUM_TICKET INT OUTPUT,		/* Premium Ticket Flag - 0 = No Pass*/
@OUT_PREMIUM_REST_TIME INT OUTPUT,	/* HV Pass Time Remaining */
@OUT_STAMINA_REGEN_TIME INT OUTPUT	/* Stam Regen Time (Stam Bonus) */

AS
SET NOCOUNT ON

SET @OUT_NEW_ITEM_COUNT = 10 
SET @OUT_STAMINA_REGEN_TIME = 20 

SET @OUT_PREMIUM_TICKET = 0
SET @OUT_PREMIUM_REST_TIME = 0

SELECT @OUT_PREMIUM_TICKET = COUNT(*) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and item_code = 910000 and valid_time > GETDATE()

IF @OUT_PREMIUM_TICKET > 0
BEGIN

/* Extend the Pass on first login after it is purchased to grant the user to full time on the pass based on the first login */
UPDATE PaidItem set valid_time = DATEADD(s, DATEDIFF(s, bought_time, GETDATE()), valid_time), taken_time = GETDATE() where taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND taken_time IS NULL

/** Combine passes by invalidating older passes and adding the combined extra time onto the most recently purchased pass **/
DECLARE @VALID_PASS_COUNT INT
SET @VALID_PASS_COUNT = 0

DECLARE @COMBINED_TIME INT
SET @COMBINED_TIME = 0

DECLARE @NEWEST_PASS INT
SET @NEWEST_PASS = -1

-- Check for more than one pass in Item Box.  If there are combine them into one pass.
SELECT @VALID_PASS_COUNT = COUNT(*) FROM PaidItem WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE()

IF @VALID_PASS_COUNT > 1
	BEGIN
		-- Get the combined time of all active passes
		SELECT @COMBINED_TIME = SUM(DATEDIFF(s, GETDATE(), valid_time)) from PaidItem where taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE()
		
		-- Select the most recent pass
		SELECT TOP (1) @NEWEST_PASS = sid from PaidItem where taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE() ORDER BY bought_time DESC
		
		-- Invalidate all but the most recent pass
		SET ROWCOUNT 1
		WHILE 1=1
		BEGIN
			UPDATE PaidItem set valid_time = GETDATE(), rest_item_count=0 WHERE sid IN ( SELECT TOP 1 sid FROM PaidItem WITH (NOLOCK) WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE() AND sid <> @NEWEST_PASS )
			IF @@ROWCOUNT = 0 BREAK
		END
		SET ROWCOUNT 0

		-- Extend the most recent pass by the Combined time - the current time
		UPDATE PaidItem set valid_time = DATEADD(s, @COMBINED_TIME, GETDATE()), rest_item_count=0 WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE()AND sid = @NEWEST_PASS
	END
-- end combine passes
	
SELECT @OUT_PREMIUM_REST_TIME = MAX(DATEDIFF(s, GETDATE(), valid_time)) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and item_code = 910000 and valid_time > GETDATE()

SELECT @OUT_TOTAL_ITEM_COUNT = COUNT(*) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and rest_item_count > 0;
SELECT @OUT_NEW_ITEM_COUNT = COUNT(*) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and rest_item_count > 0 and confirmed = 0;

END

RETURN @@ERROR
dbo.smp_read_purchased_item_list

Code:
USE [teal_sky_telecaster_test]
GO
/****** Object:  StoredProcedure [dbo].[smp_read_purchased_item_list]    Script Date: 6/24/2013 9:39:17 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[smp_read_purchased_item_list]

@IN_ACCOUNT_ID          INT
 
AS
SET NOCOUNT ON

-- ¾ئہجإغ ب®ہخ ؟©؛خ¸¦ ¼¼ئأ
UPDATE dbo.PaidItem set confirmed = 1, confirmed_time = GETDATE() WHERE taken_account_id = @IN_ACCOUNT_ID and confirmed = 0;

SELECT  sid,                          -- ID
        account_id,            -- ±¸¸إار °èء¤ ID
        avatar_id,             -- ±¸¸إار ؤ³¸¯ ID        ( -1 ہد°و؟ىب¨اا؟،¼*±¸¸إار°حہس)
        avatar_name,           -- ±¸¸إار ؤ³¸¯ ہج¸§        ( -1 ہد°و؟ىب¨اا؟،¼*±¸¸إار°حہس)
        server_name,                      -- ±¸¸إار ¼*¹ِ ہج¸§
        item_code,             -- ¾ئہجإغؤعµه
        item_count,            -- ±¸¸إار ¾ئہجإغ°¹¼ِ
        rest_item_count,                  -- ³²ہ؛ ¾ئہجإغ °¹¼ِ
        bought_time,           -- ±¸¸إ½أ°£
        valid_time             -- ہ¯ب؟½أ°£( ء¦ار¾ّہ»°و؟ى-12-31 )
               
        FROM dbo.PaidItem WITH (NOLOCK) WHERE taken_account_id = @IN_ACCOUNT_ID and rest_item_count > 0 
        -- The below shows items after they have been taken
        --or sid in ( select sid from dbo.PaidItem WITH(NOLOCK) WHERE taken_account_id =@IN_ACCOUNT_ID and rest_item_count = 0)

RETURN @@ERROR
dbo.smp_takeout_commercial_item

Code:
USE [teal_sky_telecaster_test]
GO
/****** Object:  StoredProcedure [dbo].[smp_takeout_commercial_item]    Script Date: 6/24/2013 9:39:39 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[smp_takeout_commercial_item]

@OUT_ITEM_CODE          INT OUTPUT,
@IN_SID                 INT,
@IN_COUNT               INT,
@IN_ACCOUNT_ID          INT,
@IN_AVATAR_ID           INT,
@IN_AVATAR_NAME         VARCHAR(61),
@IN_SERVER_NAME         VARCHAR(30),
@IN_TRANSACTION_CODE	INT,
@IN_IDX					INT
 
AS
SET NOCOUNT ON

SET @OUT_ITEM_CODE = 0

DECLARE @RET INT
SET @RET = -1

DECLARE @REST_ITEM_COUNT INT
SET @REST_ITEM_COUNT = -1

-- °¹¼ِ ہج»َ
IF @IN_COUNT < 1
BEGIN
    GOTO ON_END
END

BEGIN TRANSACTION

	SELECT @REST_ITEM_COUNT = rest_item_count FROM dbo.PaidItem WHERE sid = @IN_SID;

	IF @REST_ITEM_COUNT < @IN_COUNT
	BEGIN
		ROLLBACK TRANSACTION
        GOTO ON_END
	END

	-- Remove item(s) from Item Box
	UPDATE dbo.PaidItem SET

        rest_item_count = ( @REST_ITEM_COUNT - @IN_COUNT ),
        taken_avatar_id = @IN_AVATAR_ID,
        taken_avatar_name = @IN_AVATAR_NAME,
        taken_server_name = @IN_SERVER_NAME,
        taken_time = GETDATE()
        
    WHERE sid = @IN_SID and taken_account_id = @IN_ACCOUNT_ID;
    SET @RET = 0

	DECLARE @ACCOUNT_ID INT
	SET @ACCOUNT_ID = -1

	SELECT @OUT_ITEM_CODE = item_code, @ACCOUNT_ID = taken_account_id from dbo.PaidItem where sid = @IN_SID;

	IF @ACCOUNT_ID <> @IN_ACCOUNT_ID
		BEGIN
			SET @OUT_ITEM_CODE = 0
			ROLLBACK TRANSACTION
			GOTO ON_END
		END

	-- Add the item(s) to the character
	INSERT INTO dbo.Item (

		sid,							-- 0
		owner_id,						-- 1
		account_id,						-- 2
		summon_id,						-- 3
		auction_id,						-- 4
		keeping_id,						-- 5
		idx,							-- 6
		code,							-- 7
		flag,							-- 8
		cnt,							-- 9
		[level],						-- 10
		enhance,
		ethereal_durability,						-- 11
		endurance,						-- 12
		gcode,							-- 13
		create_time,						-- 14
		wear_info,						-- 15
		socket_0,						-- 16
		socket_1,						-- 17
		socket_2,						-- 18
		socket_3,						-- 19
		remain_time,						-- 20
		elemental_effect_type,					-- 21
		elemental_effect_expire_time,				-- 22
		elemental_effect_attack_point,				-- 23
		elemental_effect_magic_point,				-- 24
		update_time						-- 25

	)
	VALUES (
	
		@IN_TRANSACTION_CODE,					-- 0
		@IN_AVATAR_ID,						-- 1
		@IN_ACCOUNT_ID,						-- 2
		0,							-- 3
		0,							-- 4
		0,							-- 5
		@IN_IDX,						-- 6
		@OUT_ITEM_CODE,						-- 7
		0,							-- 8
		@IN_COUNT,						-- 9
		0,							-- 10
		0,
		0,							-- 11
		0,							-- 12
		0,							-- 13
		GETDATE(),						-- 14	
		-1,							-- 15
		0,							-- 16
		0,							-- 17
		0,							-- 18
		0,							-- 19
		0,							-- 20
		0,							-- 21
		0,							-- 22
		0,							-- 23
		0,							-- 24
		GETDATE()						-- 25
	);

	SET @RET = @@ERROR

	IF @RET <> 0
	BEGIN
		ROLLBACK TRANSACTION
        GOTO ON_END
	END

COMMIT TRANSACTION

ON_END:
RETURN @RET
The above setup was originally intended for 7.3/7.4 but is applicable in 8.1 as-well. (Be warned that is completely removes the whole "billing" schema as I found it to be useless. Hope this helps!
06/24/2013 21:47 ThunderNikk#7
USE [teal_sky_telecaster_test]

Bet you mean to do this to Telecaster but that is the path you did while testing the SMP alterations to an off line database?

I still would find it easier and less altering to turn cash_usable_server off

Then all you need to do is change the spawn_type of all secroute NPCs from 4 to 0

Code:
Use Arcadia
Update dbo.NPCResource set spawn_type = 0 where contact_script like '%secroute%'
06/24/2013 23:39 TealSky#8
I figure the OP is smart enough to change teal_sky_telecaster_test (if not, oh boy)

The spawn_type would be a good work around, but you should tell him if he disables the native Cash-Shop System (e.g. Paid) he will also be disabling his ability to use the PaidItem-Box (e.g. Item Box)

Just a note, whichever path he chooses -- good luck.
06/25/2013 04:43 piratehat2#9
I got it guys, thanks.
07/06/2013 02:47 Excalibur-Rappelz#10
I tried both and nothing worked
08/01/2013 20:57 joladani#11
Quote:
Originally Posted by Azreil View Post
Open your gameserver.opt ....change

"T game.cash_usable_server:1"
To...
"T game.cash_usable_server:0"

Delete your gameserver.eop....run rappelz compress....drag your newly edited gameserver.opt over to the compress window and drop it in there....poof..now the skill bar wont vanish.
i tried it but my hotkeys still not saved :/
08/01/2013 22:00 ThunderNikk#12
Quote:
Originally Posted by joladani View Post
i tried it but my hotkeys still not saved :/
Something was not done correctly then.
08/02/2013 12:25 Spacer19#13
Hi,

For the problem, uses the database named "Billing.bak"
It saves the shortcuts etc. .. You must be inserted as the Telecaster or auth or Arcadia.

Scan Virus Total: [Only registered and activated users can see links. Click Here To Register...]

Link File Billing.bak: [Only registered and activated users can see links. Click Here To Register...]

Sincerely,

PS: sorry for my bad English.
08/02/2013 12:55 c1ph3r#14
Quote:
Originally Posted by TealSky View Post
The Hotkeys going missing coincide with a message in notice mode (Cannot Connect To Server) which coincides to an error throw both on the GameServer Console Log and in the GameLog.txt located in the server_bin (server folder)

This error is thrown by:

dbo.smp_check_purchased_item

Code:
USE [teal_sky_telecaster_test]
GO
/****** Object:  StoredProcedure [dbo].[smp_check_purchased_item]    Script Date: 6/24/2013 9:38:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[smp_check_purchased_item]

@IN_ACCOUNT_ID INT,
@IN_SID INT,
@OUT_TOTAL_ITEM_COUNT INT OUTPUT,	/* Total Item Count */
@OUT_NEW_ITEM_COUNT INT OUTPUT,		/* New Item Count (AKA New presents received)*/
@OUT_PREMIUM_TICKET INT OUTPUT,		/* Premium Ticket Flag - 0 = No Pass*/
@OUT_PREMIUM_REST_TIME INT OUTPUT,	/* HV Pass Time Remaining */
@OUT_STAMINA_REGEN_TIME INT OUTPUT	/* Stam Regen Time (Stam Bonus) */

AS
SET NOCOUNT ON

SET @OUT_NEW_ITEM_COUNT = 10 
SET @OUT_STAMINA_REGEN_TIME = 20 

SET @OUT_PREMIUM_TICKET = 0
SET @OUT_PREMIUM_REST_TIME = 0

SELECT @OUT_PREMIUM_TICKET = COUNT(*) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and item_code = 910000 and valid_time > GETDATE()

IF @OUT_PREMIUM_TICKET > 0
BEGIN

/* Extend the Pass on first login after it is purchased to grant the user to full time on the pass based on the first login */
UPDATE PaidItem set valid_time = DATEADD(s, DATEDIFF(s, bought_time, GETDATE()), valid_time), taken_time = GETDATE() where taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND taken_time IS NULL

/** Combine passes by invalidating older passes and adding the combined extra time onto the most recently purchased pass **/
DECLARE @VALID_PASS_COUNT INT
SET @VALID_PASS_COUNT = 0

DECLARE @COMBINED_TIME INT
SET @COMBINED_TIME = 0

DECLARE @NEWEST_PASS INT
SET @NEWEST_PASS = -1

-- Check for more than one pass in Item Box.  If there are combine them into one pass.
SELECT @VALID_PASS_COUNT = COUNT(*) FROM PaidItem WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE()

IF @VALID_PASS_COUNT > 1
	BEGIN
		-- Get the combined time of all active passes
		SELECT @COMBINED_TIME = SUM(DATEDIFF(s, GETDATE(), valid_time)) from PaidItem where taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE()
		
		-- Select the most recent pass
		SELECT TOP (1) @NEWEST_PASS = sid from PaidItem where taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE() ORDER BY bought_time DESC
		
		-- Invalidate all but the most recent pass
		SET ROWCOUNT 1
		WHILE 1=1
		BEGIN
			UPDATE PaidItem set valid_time = GETDATE(), rest_item_count=0 WHERE sid IN ( SELECT TOP 1 sid FROM PaidItem WITH (NOLOCK) WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE() AND sid <> @NEWEST_PASS )
			IF @@ROWCOUNT = 0 BREAK
		END
		SET ROWCOUNT 0

		-- Extend the most recent pass by the Combined time - the current time
		UPDATE PaidItem set valid_time = DATEADD(s, @COMBINED_TIME, GETDATE()), rest_item_count=0 WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE()AND sid = @NEWEST_PASS
	END
-- end combine passes
	
SELECT @OUT_PREMIUM_REST_TIME = MAX(DATEDIFF(s, GETDATE(), valid_time)) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and item_code = 910000 and valid_time > GETDATE()

SELECT @OUT_TOTAL_ITEM_COUNT = COUNT(*) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and rest_item_count > 0;
SELECT @OUT_NEW_ITEM_COUNT = COUNT(*) from PaidItem WITH (NOLOCK) where taken_account_id = @IN_ACCOUNT_ID and rest_item_count > 0 and confirmed = 0;

END

RETURN @@ERROR
dbo.smp_read_purchased_item_list

Code:
USE [teal_sky_telecaster_test]
GO
/****** Object:  StoredProcedure [dbo].[smp_read_purchased_item_list]    Script Date: 6/24/2013 9:39:17 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[smp_read_purchased_item_list]

@IN_ACCOUNT_ID          INT
 
AS
SET NOCOUNT ON

-- ¾ئہجإغ ب®ہخ ؟©؛خ¸¦ ¼¼ئأ
UPDATE dbo.PaidItem set confirmed = 1, confirmed_time = GETDATE() WHERE taken_account_id = @IN_ACCOUNT_ID and confirmed = 0;

SELECT  sid,                          -- ID
        account_id,            -- ±¸¸إار °èء¤ ID
        avatar_id,             -- ±¸¸إار ؤ³¸¯ ID        ( -1 ہد°و؟ىب¨اا؟،¼*±¸¸إار°حہس)
        avatar_name,           -- ±¸¸إار ؤ³¸¯ ہج¸§        ( -1 ہد°و؟ىب¨اا؟،¼*±¸¸إار°حہس)
        server_name,                      -- ±¸¸إار ¼*¹ِ ہج¸§
        item_code,             -- ¾ئہجإغؤعµه
        item_count,            -- ±¸¸إار ¾ئہجإغ°¹¼ِ
        rest_item_count,                  -- ³²ہ؛ ¾ئہجإغ °¹¼ِ
        bought_time,           -- ±¸¸إ½أ°£
        valid_time             -- ہ¯ب؟½أ°£( ء¦ار¾ّہ»°و؟ى-12-31 )
               
        FROM dbo.PaidItem WITH (NOLOCK) WHERE taken_account_id = @IN_ACCOUNT_ID and rest_item_count > 0 
        -- The below shows items after they have been taken
        --or sid in ( select sid from dbo.PaidItem WITH(NOLOCK) WHERE taken_account_id =@IN_ACCOUNT_ID and rest_item_count = 0)

RETURN @@ERROR
dbo.smp_takeout_commercial_item

Code:
USE [teal_sky_telecaster_test]
GO
/****** Object:  StoredProcedure [dbo].[smp_takeout_commercial_item]    Script Date: 6/24/2013 9:39:39 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[smp_takeout_commercial_item]

@OUT_ITEM_CODE          INT OUTPUT,
@IN_SID                 INT,
@IN_COUNT               INT,
@IN_ACCOUNT_ID          INT,
@IN_AVATAR_ID           INT,
@IN_AVATAR_NAME         VARCHAR(61),
@IN_SERVER_NAME         VARCHAR(30),
@IN_TRANSACTION_CODE	INT,
@IN_IDX					INT
 
AS
SET NOCOUNT ON

SET @OUT_ITEM_CODE = 0

DECLARE @RET INT
SET @RET = -1

DECLARE @REST_ITEM_COUNT INT
SET @REST_ITEM_COUNT = -1

-- °¹¼ِ ہج»َ
IF @IN_COUNT < 1
BEGIN
    GOTO ON_END
END

BEGIN TRANSACTION

	SELECT @REST_ITEM_COUNT = rest_item_count FROM dbo.PaidItem WHERE sid = @IN_SID;

	IF @REST_ITEM_COUNT < @IN_COUNT
	BEGIN
		ROLLBACK TRANSACTION
        GOTO ON_END
	END

	-- Remove item(s) from Item Box
	UPDATE dbo.PaidItem SET

        rest_item_count = ( @REST_ITEM_COUNT - @IN_COUNT ),
        taken_avatar_id = @IN_AVATAR_ID,
        taken_avatar_name = @IN_AVATAR_NAME,
        taken_server_name = @IN_SERVER_NAME,
        taken_time = GETDATE()
        
    WHERE sid = @IN_SID and taken_account_id = @IN_ACCOUNT_ID;
    SET @RET = 0

	DECLARE @ACCOUNT_ID INT
	SET @ACCOUNT_ID = -1

	SELECT @OUT_ITEM_CODE = item_code, @ACCOUNT_ID = taken_account_id from dbo.PaidItem where sid = @IN_SID;

	IF @ACCOUNT_ID <> @IN_ACCOUNT_ID
		BEGIN
			SET @OUT_ITEM_CODE = 0
			ROLLBACK TRANSACTION
			GOTO ON_END
		END

	-- Add the item(s) to the character
	INSERT INTO dbo.Item (

		sid,							-- 0
		owner_id,						-- 1
		account_id,						-- 2
		summon_id,						-- 3
		auction_id,						-- 4
		keeping_id,						-- 5
		idx,							-- 6
		code,							-- 7
		flag,							-- 8
		cnt,							-- 9
		[level],						-- 10
		enhance,
		ethereal_durability,						-- 11
		endurance,						-- 12
		gcode,							-- 13
		create_time,						-- 14
		wear_info,						-- 15
		socket_0,						-- 16
		socket_1,						-- 17
		socket_2,						-- 18
		socket_3,						-- 19
		remain_time,						-- 20
		elemental_effect_type,					-- 21
		elemental_effect_expire_time,				-- 22
		elemental_effect_attack_point,				-- 23
		elemental_effect_magic_point,				-- 24
		update_time						-- 25

	)
	VALUES (
	
		@IN_TRANSACTION_CODE,					-- 0
		@IN_AVATAR_ID,						-- 1
		@IN_ACCOUNT_ID,						-- 2
		0,							-- 3
		0,							-- 4
		0,							-- 5
		@IN_IDX,						-- 6
		@OUT_ITEM_CODE,						-- 7
		0,							-- 8
		@IN_COUNT,						-- 9
		0,							-- 10
		0,
		0,							-- 11
		0,							-- 12
		0,							-- 13
		GETDATE(),						-- 14	
		-1,							-- 15
		0,							-- 16
		0,							-- 17
		0,							-- 18
		0,							-- 19
		0,							-- 20
		0,							-- 21
		0,							-- 22
		0,							-- 23
		0,							-- 24
		GETDATE()						-- 25
	);

	SET @RET = @@ERROR

	IF @RET <> 0
	BEGIN
		ROLLBACK TRANSACTION
        GOTO ON_END
	END

COMMIT TRANSACTION

ON_END:
RETURN @RET
The above setup was originally intended for 7.3/7.4 but is applicable in 8.1 as-well. (Be warned that is completely removes the whole "billing" schema as I found it to be useless. Hope this helps!
This requires the dbo.PaidItem in the telecaster database. In the 8.1 Files the dbo.PaidItem is missing in some repacks.

if it isn't working try to add the dbo.PaidItem to your telecaster database:

Code:
USE [telecaster]
GO

/****** Object:  Table [dbo].[PaidItem]    Script Date: 02.08.2013 12:55:03 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[PaidItem](
	[sid] [int] IDENTITY(1,1) NOT NULL,
	[account_id] [int] NULL,
	[avatar_id] [int] NULL,
	[avatar_name] [varchar](61) NULL,
	[item_code] [int] NULL,
	[item_count] [int] NULL,
	[rest_item_count] [int] NULL,
	[bought_time] [datetime] NULL,
	[valid_time] [datetime] NULL,
	[server_name] [varchar](30) NULL,
	[taken_avatar_id] [int] NULL,
	[taken_avatar_name] [varchar](61) NULL,
	[taken_server_name] [varchar](30) NULL,
	[taken_time] [datetime] NULL,
	[taken_account_id] [int] NULL,
	[confirmed] [int] NULL,
	[confirmed_time] [date] NULL,
	[isCancel] [int] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO
09/11/2013 17:20 ninex#15
Awesome worked !!