Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Rappelz > Rappelz Private Server
You last visited: Today at 05:22

  • Please register to post and access all features, it's quick, easy and FREE!

 

[Help Thread] Please post your questions here.

Reply
 
Old   #5176
Moderator
 
elite*gold: 1
Join Date: Dec 2012
Posts: 3,137
Received Thanks: 1,025
Quote:
Originally Posted by kastuki View Post
The problem, I have not touched anything.. Just start the server and close it..
Something is not the same as it was before though.

When you click on the NPC, what happens.

1. Does the menu open for leveling items?

2. Is there a selection for use the store?

3. When you click on use the store does the store open?

4. At any point that one of these fails is there any message in the chat window or game server window?

5. If there is a message what is it?

6. This should be number 1 maybe...Are you sure you are not using the fake Boss Ross quest only blacksmith in rondo? Because I don't think he does normal blacksmith stuff at all.



ThunderNikk is offline  
Old   #5177
 
elite*gold: 0
Join Date: Oct 2011
Posts: 84
Received Thanks: 4
The menu open, i can up my stuff but i can't open his shop :/


kastuki is offline  
Old   #5178
Moderator
 
elite*gold: 1
Join Date: Dec 2012
Posts: 3,137
Received Thanks: 1,025
4. At any point that one of these fails is there any message in the chat window or game server window?

5. If there is a message what is it?
ThunderNikk is offline  
Old   #5179
 
elite*gold: 0
Join Date: Oct 2013
Posts: 410
Received Thanks: 29
how to create 9.1 launcher ?


Sherock is offline  
Old   #5180
 
elite*gold: 0
Join Date: Sep 2008
Posts: 120
Received Thanks: 94
Dumb question... how can I find out what client version/epic version my client has?

I just found a pretty old Rappelz installer and was wondering how old it is.

EDIT: Nvm, it is Dragonic Age.
Player95 is offline  
Old   #5181
 
elite*gold: 0
Join Date: Oct 2013
Posts: 410
Received Thanks: 29
Quote:
2015/10/02 07:19:32 DB COM ERROR(Thread:0, HRESULT:80040E57, GUID:0C733A63-2A1C-11CE-ADE5-00AA0044773D) : DB_GetCommercialStorageInfo(dbo.smp_check_purchase d_item) : Arithmetic overflow error converting expression to data type int.
i'm using ismokedrow's telecaster with his fixes
i delete Billing and same
i make N:billing.use:0 and same

some help plz

i solve it

but i had another problem

Quote:
================================================== ============================

------------------------------------------------------------------------------
Thread Information
------------------------------------------------------------------------------

00 Thread name : IOCP 00
00 job info : 7
00 job id : 0
00 counter : 0
00 execute time : 2037173
01 Thread name : IOCP 01
01 job info : 5
01 job id : 0
01 counter : 0
01 execute time : 2037176
02 Thread name : IOCP 02
02 job info : 219
02 job id : 0
02 counter : 0
02 execute time : 2037171
03 Thread name : IOCP 03
03 job info : 5
03 job id : 0
03 counter : 0
03 execute time : 2037175
04 Thread name : Scheduler 00
04 job info : StructMonster(0x29CD3320)
04 job id : 0
04 counter : 0
04 execute time : 2037179
05 Thread name : Scheduler 01
05 job info : StructPlayer(0x061B38C0)
05 job id : 0
05 counter : 0
05 execute time : 2037171
06 Thread name : Scheduler 02
06 job info : StructMonster(0x2AE00DB0)
06 job id : 0
06 counter : 0
06 execute time : 2037178
07 Thread name : Scheduler 03
07 job info : StructPlayer(0x061EB3C0)
07 job id : 0
07 counter : 0
07 execute time : 2037175


------------------------------------------------------------------------------
Basic Information
------------------------------------------------------------------------------

Program Name : Arcadia
EXE : C:\Users\Administrator\Desktop\Server Files\GameEngine\Game_bin\CaptainHerlockServer.exe
User : Administrator
Computer : VMI49026

Program :
Exception : C0000005 (ACCESS_VIOLATION)
Fault Address: Undeterminable(62027860 00:00000000)
Mem Usage : 2881356KB / 2828752KB

------------------------------------------------------------------------------
Allocation Count Info(by _MEM_USAGE_DEBUG)
------------------------------------------------------------------------------

Type: StructSummon Allocated: [Current: 131]/[Peek Concurrent: 135]/[Total: 426]
Type: StructQuestManager Allocated: [Current: 52]/[Peek Concurrent: 53]/[Total: 251]
Type: StructPlayer Allocated: [Current: 52]/[Peek Concurrent: 53]/[Total: 251]
Type: AutoAuctionInfo Allocated: [Current: 46]/[Peek Concurrent: 46]/[Total: 46]
Type: GuildInfo Allocated: [Current: 13]/[Peek Concurrent: 13]/[Total: 17]
Type: PartyInfo Allocated: [Current: 40]/[Peek Concurrent: 43]/[Total: 89]
Type: StructItem Allocated: [Current: 8539]/[Peek Concurrent: 9073]/[Total: 188685]
Type: ItemKeepingInfo Allocated: [Current: 6]/[Peek Concurrent: 10]/[Total: 7]
Type: StructFieldProp Allocated: [Current: 59704]/[Peek Concurrent: 59821]/[Total: 62123]
Type: StructNPC Allocated: [Current: 7285]/[Peek Concurrent: 7285]/[Total: 7285]
Type: StructSkill Allocated: [Current: 27060]/[Peek Concurrent: 27157]/[Total: 88539]
Type: StructTitleCondition Allocated: [Current: 882]/[Peek Concurrent: 905]/[Total: 3440]
Type: StructPet Allocated: [Current: 36]/[Peek Concurrent: 38]/[Total: 151]
Type: StructTitle Allocated: [Current: 571]/[Peek Concurrent: 590]/[Total: 2313]
Type: StructQuest Allocated: [Current: 8]/[Peek Concurrent: 13]/[Total: 44]
Type: StructSkillProp Allocated: [Current: 1]/[Peek Concurrent: 7]/[Total: 1617]
Type: AuctionInfo Allocated: [Current: 17]/[Peek Concurrent: 19]/[Total: 18]


------------------------------------------------------------------------------
x86 Registers
------------------------------------------------------------------------------

RAX=0000000061FBD9B8 RBX=0000000062185848 RCX=0000000062185848 RDX=0000000062185848
ESI=0000000002D44549 EDI=0000000062185848 EBP=00000000061694C0
DS =002B ES=002B FS=0053 GS:002B
CS:RIP=0033:0000000062027860
SS:RSP=002B:0000000002D43028
Flags=00010206


