You last visited: Today at 18:48
Advertisement
[Help Thread] Please post your questions here.
Discussion on [Help Thread] Please post your questions here. within the Rappelz Private Server forum part of the Rappelz category.
09/29/2015, 19:26
#5176
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 :/
09/29/2015, 20:28
#5177
Moderator
elite*gold: 501
Join Date: Dec 2012
Posts: 4,965
Received Thanks: 1,512
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?
09/30/2015, 20:31
#5178
elite*gold: 0
Join Date: Oct 2013
Posts: 474
Received Thanks: 41
how to create 9.1 launcher ?
10/01/2015, 17:44
#5179
elite*gold: 0
Join Date: Sep 2008
Posts: 120
Received Thanks: 99
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 .
10/02/2015, 07:25
#5180
elite*gold: 0
Join Date: Oct 2013
Posts: 474
Received Thanks: 41
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 ?fillItemBaseInfo@@YAXPEAUTS_ITEM_BASE_INFO@@PEAUS tructItem@@@Z+41
000000013F32586A 0000000002D470E0 ?SendItemList@@YAXPEAUStructPlayer@@_N@Z+16A
000000013F308F60 0000000002D47140 ?onArrangeItem@@YAXPEAUStructPlayer@@PEAUTS_CS_ARR ANGE_ITEM@@@Z+E0
000000013F31A880 0000000002D4F330 ?onReadEvent@@YAXHPEAUIStreamSocketConnection@@@Z+ EE0
000000013F545247 0000000002D4F360 ?onConnectionEvent@XIOCP@@CA_NPEAUIOCPTAG@@HPEAUXO VERLAPPED@@H@Z+87
000000013F545D7B 0000000002D4F8B0 ?IOCPWorkerThread@XIOCP@@CAIPEAX@Z+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.
================================================== ============================
10/04/2015, 11:11
#5181
elite*gold: 0
Join Date: Aug 2014
Posts: 83
Received Thanks: 17
what are the usage of these commands
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' )
qouted from prev post
10/04/2015, 12:48
#5182
elite*gold: 0
Join Date: Oct 2014
Posts: 20
Received Thanks: 24
Quote:
Originally Posted by
colonelx
what are the usage of these commands
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' )
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
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.
10/04/2015, 16:16
#5183
Moderator
elite*gold: 501
Join Date: Dec 2012
Posts: 4,965
Received Thanks: 1,512
Quote:
Originally Posted by
NTOverload
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.
10/04/2015, 18:35
#5184
elite*gold: 0
Join Date: Oct 2010
Posts: 218
Received Thanks: 8
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
10/04/2015, 21:30
#5185
Moderator
elite*gold: 501
Join Date: Dec 2012
Posts: 4,965
Received Thanks: 1,512
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", "#@job_name@#",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", "#@job_name@#",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", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 데바 일 때 (1004)
elseif npc_id == 1004 then
dlg_text_without_quest_menu(sconv("@90100406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 아수라 일 때 (2004)
elseif npc_id == 2004 then
dlg_text_without_quest_menu(sconv("@90200406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 론도 일 때 (6004)
elseif npc_id == 6004 then
dlg_text_without_quest_menu(sconv("@90600406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 도시 유적 일 때 (7032)
elseif npc_id == 7032 then
dlg_text_without_quest_menu(sconv("@90703206", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 시크루트 일 때 (7004)
elseif npc_id == 7004 then
dlg_text_without_quest_menu(sconv("@90700406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 마스터 사탄소녀
elseif npc_id == 11555 then
dlg_text_without_quest_menu(sconv("@91002425", "#@job_name@#",job_name))
local master_up = sconv("@246", "#@user_name@#", get_value("name"),"#@job_name@#",job_name)
announce( master_up )
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<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", "#@job_name@#",job_name) )
--끝 #@job_name@# (/으)로 전직했습니다
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", "#@job_name@#",job_name))
--##끝 #@job_name@# (/으)로의 전직이라...<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", "#@job_name@#", job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<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", "#@job_name@#",job_name) )
--##끝 #@job_name@# (/으)로 전직했습니다.
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
-------------------------------------------------------------------------------------------------------------------------
10/05/2015, 07:08
#5186
elite*gold: 0
Join Date: Oct 2010
Posts: 218
Received Thanks: 8
Quote:
Originally Posted by
thndr
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", "#@job_name@#",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", "#@job_name@#",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", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 데바 일 때 (1004)
elseif npc_id == 1004 then
dlg_text_without_quest_menu(sconv("@90100406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 아수라 일 때 (2004)
elseif npc_id == 2004 then
dlg_text_without_quest_menu(sconv("@90200406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 론도 일 때 (6004)
elseif npc_id == 6004 then
dlg_text_without_quest_menu(sconv("@90600406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 도시 유적 일 때 (7032)
elseif npc_id == 7032 then
dlg_text_without_quest_menu(sconv("@90703206", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 시크루트 일 때 (7004)
elseif npc_id == 7004 then
dlg_text_without_quest_menu(sconv("@90700406", "#@job_name@#",job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<BR>보다 높은 곳을 향해 정진하도록 하게.'
-- 마스터 사탄소녀
elseif npc_id == 11555 then
dlg_text_without_quest_menu(sconv("@91002425", "#@job_name@#",job_name))
local master_up = sconv("@246", "#@user_name@#", get_value("name"),"#@job_name@#",job_name)
announce( master_up )
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<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", "#@job_name@#",job_name) )
--끝 #@job_name@# (/으)로 전직했습니다
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", "#@job_name@#",job_name))
--##끝 #@job_name@# (/으)로의 전직이라...<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", "#@job_name@#", job_name))
--##끝 축하하네!!<BR>지금 이순간부터 자넨 #@job_name@#(/이)라는 직업을 가지게 되었어.<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", "#@job_name@#",job_name) )
--##끝 #@job_name@# (/으)로 전직했습니다.
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
-------------------------------------------------------------------------------------------------------------------------
I need that like on the official server. so the master class was for quests
10/05/2015, 15:19
#5187
Moderator
elite*gold: 501
Join Date: Dec 2012
Posts: 4,965
Received Thanks: 1,512
That's what I posted.
10/10/2015, 10:54
#5188
elite*gold: 0
Join Date: Oct 2013
Posts: 474
Received Thanks: 41
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 !
10/17/2015, 23:41
#5189
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
10/17/2015, 23:55
#5190
elite*gold: 0
Join Date: Jul 2015
Posts: 479
Received Thanks: 639
Quote:
Originally Posted by
ghostfcc
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
I have tried this before as-well with a similar result. It is my belief that this feature for NPC was not implemented completely (like lightning in the weather effects) just bad cleanup on the developers part.
Similar Threads
[Helping Topic] 24/7 Helping Services!
08/27/2008 - EO PServer Hosting - 31 Replies
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 :cool:
first of all try reading Ahmedpotop's Pserver All thing guide.
if your couldn't solve it out post your problem down here
""That includes PHP rankings pages / registrations pages / Status pages""
All times are GMT +2. The time now is 18:49 .