------------------------------------------------------------------------------
Environment dump
------------------------------------------------------------------------------
CodePage : 1256
app.checksum : 00E1E978
app.cmdline : "C:\Users\Administrator\Desktop\Server Files\GameEngine\Game_bin\CaptainHerlockServer.exe "
app.filesize : 5393648
app.filetime : 2014/09/12-15:29:42
app.name : game001
auth.connect : complete
auth.server_idx : 1
auth.server_name : Heroes
console.allow_ip : IP
console.port : PORT
db.c.name : Arcadia
db.c.server : IP
db.trace : 1
db.trace_refresh_period : 0
db.user.exec_query : 22
db.user.name : Telecaster
db.user.remain_query : 0
db.user.server : IP
db.user.thread : 4
db.user.thread_active : 0
db.user.thread_total : 0
db.user.work_active : 0
db.user.work_pending : 0
db.user.work_total : 737003
engine.ar_time : 2039017
engine.count_client : 52
engine.count_movable : 46167
engine.count_static : 59767
engine.lock : 1
engine.region_size : 180
engine.scheduler.0.instruction : 181700
engine.scheduler.0.object : 440
engine.scheduler.1.instruction : 181816
engine.scheduler.1.object : 470
engine.scheduler.2.instruction : 181983
engine.scheduler.2.object : 452
engine.scheduler.3.instruction : 182116
engine.scheduler.3.object : 439
engine.scheduler.destroy_cnt : 92791
engine.scheduler.destroy_loop : 186328
engine.scheduler.destroy_pend : 0
engine.use_region_debug : 0
engine.wait : 7
game.AdultServer : 0
game.AutoOpenOnly : 0
game.FindDuplicatePos : 57641
game.FirstLineCount : 54865
game.GamePerformanceLogingInterval : 10000
game.LineCount : 6874296
game.PKPenaltyLevel : 10
game.PKServer : 1
game.PathFindingCount : 68718
game.ProcessingMonsterCount : 16554463
game.ProcessingMonsterTime : 17182882
game.ProcessingPlayerCount : 5435062
game.ProcessingPlayerTime : 1193401
game.ProcessingSummonCount : 72875
game.ProcessingSummonTime : 13187
game.RandomMove : 312832
game.ServiceServer : 1
game.TracingGamePerformance : 1
game.allowed_special_char :
game.ally_pcbang_bonus_rate : 0.100000
game.ally_pcbang_chaos_bonus_rate : 0.100000
game.apply_stamina_bonus_in_premium_pcbang : 0
game.auction_process_request_min_interval : 100
game.auction_search_request_min_interval : 300
game.bUseLockDelayLogging : 0
game.base_ethereal_durability_consumption_on_damag e : 98
game.base_ethereal_durability_consumption_on_norma l_attack : 31
game.base_ethereal_durability_consumption_on_skill _attack : 51
game.battle_arena_reconnect_wait_duration : 18000
game.broadcast_event_item_pickup : 0
game.cash_item_dropable : 0
game.cash_usable_server : 0
game.chaos_drop_rate : 1.000000
game.check_storage_security_always : 1
game.disable_booth : 0
game.disable_buy_booth : 0
game.disable_dungeon_raid_siege : 0
game.disable_huntaholic : 0
game.disable_pk_on : 0
game.disable_trade : 0
game.enhance_fail_type : 2
game.exp_rate : 1800.000000
game.farm_growth_summon_exp : 37087982
game.farm_normal_summon_exp : 145763
game.forbidden_script :
game.forbidden_script_init : 1
game.force_unregister_account_on_kick_fail : 0
game.gold_drop_rate : 50.000000
game.guild_icon_base_url :
game.helpdesk_url :
game.ignore_random_damage : 0
game.item_count : 8539
game.item_drop_rate : 100.000000
game.item_hold_time : 2500
game.item_loading : complete
game.limit_adv_chat_count : 1
game.limit_booth_openable_layer_to_zero : 0
game.limit_field_logout : 0
game.limit_game_time : 0
game.loading : complete
game.local_flag : 8192
game.log_monster_pathfinding : 1
game.log_required_item_list :
game.log_required_state_list :
game.log_scheduling_status : 1
game.log_vulcanus_dungeon : 0
game.logout_timer : 1000
game.map_height : 1000000
game.map_width : 700000
game.max_characters_per_account : 6
game.max_game_time_limited_age : 17
game.max_healthy_game_time : 1080000
game.max_layer : 256
game.max_level : 180
game.max_storage_item_count : 1000
game.max_tired_game_time : 1800000
game.min_booth_startable_level : 0
game.min_global_chat_usable_level : 130
game.mod : 0.000000
game.monster_collision_line : 1
game.monster_drop_respawn : 0
game.monster_pathfinding : 1
game.monster_respawn_cnt : 123012
game.monster_respawn_object_cnt : 32710
game.monster_respawn_try_cnt : 298400
game.monster_wandering : 1
game.newbiehelp_asura_url :
game.newbiehelp_deva_url :
game.newbiehelp_gaia_url :
game.no_collision_check : 0
game.no_skill_cooltime : 0
game.party_exp_rate_0 : 1.000000
game.party_exp_rate_1 : 1.000000
game.party_exp_rate_2 : 1.000000
game.party_exp_rate_3 : 1.000000
game.party_exp_rate_4 : 1.000000
game.party_exp_rate_5 : 1.000000
game.party_exp_rate_6 : 1.000000
game.period_of_security_solution_check : 30000
game.play_point_accumulate_amount : 1
game.play_point_accumulate_term : 60
game.premium_pcbang_bonus_rate : 1.200000
game.premium_pcbang_chaos_bonus_drop_rate : 1.000000
game.premium_pcbang_chaos_bonus_rate : 0.100000
game.premium_pcbang_gold_bonus_drop_rate : 1.000000
game.premium_pcbang_item_bonus_drop_rate : 1.000000
game.premium_pcbang_play_point_bonus_rate : 2.000000
game.pvp_damage_rate_for_player : 0.025000
game.pvp_damage_rate_for_summon : 0.050000
game.restrict_banword_for_booth : 0
game.restrict_special_char : 1
game.script.2068.time : 2036479
game.script.2068.trigger : open_market( 'Hossam_1_1' )
game.script.4288.time : 2034808
game.script.4288.trigger : NPC_TeleportTown_2_Secroute_contact()
game.script.4492.time : 2036519
game.script.4492.trigger : RunTeleport( 150000 , 146188 , 135579 )
game.script.4688.time : 2033785
game.script.4688.trigger : open_market( 'Hossam_4_2' )
game.security_solution_exceptional_ip :
game.security_solution_response_timeout : 3000
game.security_solution_type : 0
game.server_screenshot_url :
game.server_version : 9.1.0.0
game.skip_loading_attribute : 0
game.speed_unit : 30
game.stamina_bonus_rate : 1.000000
game.super_save_bonus_rate : 2.000000
game.super_save_level_max_limit_0 : 130
game.super_save_level_max_limit_1 : 140
game.super_save_level_max_limit_2 : 150
game.super_save_level_max_limit_3 : 160
game.super_save_level_max_limit_4 : 160
game.super_save_level_max_limit_5 : 170
game.super_save_level_max_limit_6 : 180
game.super_save_level_min_limit_0 : 1
game.super_save_level_min_limit_1 : 121
game.super_save_level_min_limit_2 : 131
game.super_save_level_min_limit_3 : 141
game.super_save_level_min_limit_4 : 121
game.super_save_level_min_limit_5 : 151
game.super_save_level_min_limit_6 : 171
game.term_for_time_based_event_db : 60
game.term_for_time_based_event_script : 120
game.tile_size : 42.000000
game.update.version : 24
game.url_list : guild_icon_upload.ip|IP|guild_icon_upload.port|461 5|guild.url|
game.use_account_authority_db : 0
game.use_auto_jail : 0
game.use_auto_trap : 0
game.use_delete_security : 0
game.use_guild_donation_point : 0
game.use_login_logout_debug : 0
game.use_play_point : 0
game.use_security : 0
game.use_storage_security : 0
game.use_time_based_event_db : 0
game.use_time_based_event_script : 1
game.user_count : 52
io.auth.ip : IP
io.connection : 56
io.ip_address : IP
io.port : PORT
io.recv_byte : 70599665
io.recv_count : 3368618
io.send_byte : 1163961024
io.send_count : 17475549
io.upload.ip : IP
io.upload.port : PORT
io.use_message_statistics : 0
iocp.2068.script : Quest_Link_6_1()
iocp.4288.script : Quest_Link_6_2()
iocp.4492.script : quest_start_3600()
iocp.4688.script : quest_start_3600()
iocp.active : 4
iocp.bufsize : 8192
iocp.dis_count : 168
iocp.instruction : 13093138
iocp.max_realloc_size : 1196032
iocp.recv_count : 1584663
iocp.recv_rest_bytes : 0
iocp.recv_traffic : 70600110
iocp.send_count : 11507879
iocp.send_rest_bytes : 1687
iocp.send_traffic : 1160694249
iocp.total : 4
log.chat.working : 0
log.connect_ : 1
log.connect_IOCP 00 : 1
log.connect_IOCP 01 : 1
log.connect_IOCP 02 : 1
log.connect_IOCP 03 : 1
log.connect_Main : 1
log.connect_Scheduler 00 : 1
log.connect_Scheduler 01 : 1
log.connect_Scheduler 02 : 1
log.connect_Scheduler 03 : 1
log.server_name : game001
log.working : 1
memory.item_heap_size : 422656
memory.monster_heap_size : 373828
memory.player_heap_size : 25344
memory.summon_heap_size : 95200
process.id : 4568
process.load : 16
process.load_kernel : 96
process.load_user : 3
process.memory : 2884364
process.memory_peak : 2884364
process.paged_memory : 2829420
process.paged_memory_peak : 2829424
process.start : 2015/10/02-09:45:26
process.uptime : 5 Hour 39 Minute 50 Second
thread.db.0.proc : DB_UpdateSkill
thread.db.1.proc : DB_UpdateCharacter
thread.db.2.proc : DB_UpdateSummon
thread.db.3.proc : DB_UpdateCharacter
thread.iocp.0.proc : 7
thread.iocp.1.proc : 5
thread.iocp.2.proc : 219
thread.iocp.3.proc : 5
thread.scheduler.0.proc : StructMonster
thread.scheduler.1.proc : StructPlayer
thread.scheduler.2.proc : StructMonster
thread.scheduler.3.proc : StructPlayer
upload.connect : complete


------------------------------------------------------------------------------
Application-specific log
------------------------------------------------------------------------------

Server Version : v9.1.0.0
PlayerHeapSize : 25344 kb
MonsterHeapSize : 373828 kb
ItemHeapSize : 422656 kb
SummonHeapSize : 95200 kb
PetHeapSize : 9336 kb
SkillHeapSize : 53760 kb
QuestHeapSize : 5760 kb
TitleHeapSize : 1440 kb
TitleConditionHeapSize: 1440 kb
ProcHeapSize : 2400 kb
DBHeapSize : 21523 kb



------------------------------------------------------------------------------
Call Stack (Short)
------------------------------------------------------------------------------

Address Frame Function SourceFile
0000000062027860 0000000002D43020 Undeterminable(0000:00000000) (e126)
000000013F3217B1 0000000002D43060 [email protected]@[email protected]@PEAUS [email protected]@@Z+41
000000013F32586A 0000000002D470E0 [email protected]@[email protected]@[email protected]+16A
000000013F308F60 0000000002D47140 [email protected]@[email protected]@PEAUTS_CS_ARR [email protected]@@Z+E0
000000013F31A880 0000000002D4F330 [email protected]@[email protected]@@Z+ EE0
000000013F545247 0000000002D4F360 [email protected]@@[email protected]@HPEAUXO [email protected]@[email protected]+87
000000013F545D7B 0000000002D4F8B0 [email protected]@@[email protected]+95B
000000013F55994F 0000000002D4F8E0 _endthreadex+3B
000000013F5599E3 0000000002D4F910 _endthreadex+CF
0000000076F959BD 0000000002D4F940 BaseThreadInitThunk+D
00000000771CA671 0000000002D4F990 RtlUserThreadStart+21




------------------------------------------------------------------------------
Memory Dump
------------------------------------------------------------------------------

Fault address may be corrupted. Memory dump is terminated.

================================================== ============================
Sherock is offline  
Old   #5182
 
elite*gold: 0
Join Date: Aug 2014
Posts: 82
Received Thanks: 14
what are the usage of these commands




qouted from prev post
colonelx is offline  
Old   #5183
 
elite*gold: 0
Join Date: Oct 2014
Posts: 20
Received Thanks: 22
Quote:
Originally Posted by colonelx View Post
what are the usage of these commands




qouted from prev post
These are triggers made for special events in the .opt.

e.g.
game.script.4688.time: has been activated at {d/m/y %d:%d:%d:%d-> 2033785}
what will be activated? ->game.script.4688.trigger : open_market( 'Hossam_4_2' )

basicly means that this npc has been opened at the above set time (and will show function (open_market("')) in this case.

basicly; its the threading (handle) since these ware the last 3 npcs used / spawned / functioning before the crash.

Quote:
Originally Posted by Sherock View Post
i'm using ismokedrow's telecaster with his fixes
i delete Billing and same
i make N:billing.use:0 and same

some help plz

i solve it

but i had another problem


2015/10/02 07:19:32 DB COM ERROR(Thread:0, HRESULT:80040E57, GUID:0C733A63-2A1C-11CE-ADE5-00AA0044773D) : DB_GetCommercialStorageInfo(dbo.smp_check_purchase d_item) : Arithmetic overflow error converting expression to data type int.
As above stated check your smp dbo.smp_check_purchase and set the parameter of d_item to int. save it and you'll be done.
NTOverload is offline  
Thanks
1 User
Old   #5184
Moderator
 
elite*gold: 1
Join Date: Dec 2012
Posts: 3,137
Received Thanks: 1,025
Quote:
Originally Posted by NTOverload View Post
As above stated check your smp dbo.smp_check_purchase and set the parameter of d_item to int. save it and you'll be done.

The SMP is check_purchased_item there is no d_item

Here is mine but I may have the same errors you have if it is with ismokes billing corrections...

Code:
USE [telecaster]
GO
/****** Object:  StoredProcedure [dbo].[smp_check_purchased_item]    Script Date: 3/29/2015 6:06:47 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- smp_read_purchased_item_list

-- start of smp_check_purchased_item   某浆袍 芒绊俊 酒捞袍 乐绰瘤 咯何 八荤
ALTER PROCEDURE [dbo].[smp_check_purchased_item]
@IN_ACCOUNT_ID			INT,
@IN_CHARACTER_ID		INT,
@OUT_TOTAL_ITEM_COUNT	INT		OUTPUT,
@OUT_NEW_ITEM_COUNT		INT		OUTPUT,
@OUT_PREMIUM_TICKET		INT		OUTPUT,
@OUT_PREMIUM_REST_TIME	INT		OUTPUT,
@OUT_STAMINA_REGEN_TIME	INT		OUTPUT

 
AS
SET NOCOUNT ON

	SET @OUT_PREMIUM_TICKET  = 0
	SET @OUT_PREMIUM_REST_TIME = 0
	SET @OUT_STAMINA_REGEN_TIME = 0

	SELECT @OUT_PREMIUM_TICKET = COUNT(*), @OUT_PREMIUM_REST_TIME = DATEDIFF( second, GETDATE(), MAX( valid_time ) ) FROM dbo.PaidItem WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > GETDATE() AND isCancel = 0

	IF @OUT_PREMIUM_TICKET < 1
	BEGIN
		SET @OUT_PREMIUM_REST_TIME = 0

		DECLARE @LOGOUT_TIME		DATETIME
		SET @LOGOUT_TIME = GETDATE()

		SELECT @LOGOUT_TIME = logout_time FROM Character WITH (NOLOCK) WHERE account_id = @IN_ACCOUNT_ID AND sid = @IN_CHARACTER_ID
		SELECT @OUT_STAMINA_REGEN_TIME = DATEDIFF( minute, @LOGOUT_TIME, MAX( valid_time ) ) FROM dbo.PaidItem WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code = 910000 AND valid_time > @LOGOUT_TIME AND isCancel = 0

		IF @OUT_STAMINA_REGEN_TIME < 1 OR @OUT_STAMINA_REGEN_TIME IS NULL
		BEGIN
			SET @OUT_STAMINA_REGEN_TIME = 0
		END

	DECLARE @NO_LV INT
	DECLARE @NO_Total_JP INT
	SELECT @NO_LV = MAX(lv), @NO_Total_JP = MAX(total_jp) from character WITH(NOLOCK) WHERE account_id = @IN_ACCOUNT_ID AND Name not like '@%'

	IF  @NO_LV < 30 AND @NO_Total_JP < 100000
	BEGIN
	SET @OUT_PREMIUM_TICKET  = 1
	SET @OUT_PREMIUM_REST_TIME = 3600 * 5
	END

END

--IF  @OUT_PREMIUM_REST_TIME < 3600 * 5
--BEGIN
	
	--DECLARE @LV INT
	--DECLARE @Total_JP INT
	--SELECT @LV = MAX(lv), @Total_JP = MAX(total_jp) from character WITH(NOLOCK) WHERE account_id = @IN_ACCOUNT_ID AND Name not like '@%'

	--IF  @LV < 30 AND @Total_JP < 100000
	--BEGIN
	--SET @OUT_PREMIUM_TICKET  = 1
	--SET @OUT_PREMIUM_REST_TIME = 3600 * 5
	--END
--END


	SELECT @OUT_TOTAL_ITEM_COUNT = COUNT(*) from dbo.PaidItem WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code <> 910000 AND rest_item_count > 0  AND valid_time > GETDATE() AND isCancel = 0
	SELECT @OUT_NEW_ITEM_COUNT   = COUNT(*) from dbo.PaidItem WHERE taken_account_id = @IN_ACCOUNT_ID AND item_code <> 910000 AND rest_item_count > 0  AND confirmed = 0 AND valid_time > GETDATE() AND isCancel = 0

RETURN @@ERROR
This may not be caused by the SMP but rather could have been caused by something in the item box that it is checking that is abnormal.
ThunderNikk is offline  
Old   #5185
 
elite*gold: 0
Join Date: Oct 2010
Posts: 147
Received Thanks: 2
I installed the 9.1 server and I want that master class could only take on quests! help me to do it. Now I have the master class no quests
khshe is offline  
Old   #5186
Moderator
 
elite*gold: 1
Join Date: Dec 2012
Posts: 3,137
Received Thanks: 1,025
It is probably the NPC_JobChange.lua you are using. Try using mine if it doesn't work I will attach my original.

Code:
-- Lua 스크립트 암호*
function get_module_name()
             return "NPC_JobChange"
end

function NPC_JobChange_get_resetcount()
	local reset_count = get_flag( 'reset_count' )
	
	if reset_count == '' then
		return 0
	else
		return reset_count
	end
end

   --============================================================
   --             <<<<<< 전직 NPC (공통) >>>>>>
   --============================================================
function NPC_JobChange_contact()
	-- 임시 변수 선언과 동시에 NPC ID 가져오기
	local npc_id = get_npc_id()
	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 도시 유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_title( "@90703201" )
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )
	
	end -- if 끝
	
	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_text( "@90400403" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_text( "@90100403" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_text( "@90200403" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_text( "@90600403" )
	-- 도시 유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_text( "@90703203" )				
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_text( "@90700403" )
	end -- if 끝
			
	dlg_menu( "@90010060", "NPC_JobChange_change_job()" )
	dlg_menu( "@90010252", "NPC_JobChange_change_race()" )
	dlg_menu( "@90010002", " " )
	dlg_show()
end

function NPC_JobChange_change_race()
	local npc_id = get_npc_id()
	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 도시 유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_title( "@90703201" )
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )
	--수련자의 섬 일 때 (3019)
	elseif npc_id == 3019 then
		dlg_title( "@90300401" )
		
	end -- if 끝
	
	if has_item(601100284) >= 1 then
		dlg_text( "@90010256" )

		local race = get_value( "race" )
	
		if race ~= 4 then
			dlg_menu( "@90010253", "NPC_JobChange_set_race(4)" )
		end
	
		if race ~= 5 then 
			dlg_menu( "@90010254", "NPC_JobChange_set_race(5)" )
		end
	
		if race ~= 3 then 
			dlg_menu( "@90010255", "NPC_JobChange_set_race(3)" )
		end
	
		dlg_show()
	else
		dlg_text( "@90010257" )
		dlg_menu( "@90010002", " " )
		dlg_show()
		
	end
	
end

function NPC_JobChange_set_race( changed_race )
	if has_item(601100284) >= 1 then -- 심장 있는지 체크 (아까 체크했지만 스크립트 *어 놓고 이것저것 할수있으므로 다시체크)
		local success = set_race( changed_race )
		local npc_id = get_npc_id()
		-- 가이아 일 때 (4004)
		if npc_id == 4004 then
			dlg_title( "@90400401" )
		-- 데바 일 때 (1004)
		elseif npc_id == 1004 then
			dlg_title( "@90100401" )
		-- 아수라 일 때 (2004)
		elseif npc_id == 2004 then
			dlg_title( "@90200401" )
		-- 론도 일 때 (6004)
		elseif npc_id == 6004 then
			dlg_title( "@90600401" )
		-- 도시 유적 일 때 (7032)
		elseif npc_id == 7032 then
			dlg_title( "@90703201" )
		-- 시크루트 일 때 (7004)
		elseif npc_id == 7004 then
			dlg_title( "@90700401" )
		--수련자의 섬 일 때 (3019)
		elseif npc_id == 3019 then
			dlg_title( "@90300401" )		
		end -- if 끝
	
		if success == 1 then
			delete_item( get_item_handle( 601100284 ), 1 )
			dlg_text( "@90010258" )
			dlg_menu( "@90010002", " " )
		else
			dlg_text( "@90010259" )
			dlg_menu( "@90010002", " " )
		end
	else
		dlg_text( "@90010257" )
		dlg_menu( "@90010002", " " )
	end

	dlg_show()
end

function NPC_JobChange_change_job()
	-- 임시 변수 선언과 동시에 NPC ID 가져오기
	local npc_id = get_npc_id()
	-- 국가 코드 읽어오기
		-- get_local_info()의 반환값들
		--LOCAL_INFO_KOREA                      = 1
		--LOCAL_INFO_HONGKONG                   = 2
		--LOCAL_INFO_AMERICA                    = 4
		--LOCAL_INFO_EUROPE                     = 8
		--LOCAL_INFO_JAPAN                      = 16
		--LOCAL_INFO_TAIWAN                     = 32
		--LOCAL_INFO_CHINA                      = 64
		
	local state_code = get_local_info()
	local reset_count = NPC_JobChange_get_resetcount()
	
	
	
	--reset_count = 0
	
	
	--================================================================================
	-- 전직 불가능한 경우 골라내기
	--================================================================================
	
	--local reset_count

	-- 기본직업일 때 Lv이나 JLv이 10 미만이면 전직불가.
	if get_value( "job_depth" ) == 0 then
		if get_value( "level" ) < 10 or get_value( "job_level" ) < 10 then

			-- 가이아 일 때 (4004)
			if npc_id == 4004 then
				dlg_title( "@90400401" )
			-- 데바 일 때 (1004)
			elseif npc_id == 1004 then
				dlg_title( "@90100401" )
			-- 아수라 일 때 (2004)
			elseif npc_id == 2004 then
				dlg_title( "@90200401" )
			-- 론도 일 때 (6004)
			elseif npc_id == 6004 then
				dlg_title( "@90600401" )
			-- 도시 유적 일 때 (7032)
			elseif npc_id == 7032 then
				dlg_title( "@90703201" )
			-- 시크루트 일 때 (7004)
			elseif npc_id == 7004 then
				dlg_title( "@90700401" )
			end -- if 끝
			
			-- 가이아 일 때 (4004)
			if npc_id == 4004 then
				dlg_text( "@90400403" )
			-- 데바 일 때 (1004)
			elseif npc_id == 1004 then
				dlg_text( "@90100403" )
			-- 아수라 일 때 (2004)
			elseif npc_id == 2004 then
				dlg_text( "@90200403" )
			-- 론도 일 때 (6004)
			elseif npc_id == 6004 then
				dlg_text( "@90600403" )
			-- 도시 유적 일 때 (7032)
			elseif npc_id == 7032 then
				dlg_text( "@90703203" )
				
			-- 시크루트 일 때 (7004)
			elseif npc_id == 7004 then
				dlg_text( "@90700403" )
			end -- if 끝
		
			dlg_menu( "@90010002", "" )
		
			dlg_show()

			return
		end

	-- 1차 직업일 때 Lv50 미만 JLv이 40 미만이면 전직불가.
	elseif get_value( "job_depth" ) == 1 then
	
		-- 중국은 2차 직업 막음. 2007.9.4. 중국 판호 관련으로 임시 해제.
	 	--if state_code == 2 then
			-- 더 이상 전직이 불가능하다는 멘트
	      --dlg_text( "@90100411" )
		
		  --dlg_menu( "@90010002", "" )
		
          	--dlg_show()

	      --return
	      --end
		
		-- 전직 불가능한 조건이면 튕김
		if get_value( "level" ) < 50 or get_value( "job_level" ) < 40 then
		
			-- 가이아 일 때 (4004)
			if npc_id == 4004 then
				dlg_title( "@90400401" )
			-- 데바 일 때 (1004)
			elseif npc_id == 1004 then
				dlg_title( "@90100401" )
			-- 아수라 일 때 (2004)
			elseif npc_id == 2004 then
				dlg_title( "@90200401" )
			-- 론도 일 때 (6004)
			elseif npc_id == 6004 then
				dlg_title( "@90600401" )
			-- 도시 유적 일 때 (7032)
			elseif npc_id == 7032 then
				dlg_title( "@90703201" )				
			-- 시크루트 일 때 (7004)
			elseif npc_id == 7004 then
				dlg_title( "@90700401" )
			end -- if 끝
			
			-- 가이아 일 때 (4004)
			if npc_id == 4004 then
				if is_able_to_jobchange() == true then
					dlg_text( "@90400409" )
				else
					dlg_text( "@90400402" )
				end
			-- 데바 일 때 (1004)
			elseif npc_id == 1004 then
				if is_able_to_jobchange() == true then
					dlg_text( "@90100409" )
				else
					dlg_text( "@90100402" )
				end
			-- 아수라 일 때 (2004)
			elseif npc_id == 2004 then
				if is_able_to_jobchange() == true then
					dlg_text( "@90200409" )
				else
					dlg_text( "@90200402" )
				end
			-- 론도 일 때 (6004)
			elseif npc_id == 6004 then
				if is_able_to_jobchange() == true then
					dlg_text( "@90600409" )
				else
					dlg_text( "@90600402" )
				end
			-- 도시 유적 일 때 (7032)
			elseif npc_id == 7032 then
				if is_able_to_jobchange() == true then
					dlg_text( "@90703209" )
				else
					dlg_text( "@90703202" )
				end
			-- 시크루트 일 때 (7004)
			elseif npc_id == 7004 then
				if is_able_to_jobchange() == true then
					dlg_text( "@90700409" )
				else
					dlg_text( "@90700402" )
				end
			end -- if 끝

			dlg_menu( "@90010002", "" )
			dlg_show()
			return

		-- 전직 가능할 때 테섭이 아니면 튕김.
	
		else
			if is_able_to_jobchange() == false then
				-- 가이아 일 때 (4004)
				if npc_id == 4004 then
					dlg_title( "@90400401" )
				-- 데바 일 때 (1004)
				elseif npc_id == 1004 then
					dlg_title( "@90100401" )
				-- 아수라 일 때 (2004)
				elseif npc_id == 2004 then
					dlg_title( "@90200401" )
				-- 론도 일 때 (6004)
				elseif npc_id == 6004 then
					dlg_title( "@90600401" )
				-- 도시 유적 일 때 (7032)
				elseif npc_id == 7032 then
					dlg_title( "@90703201" )
				-- 시크루트 일 때 (7004)
				elseif npc_id == 7004 then
					dlg_title( "@90700401" )
				end -- if 끝
				
				-- 가이아 일 때 (4004)
				if npc_id == 4004 then
					dlg_text( "@90400402" )
				-- 데바 일 때 (1004)
				elseif npc_id == 1004 then
					dlg_text( "@90100402" )
				-- 아수라 일 때 (2004)
				elseif npc_id == 2004 then
					dlg_text( "@90200402" )
				-- 론도 일 때 (6004)
				elseif npc_id == 6004 then
					dlg_text( "@90600402" )
				-- 도시 유적 일 때 (7032)
				elseif npc_id == 7032 then
					dlg_text( "@90703202" )
				-- 시크루트 일 때 (7004)
				elseif npc_id == 7004 then
					dlg_text( "@90700402" )
				end -- if 끝
				dlg_menu( "@90010002", "" )
				dlg_show()
				return
			end
		end

	-- 여기까지 오면 2차직업인 상태. 3차로의 전직은 불가능함
	elseif get_value( "job_depth" ) == 3 then
	
		-- 가이아 일 때 (4004)
		if npc_id == 4004 then
			dlg_title( "@90400401" )
		-- 데바 일 때 (1004)
		elseif npc_id == 1004 then
			dlg_title( "@90100401" )
		-- 아수라 일 때 (2004)
		elseif npc_id == 2004 then
			dlg_title( "@90200401" )
		-- 론도 일 때 (6004)
		elseif npc_id == 6004 then
			dlg_title( "@90600401" )
		-- 도시유적 일 때 (7032)
		elseif npc_id == 7032 then
			dlg_title( "@90703201" )
			
		-- 시크루트 일 때 (7004)
		elseif npc_id == 7004 then
			dlg_title( "@90700401" )

		end -- if 끝


		
		if reset_count == 0 then
			dlg_text( "@90604793" )
		elseif reset_count == 1 then
			dlg_text( "@90604794" )
		elseif reset_count == 2 then
			dlg_text( "@90604795" )
		elseif reset_count == 3 then
			dlg_text( "@90604796" )
		elseif reset_count == 4 then
			dlg_text( "@90604797" )
		elseif reset_count == 5 then
			dlg_text( "@90604798" )
		elseif reset_count == 6 then
			dlg_text( "@90604799" )
		elseif reset_count == 7 then
			dlg_text( "@90604800" )
		elseif reset_count == 8 then
			dlg_text( "@90604801" )
		elseif reset_count == 9 then
			dlg_text( "@90604802" )
		end
				

		-- 마스터 클래스 초기* 스킬 가능 멘트					
		

			
		
		-- 루피로 초기*하기		
		dlg_menu( "@90604803", "gold_skill_reset_check(npc_id)")
		-- JP로 초기*하기
		dlg_menu( "@90604804", "jp_skill_reset_check(npc_id)")
		
		-- 아이템 테스트용
		--dlg_menu( "Skill reset count Init", "Skill_reset_count_init()")		
		--dlg_menu( "Item skill reset", "item_skill_reset()")
							
		dlg_menu( "@90010002", "" )
			
		
		dlg_show()

		return
	
	else
		-- 가이아 일 때 (4004)
		if npc_id == 4004 then
			dlg_title( "@90400401" )
		-- 데바 일 때 (1004)
		elseif npc_id == 1004 then
			dlg_title( "@90100401" )
		-- 아수라 일 때 (2004)
		elseif npc_id == 2004 then
			dlg_title( "@90200401" )
		-- 론도 일 때 (6004)
		elseif npc_id == 6004 then
			dlg_title( "@90600401" )
		-- 도시유적 일 때 (7032)
		elseif npc_id == 7032 then
			dlg_title( "@90703201" )
			
		-- 시크루트 일 때 (7004)
		elseif npc_id == 7004 then
			dlg_title( "@90700401" )
		end -- if 끝

		-- 더 이상 전직이 불가능하다는 멘트
		-- dlg_text( "@90100411" )
		-- 마스터 클래스로 전직을 원한다면 영웅 헥토르를 만나라는 멘트
		dlg_text( "@91002563" )	
					
		dlg_menu( "@90010002", "" )
		
		dlg_show()

		return
	end

	

	-- 여기까지 왔으면 전직 가능
	
	local race = get_value( "race" )
	local job_name1, job1, job_name2, job2, job_name3, job3, number_job, current_job

	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 도시 유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_title( "@90703201" )
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )
	end -- if 끝

	-- 전직 가능한 직업의 개수를 초기*. 기본이 3이니 그냥 3으로...
	number_job = 3
	
	-- 현재 직업 ID를 받아 놓는다.
	current_job = get_value( "job" )

	--================================================================================
	-- 1차 전직일 경우.		(테이블에* 못읽어오므로 전직정보는 여기* 고치자)
	--================================================================================
	if get_value( "job_depth" ) == 0 then

		dlg_text( "@90100404" )
		-- 전직 가능한 직업의 개수를 설정. 1차 전직이므로 모두 3 이다.
		number_job = 3
	
		--============================================================================
		-- 얘가 데바면 파이터 201, 클레릭 202, 테이머 203
		if race == 4 then
			job_name1 =  "@10201" 
			job1 = 201
			job_name2 =  "@10202" 
			job2 = 202
			job_name3 =  "@10203" 
			job3 = 203

		--============================================================================
		-- 아수라면 스트라이더 301, 매지션 302, *모너 303
		elseif race == 5 then
			job_name1 =  "@10301" 
			job1 = 301
			job_name2 =  "@10302" 
			job2 = 302
			job_name3 =  "@10303" 
			job3 = 303
	
		--============================================================================
		-- 가이아라면 투사 101, 주술자 102, 야수사 103
		else
			job_name1 =  "@10101" 
			job1 = 101
			job_name2 =  "@10102" 
			job2 = 102
			job_name3 =  "@10103" 
			job3 = 103
		end

	--================================================================================
	-- 2차 전직일 경우.		(테이블에* 못읽어오므로 전직정보는 여기* 고치자)
	--================================================================================
	elseif get_value( "job_depth" ) == 1 then
	
		dlg_text( "@90700410" )

		--============================================================================
		-- 데바일 때
		if race == 4 then

			-- 파이터 전직 전직		
			if current_job == 201 then
				-- 나이트 210, 워리어 211
				number_job = 2
				
				job_name1 =  "@10210"
				job1 = 210
				job_name2 =  "@10211"
				job2 = 211

			-- 클레릭의 전직
			elseif current_job == 202 then
				-- 메이지 212, 프리스트 213
				number_job = 2
				
				job_name1 =  "@10212" 
				job1 = 212
				job_name2 =  "@10213" 
				job2 = 213
				

			-- 테이머의 전직		
			elseif current_job == 203 then
				-- 브리더
				number_job = 1
				
				job_name1 =  "@10214" 
				job1 = 214
				
				
			-- 이도저도 아니면 아무것도 아니다.
			else
				number_job = 0
			end

		--============================================================================
		-- 아수라
		elseif race == 5 then

			-- 스트라이더의 전직		
			if current_job == 301 then
				-- 어쌔신 310, 레인저 311
				number_job = 2
				
				job_name1 =  "@10310" 
				job1 = 310
				job_name2 =  "@10311" 
				job2 = 311

			-- 다크매지션의 전직		
			elseif current_job == 302 then
				-- 소*러 312, 다크매지션 313
				number_job = 2
				
				job_name1 =  "@10312" 
				job1 = 312
				job_name2 =  "@10313" 
				job2 = 313

			-- *모너 전직		
			elseif current_job == 303 then
				-- 
				number_job = 1
				
				job_name1 =  "@10314" 
				job1 = 314
				
				
			-- (무시.)
			else
				number_job = 0
			end
	
		--============================================================================
		-- 가이아
		else
			-- 투사의 전직	101	
			if current_job == 101 then
				-- 전사 110, 궁사 111
				number_job = 2
				
				job_name1 =  "@10110" 
				job1 = 110
				job_name2 =  "@10111" 
				job2 = 111

			-- 주술사의 전직
			elseif current_job == 102 then
				-- 마도사 112, 마투사 113
				number_job = 2
				
				job_name1 =  "@10112" 
				job1 = 112
				job_name2 =  "@10113" 
				job2 = 113

			-- 야수사의 전직
			elseif current_job == 103 then
				-- 마수사 114
				number_job = 1
				
				job_name1 =  "@10114" 
				job1 = 114
			-- 이도저도 아니면 아무것도 아니다.
			else
				number_job = 0
			end	
		end

	end
	
	if number_job == 1 then
		dlg_menu( job_name1 , "Run_JobChange_check_common( '" .. job_name1 .. "' , " .. job1 .. " )" )
		
	elseif number_job == 2 then
		dlg_menu( job_name1 , "Run_JobChange_check_common( '" .. job_name1 .. "' , " .. job1 .. " )" )
		dlg_menu( job_name2 , "Run_JobChange_check_common( '" .. job_name2 .. "' , " .. job2 .. " )" )
	
	elseif number_job == 3 then
		dlg_menu( job_name1 , "Run_JobChange_check_common( '" .. job_name1 .. "' , " .. job1 .. " )" )
		dlg_menu( job_name2 , "Run_JobChange_check_common( '" .. job_name2 .. "' , " .. job2 .. " )" )
		dlg_menu( job_name3 , "Run_JobChange_check_common( '" .. job_name3 .. "' , " .. job3 .. " )" )

	else
	
	end
		
	dlg_menu( "@90010001", '' )
 
	dlg_show()
	
end

----------------------------------------------------------------------------------------------------------------------
function NPC_master_partdevil_contact()
 
	-- 임시 변수 선언과 동시에 NPC ID 가져오기
	local npc_id = get_npc_id()
	-- 국가 코드 읽어오기
		-- get_local_info()의 반환값들
		--LOCAL_INFO_KOREA                      = 1
		--LOCAL_INFO_HONGKONG                   = 2
		--LOCAL_INFO_AMERICA                    = 4
		--LOCAL_INFO_EUROPE                     = 8
		--LOCAL_INFO_JAPAN                      = 16
		--LOCAL_INFO_TAIWAN                     = 32
		--LOCAL_INFO_CHINA                      = 64
	
	local state_code = get_local_info()

	local quest_progress3322 = get_quest_progress(3322)		

	--================================================================================
	-- 전직 불가능한 경우 골라내기
	--================================================================================
	-- 마스터 클래스 전직 가능 여부			
	if get_value( "job_depth" ) == 2 then
	
	
		-- 전직 불가능한 조건이면 튕김
		-- 전직 조건 변경 : 145 -> 148 2011년 4월 18일 우상욱
		if get_value( "level" ) < 147 or get_value( "job_level" ) < 49 then
			-- 마스터 사탄소녀
			dlg_title( "@91002405" )
						
				if is_able_to_jobchange() == true then
					dlg_text( "@91002407" )
					dlg_menu( "@90010003", "goto_hactor()" )
				else
					--지금은 마스터클래스로의 전직이 불가능한 상태입니다.
					dlg_text( "@91002406" )
					dlg_menu( "@90010003", "goto_hactor()" )
				end

			dlg_menu( "@90010002", "" )
			dlg_show()
			return

		-- 전직 가능할 때 테섭이 아니면 튕김.
		else
			if is_able_to_jobchange() == false then
				dlg_title( "@91002405" )
				dlg_text( "@91002406" )
						
				dlg_menu( "@90010002", "" )
				dlg_show()
				return
			end
		end

	-- 이미 3차직업인 상태. 더이상 전직은 불가능함
	elseif get_value("job_depth") == 3 then
		
		dlg_title( "@91002405" )
		-- 더 이상 전직이 불가능하다는 멘트
		dlg_text( "@91002408" )
		
		--TP 포인트란?
		dlg_menu( "@91002550", "tp_point_2()")
		
		
		dlg_menu( "@90010003", 'goto_hactor()' )
		
		dlg_menu( "@90010002", "" )
		
		dlg_show()

		return
	-- 1차 직업이 여기* 뭐하니? 누구랑 왔니? 전직 하고 와라 -_-
	else
		dlg_title( "@91002405" )

		if get_value("job") == 200 then
			job_name = "@1356"
		elseif get_value("job") == 201 then
			job_name = "@1357"
		elseif get_value("job") == 202 then
			job_name = "@1358"
		elseif get_value("job") == 203 then
			job_name = "@1359"
		elseif get_value("job") == 100 then
			job_name = "@1342"
		elseif get_value("job") == 101 then
			job_name = "@1343"
		elseif get_value("job") == 102 then
			job_name = "@1344"
		elseif get_value("job") == 103 then
			job_name = "@1345"
		elseif get_value("job") == 300 then
			job_name = "@1372"
		elseif get_value("job") == 301 then
			job_name = "@1373"
		elseif get_value("job") == 302 then
			job_name = "@1374"
		elseif get_value("job") == 303 then
			job_name = "@1375"
		end
		

		dlg_text_without_quest_menu(sconv("@91002426", "#@[email protected]#",job_name))
		
		dlg_menu( "@90010002", "" )
		dlg_show()

		return
	end

	

	-- 여기까지 왔으면 전직 가능
	
	local race = get_value( "race" )
	local job_name1, job1, job_name2, job2, job_name3, job3, number_job, current_job

	dlg_title( "@91002405" )
	

	-- 전직 가능한 직업의 개수를 초기*. 기본이 3이니 그냥 3으로...
	number_job = 3
	
	-- 현재 직업 ID를 받아 놓는다.
	current_job = get_value( "job" )


	--================================================================================
	-- 마스터 클래스 전직일 경우.		(테이블에* 못읽어오므로 전직정보는 여기* 고치자)
	--================================================================================
	if get_value( "job_depth" ) == 2 then
		
		
		-- 퀘스트 상태 체크 	get_quest_progress(ID)  
		-- 반환값 -1 : 아무것도 아님  /  0 : 수락가  /  1 : 수행중  /  2 : 종료가능  /  255 : 이미종료
		--if quest_progress3322 == 255 then


			dlg_text( "@91002409" ) --마스터클래스 전직 대상자 대사
			--============================================================================
			-- 데바일 때
			if race == 4 then

				-- 나이트 전직 전직		
				if current_job == 210 then
					-- 가즈나이트 220
					number_job = 1
				
					job_name1 =  "@10220"
					job1 = 220
					

				-- 워리어 전직 전직		
				elseif current_job == 211 then
					-- 히어로 221
					number_job = 1
				
					job_name1 =  "@10221"
					job1 = 221

				-- 메이지의 전직
				elseif current_job == 212 then
					-- 아크메이지 222
					number_job = 1
				
					job_name1 =  "@10222" 
					job1 = 222
				
				-- 프리스트의 전직
				elseif current_job == 213 then
					--  세인트 223
					number_job = 1
				
					job_name1 =  "@10223" 
					job1 = 223

				-- 브리더의 전직		
				elseif current_job == 214 then
				
					-- 마에스트로 224
					number_job = 1
				
					job_name1 =  "@10224" 
					job1 = 224
				
				
				-- 이도저도 아니면 아무것도 아니다.
				else
					number_job = 0
			end

--============================================================================
			-- 아수라
			elseif race == 5 then

				-- 어쌔신의 전직		
				if current_job == 310 then
					-- 스펙터 320
					number_job = 1
				
					job_name1 =  "@10320" 
					job1 = 320


				-- 레인져의 전직		
				elseif current_job == 311 then
					--  섀도우스토커 321
					number_job = 1
				
					job_name1 =  "@10321" 
					job1 = 321

				-- 소*러의 전직		
				elseif current_job == 312 then
					-- 둠세이어 322
					number_job = 1
				
					job_name1 =  "@10322" 
					job1 = 322


				-- 다크매지션의 전직		
				elseif current_job == 313 then
					-- 소울리버 323
					number_job = 1

					job_name1 =  "@10323" 
					job1 = 323

				-- 배틀*모너 전직		
				elseif current_job == 314 then
				
				-- 길가메쉬 324
					number_job = 1
				
					job_name1 =  "@10324" 
					job1 = 324
									
				-- (무시.)
				else
					number_job = 0
				end

--============================================================================
			-- 가이아
			else
				-- 전사의 전직	
				if current_job == 110 then
					-- 투신 120
					number_job = 1
					
					job_name1 =  "@10120" 
					job1 = 120

	
				-- 궁사의 전직	
				elseif current_job == 111 then
					-- 신궁 121
					number_job = 1
					
					job_name1 =  "@10121" 
					job1 = 121
	

				-- 마도사의 전직
				elseif current_job == 112 then
					-- 현자 122
					number_job = 1
					
					job_name1 =  "@10122" 
					job1 = 122


				-- 마투사의 전직
				elseif current_job == 113 then
					-- 금* 123
					number_job = 1
					
					job_name1 =  "@10123" 
					job1 = 123

				-- 마수사의 전직
				elseif current_job == 114 then
					-- 나찰 124
					number_job = 1
				
					job_name1 =  "@10124" 
					job1 = 124

				-- 이도저도 아니면 아무것도 아니다.
				else
					number_job = 0
				end
			end

		else
			-- 모든 시련을 이겨내고 여기까지 온 것을 축하합니다.<(version:7.3)>			
			dlg_title( "@90300401" )
			dlg_text( "@91002486" )
		
		
			dlg_menu( "@90010003", 'goto_hactor()' )
		
			dlg_menu( "@90010002", " " )
		
			dlg_show()
			return
		end

	

	if number_job == 1 then
		dlg_menu( job_name1 , "Run_JobChange_check_common( '" .. job_name1 .. "' , " .. job1 .. " )" )
		
	elseif number_job == 2 then
		dlg_menu( job_name1 , "Run_JobChange_check_common( '" .. job_name1 .. "' , " .. job1 .. " )" )
		dlg_menu( job_name2 , "Run_JobChange_check_common( '" .. job_name2 .. "' , " .. job2 .. " )" )
	
	elseif number_job == 3 then
		dlg_menu( job_name1 , "Run_JobChange_check_common( '" .. job_name1 .. "' , " .. job1 .. " )" )
		dlg_menu( job_name2 , "Run_JobChange_check_common( '" .. job_name2 .. "' , " .. job2 .. " )" )
		dlg_menu( job_name3 , "Run_JobChange_check_common( '" .. job_name3 .. "' , " .. job3 .. " )" )

	else
	
	end

	dlg_menu( "@90010003", 'goto_hactor()' )
	
	dlg_menu( "@90010001", '' )
 
	dlg_show()
	
end


function goto_hactor()

	warp( 138645, 75174, gv("layer") )

end


function tp_point()

	-- 다이얼로그 출력
	dlg_title( "@90999851" )
	dlg_text( "@91002551" )


	--특성 스킬이란?
	dlg_menu( "@91002554", "tp_skill()")

	-- 대*종료 
	--dlg_menu( "@90010003","NPC_master_partdevil_contact()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end		

function tp_skill()

	-- 다이얼로그 출력
	dlg_title( "@90999851" )

	--TP 포인트 분배는 어쩌구 저쩌구
	dlg_text( "@91002553" )

	--상위 특성 스킬이란?
	dlg_menu( "@91002556", "upper_tp_skill()")
	
	-- 하위 특성 스킬이란?
	dlg_menu( "@91002558", "lower_tp_skill()")

	-- 대*종료 

	dlg_menu( "@90010003","tp_point()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end	

function 	upper_tp_skill()

	-- 다이얼로그 출력
	dlg_title( "@90999851" )

	-- 상위 특성 스킬은 어쩌구 저쩌구
	dlg_text( "@91002557" )

	-- 대*종료 

	dlg_menu( "@90010003","tp_skill()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end

function 	lower_tp_skill()

	-- 다이얼로그 출력
	dlg_title( "@90999851" )

	-- 하위 특성 스킬은 어쩌구 저쩌구
	dlg_text( "@91002559" )


	-- 대*종료 

	dlg_menu( "@90010003","tp_skill()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end


-----------------------------------------------------------
-- 사탄소녀 TP 포인트 설명
function tp_point_2()

	-- 다이얼로그 출력
	dlg_title( "@91002405" )
	dlg_text( "@91002551" )


	--특성 스킬이란?
	dlg_menu( "@91002554", "tp_skill_2()")

	-- 대*종료 
	dlg_menu( "@90010003","NPC_master_partdevil_contact()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end		

function tp_skill_2()

	-- 다이얼로그 출력
	dlg_title( "@91002405" )

	--TP 포인트 분배는 어쩌구 저쩌구
	dlg_text( "@91002553" )

	--상위 특성 스킬이란?
	dlg_menu( "@91002556", "upper_tp_skill_2()")
	
	-- 하위 특성 스킬이란?
	dlg_menu( "@91002558", "lower_tp_skill_2()")

	-- 대*종료 

	dlg_menu( "@90010003","tp_point_2()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end	

function 	upper_tp_skill_2()

	-- 다이얼로그 출력
	dlg_title( "@91002405" )

	-- 상위 특성 스킬은 어쩌구 저쩌구
	dlg_text( "@91002557" )

	-- 대*종료 

	dlg_menu( "@90010003","tp_skill_2()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end

function 	lower_tp_skill_2()

	-- 다이얼로그 출력
	dlg_title( "@91002405" )

	-- 하위 특성 스킬은 어쩌구 저쩌구
	dlg_text( "@91002559" )


	-- 대*종료 

	dlg_menu( "@90010003","tp_skill_2()" )	-- 돌아가기

	dlg_menu( "@90010002", " " )
	dlg_show()

end
------------------------------------------------------------------------------------------------------------------------
function Run_JobChange_check_common( job_name , job_id )

	-- 임시 변수 선언과 동시에 NPC ID 가져오기
	local npc_id = get_npc_id()
	local jobid = job_id

	-- 클릭 실수했을지도 모르므로 확실한지 확인해줌.

	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )
	-- 마스터 사탄소녀
	elseif npc_id == 11555 then
		dlg_title( "@91002405" )
	end -- if 끝

	
	
		
	if jobid == 210 then
		dlg_text_without_quest_menu("@90700411")
	elseif jobid == 211 then
		dlg_text_without_quest_menu("@90700412")
	elseif jobid == 212 then
		dlg_text_without_quest_menu("@90700413")
	elseif jobid == 213 then
		dlg_text_without_quest_menu("@90700414")
	elseif jobid == 214 then
		dlg_text_without_quest_menu("@90700415")
	elseif jobid == 310 then
		dlg_text_without_quest_menu("@90700416")
	elseif jobid == 311 then
		dlg_text_without_quest_menu("@90700417")
	elseif jobid == 312 then
		dlg_text_without_quest_menu("@90700418")
	elseif jobid == 313 then
		dlg_text_without_quest_menu("@90700419")
	elseif jobid == 314 then
		dlg_text_without_quest_menu("@90700420")
	elseif jobid == 110 then
		dlg_text_without_quest_menu("@90700421")
	elseif jobid == 111 then
		dlg_text_without_quest_menu("@90700422")
	elseif jobid == 112 then
		dlg_text_without_quest_menu("@90700423")
	elseif jobid == 113 then
		dlg_text_without_quest_menu("@90700424")
	elseif jobid == 114 then
		dlg_text_without_quest_menu("@90700425")
	elseif jobid == 101 then
	    dlg_text_without_quest_menu("@90301919")
  	elseif jobid == 102 then
	    dlg_text_without_quest_menu("@90301920")
	elseif jobid == 103 then
	    dlg_text_without_quest_menu("@90301921")
	elseif jobid == 201 then
	    dlg_text_without_quest_menu("@90301913")
	elseif jobid == 202 then
	    dlg_text_without_quest_menu("@90301914")
	elseif jobid == 203 then
	    dlg_text_without_quest_menu("@90301915")
  	elseif jobid == 301 then
	    dlg_text_without_quest_menu("@90301916")
	elseif jobid == 302 then
	    dlg_text_without_quest_menu("@90301917")
	elseif jobid == 303 then
	    dlg_text_without_quest_menu("@90301918")
	elseif jobid == 120 then --투신이란
	    dlg_text_without_quest_menu("@91002410")
	elseif jobid == 121 then --신궁이란
	    dlg_text_without_quest_menu("@91002411")
	elseif jobid == 122 then --현자란
	    dlg_text_without_quest_menu("@91002412")
	elseif jobid == 123 then --금*이란
	    dlg_text_without_quest_menu("@91002413")
	elseif jobid == 124 then --나찰이란
	    dlg_text_without_quest_menu("@91002414")
	elseif jobid == 220 then --가즈나이트란
	    dlg_text_without_quest_menu("@91002415")
	elseif jobid == 221 then --히어로란
	    dlg_text_without_quest_menu("@91002416")
	elseif jobid == 222 then --아크메이지란
	    dlg_text_without_quest_menu("@91002417")
	elseif jobid == 223 then --세인트란
	    dlg_text_without_quest_menu("@91002418")
	elseif jobid == 224 then --마에스트로란
	    dlg_text_without_quest_menu("@91002419")
	elseif jobid == 320 then --스펙터란
	    dlg_text_without_quest_menu("@91002420")
	elseif jobid == 321 then --섀도우스토커란
	    dlg_text_without_quest_menu("@91002421")
	elseif jobid == 322 then --둠세이어란
	    dlg_text_without_quest_menu("@91002422")
	elseif jobid == 323 then --소울리버란
	    dlg_text_without_quest_menu("@91002423")
	elseif jobid == 324 then --길가메쉬란
	    dlg_text_without_quest_menu("@91002424")
	end
	
	dlg_menu( "@90010007", "Run_JobChange_common( '" .. job_name .. "' , "  .. job_id ..' )' )

	dlg_menu( "@90010001", '' )
		
	dlg_show()
	
end


function Run_JobChange_common( job_name , job_id )

	
	local current_job, current_jlv, job_depth
	
	-- 임시 변수 선언과 동시에 NPC ID 가져오기
	local npc_id = get_npc_id()
	
	-- 시작
	-- NPC 대* 최종 단계에* 마스터 클래스 전직 조건 한번 더 하기
	-- 마스터 사탄소녀
	if npc_id == 11555 then
		--================================================================================
		-- 전직 불가능한 경우 골라내기
		--================================================================================
		-- 마스터 클래스 전직 가능 여부	
		if get_value( "job_depth" ) == 2 then
		
		
			-- 전직 불가능한 조건이면 튕김
			-- 전직 조건 변경 : 145 -> 148 2011년 4월 18일 우상욱
			if get_value( "level" ) < 147 or get_value( "job_level" ) < 49 then
				-- 마스터 사탄소녀
				dlg_title( "@91002405" )
							
					if is_able_to_jobchange() == true then
						dlg_text( "@91002407" )
						dlg_menu( "@90010003", "goto_hactor()" )
					else
						--지금은 마스터클래스로의 전직이 불가능한 상태입니다.
						dlg_text( "@91002406" )
						dlg_menu( "@90010003", "goto_hactor()" )
					end

				dlg_menu( "@90010002", "" )
				dlg_show()
				return

			-- 전직 가능할 때 테섭이 아니면 튕김.
			else
				if is_able_to_jobchange() == false then
					dlg_title( "@91002405" )
					dlg_text( "@91002406" )
							
					dlg_menu( "@90010002", "" )
					dlg_show()
					return
				end
			end

		-- 이미 3차직업인 상태. 더이상 전직은 불가능함
		elseif get_value("job_depth") == 3 then
			
			dlg_title( "@91002405" )
			-- 더 이상 전직이 불가능하다는 멘트
			dlg_text( "@91002408" )
			
			--TP 포인트란?
			dlg_menu( "@91002550", "tp_point_2()")
			
			
			dlg_menu( "@90010003", 'goto_hactor()' )
			
			dlg_menu( "@90010002", "" )
			
			dlg_show()

			return
		-- 1차 직업이 여기* 뭐하니? 누구랑 왔니? 전직 하고 와라 -_-
		else
			dlg_title( "@91002405" )

			if get_value("job") == 200 then
				job_name = "@1356"
			elseif get_value("job") == 201 then
				job_name = "@1357"
			elseif get_value("job") == 202 then
				job_name = "@1358"
			elseif get_value("job") == 203 then
				job_name = "@1359"
			elseif get_value("job") == 100 then
				job_name = "@1342"
			elseif get_value("job") == 101 then
				job_name = "@1343"
			elseif get_value("job") == 102 then
				job_name = "@1344"
			elseif get_value("job") == 103 then
				job_name = "@1345"
			elseif get_value("job") == 300 then
				job_name = "@1372"
			elseif get_value("job") == 301 then
				job_name = "@1373"
			elseif get_value("job") == 302 then
				job_name = "@1374"
			elseif get_value("job") == 303 then
				job_name = "@1375"
			end
			

			dlg_text_without_quest_menu(sconv("@91002426", "#@[email protected]#",job_name))
			
			dlg_menu( "@90010002", "" )
			dlg_show()

			return
		end	
	
	end -- if 끝
	-- NPC 대* 최종 단계에* 마스터 클래스 전직 조건 한번 더 하기
	--종료
	

	-- 에헤라디야~~ 전직이요~

	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 도시 유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_title( "@90703201" )
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )
	-- 마스터 사탄소녀
	elseif npc_id == 11555 then
		dlg_title( "@91002405" )
	end -- if 끝
	
	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_text_without_quest_menu(sconv("@90400406", "#@[email protected]#",job_name))
		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_text_without_quest_menu(sconv("@90100406", "#@[email protected]#",job_name))
		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_text_without_quest_menu(sconv("@90200406", "#@[email protected]#",job_name))
		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_text_without_quest_menu(sconv("@90600406", "#@[email protected]#",job_name))
		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	-- 도시 유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_text_without_quest_menu(sconv("@90703206", "#@[email protected]#",job_name))
		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_text_without_quest_menu(sconv("@90700406", "#@[email protected]#",job_name))
		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	-- 마스터 사탄소녀
	elseif npc_id == 11555 then
		dlg_text_without_quest_menu(sconv("@91002425", "#@[email protected]#",job_name))
		local master_up = sconv("@246", "#@[email protected]#", get_value("name"),"#@[email protected]#",job_name)		
		announce( master_up )

		--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	end -- if 끝
	

	dlg_menu( "@90010002", '' )
	
	dlg_show()
	
	-- 전직 전 직업과 잡레벨을 저장한다.
	current_job = get_value( "job" )
	current_jlv = get_value( "job_level" )
	job_depth = get_value( "job_depth" )
	if job_depth == 0 then
		set_value( "job_0", current_job )
		set_value( "jlv_0", current_jlv )
		--0차에* 1차 전직할때 "신성한 불꽃의 힘" 아이템을 1개 지급해준다. 해당 아이템은 잡*상점에*도 판매한다.
		--insert_item( 2013081, 1 ) --아이템 능력치가 너무 좋아* 미적용으로 수정
		--cprint( "@90606144" )
	elseif job_depth == 1 then
		set_value( "job_1", current_job )
		set_value( "jlv_1", current_jlv )
	elseif job_depth == 2 then
		set_value( "job_2", current_job )
		set_value( "jlv_2", current_jlv )

	--마스터클래스 전직 전 직업과 잡레벨 저장
	elseif job_depth == 3 then
		set_value( "job_3", current_job )
		set_value( "jlv_3", current_jlv )
	end
	
	job_depth = job_depth + 1
	-- 전직 시키기.
	set_value( "job" , job_id )
	set_value( "job_level" , 1 )
	set_value( "job_depth" , job_depth )
	--##시작
	message( sconv("@90010017", "#@[email protected]#",job_name) )
    --끝 #@[email protected]# (/으)로 전직했습니다

	
end


function NPC_TestServer_Support()
 
	-- 임시 변수 선언과 동시에 NPC ID 가져오기
	local npc_id = get_npc_id()
	-- 국가 코드 읽어오기
		-- get_local_info()의 반환값들
		--LOCAL_INFO_KOREA                      = 1
		--LOCAL_INFO_HONGKONG                   = 2
		--LOCAL_INFO_AMERICA                    = 4
		--LOCAL_INFO_EUROPE                     = 8
		--LOCAL_INFO_JAPAN                      = 16
		--LOCAL_INFO_TAIWAN                     = 32
		--LOCAL_INFO_CHINA                      = 64
		
	local state_code = get_local_info()

	

	-- 0차, 2차 직업일때 도우미 *비스 받을 수 없다.
	if get_value( "job_depth" ) == 0 then

		dlg_title( "@91002016" )
		dlg_text( "@91002018" )
		dlg_menu( "@90010002", "" )
		
		dlg_show()
		
		return
	
	end
	
	
	local race = get_value( "race" )
	local job_name1, job1, job_name2, job2, job_name3, job3, number_job, current_job


		
	-- 현재 직업 ID를 받아 놓는다.
	current_job = get_value( "job" )



	--================================================================================
	-- 1차 직업일때 레벨업110, 잡레벨50, 5랭크 지원 아이템을 받을 수 있다.
	--================================================================================
	if get_value( "job_depth" ) == 1 then
	
		dlg_title( "@91002016" )
		dlg_text( "@91002019" )
		dlg_menu( "@91002020", "TestServer_Support_lv_jp()" )
		dlg_menu( "@91002021", "TestServer_Support_5rank_item()" )
		dlg_menu( "@90010002", " " )
		
		dlg_show()
		
		return	
	
	end
	
	if get_value( "job_depth" ) == 2 then
	
		dlg_title( "@91002016" )
		dlg_text( "@91002019" )
		dlg_menu( "@91002020", "TestServer_Support_jp()" )
		dlg_menu( "@91002027", "TestServer_Support_rupee()" )
		dlg_menu( "@90010002", " " )
		
		dlg_show()
		
		return	
	
	end
	
	dlg_menu( "@90010002", " " )	
	 
	dlg_show()
	
end

--2차전직 후 잡 레벨 지원
function TestServer_Support_jp()
 
		
	set_value( "job_level" , 50 )

	dlg_title( "@91002016" )
	dlg_text( "@91002022" )
	dlg_menu( "@90010002", "" )
	dlg_show()
	
end

--2차전직 후 루피 지원
function TestServer_Support_rupee()
	dlg_title( "@91002016" )

	if get_flag( "designteam_bless" ) ~= 1 then
		dlg_text( "@91002025" ) -- <(version:7.2)>루피와 루나칩을 지원해준다는 내용
		
		-- 잡포인트 설정
		add_value( "jp" , 83120300 )
		add_value( "gold" , 500001 )
		
		insert_item( 690303, 4521 )
		cprint( "@91000778" ) -- <(version:7.2)><#6DD66D>아이템을 획득 하였습니다.
		
		--루피지원 플래그 설정
		set_flag( "designteam_bless", 1 )
	else
		dlg_text( "@91002026" ) -- <(version:7.2)>이미 지원을 받으셨네요~ 즐거운 하루 되세요!
		--add_state( 1013, 10, 120000) -- 이동속도 증가( 10레벨 , 20분)
	end
	
	dlg_menu( "@90010002", "" )
	dlg_show()
end

function TestServer_Support_lv_jp()
 
	-- 레벨 및 잡포인트 설정
		
	set_value( "level" , 109 )
	set_value( "job_level" , 50 )

	dlg_title( "@91002016" )
	dlg_text( "@91002022" )
	dlg_menu( "@90010002", "" )
	dlg_show()

	
end

function TestServer_Support_5rank_item()

	-- 넣어줄 아이템ID, 개수
		insert_item ( 18000040, 1 )
		insert_item ( 18000041, 1 )
		insert_item ( 18000042, 1 )
		insert_item ( 18000043, 1 )
		insert_item ( 18000044, 1 )
		insert_item ( 18000045, 1 )
		insert_item ( 18000046, 1 )
		insert_item ( 18000047, 1 )
		insert_item ( 18000048, 1 )
		insert_item ( 18000049, 1 )
		insert_item ( 18000050, 1 )
		insert_item ( 18000051, 1 )
		insert_item ( 18000052, 1 )
		insert_item ( 18000053, 1 )
		insert_item ( 18000054, 1 )
		insert_item ( 18000055, 1 )
		insert_item ( 18000056, 1 )
		insert_item ( 18000057, 1 )
		insert_item ( 18000058, 1 )
		insert_item ( 18000059, 1 )
		insert_item ( 18000060, 1 )
		insert_item ( 18000061, 1 )
		insert_item ( 18000062, 1 )
		insert_item ( 18000063, 1 )
		insert_item ( 18000064, 1 )
		insert_item ( 18000065, 1 )
		insert_item ( 18000066, 1 )
		insert_item ( 18000067, 1 )
		insert_item ( 18000068, 1 )
		insert_item ( 18000069, 1 )
		insert_item ( 18000070, 1 )
		insert_item ( 18000071, 1 )
		insert_item ( 18000072, 1 )
		insert_item ( 18000073, 1 )
		insert_item ( 18000074, 1 )
		insert_item ( 18000075, 1 )

	dlg_title( "@91002016" )
	dlg_text( "@91002022" )
	dlg_menu( "@90010002", "" )
	dlg_show()

end


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




------------------------------------------------------------------------------------------------------------------------
------------------------- 수련자의 섬 잡 *포터는 튜토리얼에 있습니다. 이건 사용하지 않습니다. -------------------------
------------------------------------------------------------------------------------------------------------------------



	--=====================================================
	-- 초보자섬 섬 용
	--=====================================================

function NPC_JobChange_Beginner_contact()
 

	--================================================================================
	-- 전직 불가능한 경우 골라내기
	--================================================================================

	-- 기본직업일 때 Lv이나 JLv이 10 미만이면 전직불가.
	if get_value( "job_depth" ) == 0 then
		if get_value( "level" ) < 10 or get_value( "job_level" ) < 10 then
			dlg_title( "@90300401" )
			dlg_text( "@90300403" )
		
			dlg_menu( "@90010002", "" )
			dlg_show()

			return
		end

	-- 1차 직업일 때 Lv50 미만 JLv이 40 미만이면 전직불가. (해제) 2차 직업 전직 모두 막기.
	elseif get_value( "job_depth" ) == 1 then
		if get_value( "level" ) < 50 or get_value( "job_level" ) < 40 then
			dlg_title( "@90300401" )
--			dlg_text( "@90300409" )
			dlg_text( "@90300402" )		--> 임시 : 2차전직 불가능하다는 안내메세지

			dlg_menu( "@90010002", "" )
			dlg_show()
	
			return
		
		else

			dlg_title( "@90300401" )
			dlg_text( "@90300402" )		--> 임시 : 2차전직 불가능하다는 안내메세지

			dlg_menu( "@90010002", "" )
		
			dlg_show()

			return
	
		end

	-- 여기까지 오면 2차직업인 상태. 3차로의 전직은 불가능함.
	else
		dlg_title( "@90300401" )
		dlg_text( "@90300402" )			--> 지금은 3차전직 안된다는 대사

		dlg_menu( "@90010002", "" )
		
		dlg_show()

		return
	end

	

	-- 여기까지 왔으면 전직 가능
	
	local race = get_value( "race" )
	local job_name1, job1, job_name2, job2, job_name3, job3, number_job, current_job

	dlg_title( "@90300401" )

	-- 전직 가능한 직업의 개수를 초기*. 기본이 3이니 그냥 3으로...
	number_job = 3
	
	-- 현재 직업 ID를 받아 놓는다.
	current_job = get_value( "job" )

	--================================================================================
	-- 1차 전직일 경우.		(테이블에* 못읽어오므로 전직정보는 여기* 고치자)
	--================================================================================
	if get_value( "job_depth" ) == 0 then

		dlg_text( "@90300404" )
		-- 전직 가능한 직업의 개수를 설정. 1차 전직이므로 모두 3 이다.
		number_job = 3
	
		--============================================================================
		-- 얘가 데바면 디바인솔져 201 또는 클레릭 203, 브리더 204가 될 수 있다.
		if race == 4 then
			job_name1 =  "@10201" 
			job1 = 201
			job_name2 =  "@10202" 
			job2 = 202
			job_name3 =  "@10203" 
			job3 = 203

		--============================================================================
		-- 아수라면 스트라이더301나 다크매지션303, 소*러304가 될 수 있다.
		elseif race == 5 then
			job_name1 =  "@10301" 
			job1 = 301
			job_name2 =  "@10302" 
			job2 = 302
			job_name3 =  "@10303" 
			job3 = 303
	
		--============================================================================
		-- 데바도 아수라도 아니면 가이아겠지. 투사 101, 주술사 103, 마수사 104 가 될 수 있다.
		else
			job_name1 =  "@10101" 
			job1 = 101
			job_name2 =  "@10102" 
			job2 = 102
			job_name3 =  "@10103" 
			job3 = 103
		end

	
	end
		
	if number_job == 1 then
		dlg_menu( job_name1 , "Run_JobChange_Beginner_check( '" .. job_name1 .. "' , " .. job1 .. " )" )
		
	elseif number_job == 2 then
		dlg_menu( job_name1 , "Run_JobChange_Beginner_check( '" .. job_name1 .. "' , " .. job1 .. " )" )
		dlg_menu( job_name2 , "Run_JobChange_Beginner_check( '" .. job_name2 .. "' , " .. job2 .. " )" )
	
	elseif number_job == 3 then
		dlg_menu( job_name1 , "Run_JobChange_Beginner_check( '" .. job_name1 .. "' , " .. job1 .. " )" )
		dlg_menu( job_name2 , "Run_JobChange_Beginner_check( '" .. job_name2 .. "' , " .. job2 .. " )" )
		dlg_menu( job_name3 , "Run_JobChange_Beginner_check( '" .. job_name3 .. "' , " .. job3 .. " )" )

	else
	
	end


	dlg_menu( "@90010001", '' )
 
	dlg_show()
	
end

function Run_JobChange_Beginner_check( job_name , job_id )

	-- 클릭 실수했을지도 모르므로 확실한지 확인해줌.

	cprint( job_name )

	dlg_title( "@90300401" )
	--##시작
	--dlg_text( job_name ..  "@90300405"  )
	dlg_text_without_quest_menu(sconv("@90300405", "#@[email protected]#",job_name))
    --##끝 #@[email protected]# (/으)로의 전직이라...<BR>좋은 직업을 골랐군.<BR>확실한가?
	
	dlg_menu( "@90010007", "Run_JobChange_Beginner( '" .. job_name .. "' , "  .. job_id ..' )' )
	dlg_menu( "@90010001", '' )
	
	dlg_show()
	
end


function Run_JobChange_Beginner( job_name , job_id )

	local current_job, current_jlv

	-- 에헤라디야~~ 전직이요~

	dlg_title( "@90300401" )
	--##시작
	dlg_text_without_quest_menu(sconv("@90300406", "#@[email protected]#", job_name))
    --##끝 축하하네!!<BR>지금 이순간부터 자넨 #@[email protected]#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
	
	dlg_menu( "@90010002", '' )
	
	dlg_show()

	-- 전직 전 직업과 잡레벨을 저장한다.
	current_job = get_value( "job" )
	current_jlv = get_value( "job_level" )
	
	if get_value( "job_depth" ) == 0 then
		set_value( "job_0", current_job )
		set_value( "jlv_0", current_jlv )
	elseif get_value( "job_depth" ) == 1 then
		set_value( "job_1", current_job )
		set_value( "jlv_1", current_jlv )
	elseif get_value( "job_depth" ) == 2 then
		set_value( "job_2", current_job )
		set_value( "jlv_2", current_jlv )
	end
	
	job_depth = job_depth + 1
	-- 전직 시키기.
	set_value( "job" , job_id )
	set_value( "job_level" , 1 )
	set_value( "job_depth" , job_depth )
	--##시작
	message( sconv("@90010017", "#@[email protected]#",job_name) )
    --##끝 #@[email protected]# (/으)로 전직했습니다.

	
end


------------------------------------------------------------------------------------------------------------------------
------------------------- 수련자의 섬 잡 *포터는 튜토리얼에 있습니다. 이건 사용하지 않습니다. -------------------------
------------------------------------------------------------------------------------------------------------------------


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

--마스터 클래스 스킬 초기* 스크립트 메인

--루피로 초기* 하기

function gold_skill_reset_check( npc_id )
 
	local reset_gold = { 10000, 2500000, 5000000, 10000000, 25000000, 50000000, 100000000, 500000000, 1000000000, 2000000000 }
	local reset_count = NPC_JobChange_get_resetcount()
	local cost_gold = reset_gold[ reset_count + 1 ]
	local gold = get_value( 'gold' )	
	
	local npc_id = get_npc_id()
	
	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 도시유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_title( "@90703201" )
		
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )

	end -- if 끝
	

	if gold >= cost_gold then
        
        set_value( 'gold', gold - cost_gold )
		reset_skill( 3 )
		
		if reset_count < 9 then
			set_flag( 'reset_count', reset_count + 1 )
		
			dlg_text( "@90604805" )

			dlg_menu( "@90010002", "" )
		
			dlg_show()
		
			return
		
		else
		
			set_flag( 'reset_count', 9 )
		
			dlg_text( "@90604805" )

			dlg_menu( "@90010002", "" )
		
			dlg_show()
		
			return
		end		
		
	else
		dlg_text( "@90604806" )

		dlg_menu( "@90010002", "" )
		
		dlg_show()
		
		return
		
	end
		
end



--JP로 초기* 하기

function jp_skill_reset_check( npc_id )
 
	local reset_jp = { 2000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 100000000, 200000000, 400000000 }
	local reset_count = NPC_JobChange_get_resetcount()
	local cost_jp = reset_jp[ reset_count + 1 ]
	local jp = get_value( 'jp' )	
	
	local npc_id = get_npc_id()
	
	-- 가이아 일 때 (4004)
	if npc_id == 4004 then
		dlg_title( "@90400401" )
	-- 데바 일 때 (1004)
	elseif npc_id == 1004 then
		dlg_title( "@90100401" )
	-- 아수라 일 때 (2004)
	elseif npc_id == 2004 then
		dlg_title( "@90200401" )
	-- 론도 일 때 (6004)
	elseif npc_id == 6004 then
		dlg_title( "@90600401" )
	-- 도시유적 일 때 (7032)
	elseif npc_id == 7032 then
		dlg_title( "@90703201" )
		
	-- 시크루트 일 때 (7004)
	elseif npc_id == 7004 then
		dlg_title( "@90700401" )

	end -- if 끝
	
	if jp >= cost_jp then
        
        set_value( 'jp', jp - cost_jp )
		reset_skill( 3 )
		
		if reset_count < 9 then
			set_flag( 'reset_count', reset_count + 1 )
		
			dlg_text( "@90604805" )

			dlg_menu( "@90010002", "" )
		
			dlg_show()
		
			return
		
		else
		
			set_flag( 'reset_count', 9 )
		
			dlg_text( "@90604805" )

			dlg_menu( "@90010002", "" )
		
			dlg_show()
		
			return
		end		
		
	else
		dlg_text( "@90604806" )

		dlg_menu( "@90010002", "" )
		
		dlg_show()
		
		return
		
	end
	
		
end

--마스터 클래스 스킬 초기* 카운터 증가 없이 실행

function item_skill_reset()

	
	reset_skill( 3 )
	cprint("@90604808")
	
	return

		
end

--마스터 클래스 초기* 카운터 초기* 하기

function Skill_reset_count_init()

	local reset_count = NPC_JobChange_get_resetcount()
	
		
 
	set_flag( 'reset_count', 0 )
	cprint("@90604807")
		
	return

		
end

--성별 변환 하기

function Change_Character_Gender()

	local transgender = get_value("sex")
		
	if transgender == 1 then
		set_value("sex", 2) -- 성별 바꿔주고
	
	elseif transgender == 2 then
		set_value("sex", 1)
	
	end
end






-------------------------------------------------------------------------------------------------------------------------
ThunderNikk is offline  
Old   #5187
 
elite*gold: 0
Join Date: Oct 2010
Posts: 147
Received Thanks: 2

I need that like on the official server. so the master class was for quests
khshe is offline  
Old   #5188
Moderator
 
elite*gold: 1
Join Date: Dec 2012
Posts: 3,137
Received Thanks: 1,025
That's what I posted.
ThunderNikk is offline  
Thanks
1 User
Old   #5189
 
elite*gold: 0
Join Date: Oct 2013
Posts: 410
Received Thanks: 29
i had a problem which it in skill state remaining time

when i use the any skill has a buff , at the first time everything is ok
after that the remaining time go less and less
i use official 9.1 files
i have change the SQL server to another twice and the problem still there

any help ?

notice that when i logoff and login the skill buff remain time back to normal
after 5 mins the problem come back again !
Sherock is offline  
Old   #5190
 
elite*gold: 0
Join Date: Nov 2013
Posts: 4
Received Thanks: 1
NPC Roaming

Hello guys,

I'm trying to make NPC walking as guards patrols (which are monsters).
Also I tried to modify, in NPCResource table, columns : is_roam (1) , roaming_id (ex : 4004), standard_walk_speed (40), standard_run_speed (80), walk_speed (40) and run_speed (80)

Gameserver crash when roaming_id > 0

I took my roaming_id from RoamingResource table, but I think it is a different table for NPCs ...

Is someone have tried to make NPC moving?

Thanks
Wen


ghostfcc is offline  
Reply

Tags
7.4, client, rappelz



« Previous Thread | Next Thread »

Similar Threads
[Helping Topic] 24/7 Helping Services!
stucked on anything while setuping your server? post your problem here and you will get answer as fast as possible better than spamming with posts...
31 Replies - EO PServer Hosting



All times are GMT +1. The time now is 05:22.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.