forked from metin2/server
1
0
Fork 0
server/gamefiles/locale/english/quest/main_quest_flame_lv101.quest

537 lines
15 KiB
Plaintext

--2013.02.06 김용욱
--퀘스트 진행 npc
define YACKHWAN 20377 -- 약령도장 약환
define SCHOLAR 20380 -- 학자
define ALCHEMIST 20001 -- 연금술사
define BLACKSMITH 20016 -- 대장장이
define ITEM1_1 31074 -- 초마단의 명패
define ITEM1_2 31079 -- 약환 부하의 서신
define NPC1_1 20393 -- 약환 부하
define DUNGEON_MAP_INDEX 351
define ITEM2_1 31080 -- 화염왕의 피
quest main_quest_flame_lv101 begin
state start begin
end
state state0 begin
when login or levelup or enter with pc.level >= 101 begin
set_state (state1_1)
end
end
-- 동굴의 정체
state state1_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(YACKHWAN)
if 0 != v then
target.vid("__TARGET__", v, mob_name(YACKHWAN))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._010_sendLetter)
say(gameforge.main_quest_flame_lv101._020_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._030_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._040_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._050_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv101._070_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._080_say)
--다음 스테이트로
set_state (state1_2)
end
when leave begin
--q.done()
end
end
state state1_2 begin -- 단서 X, 부하 X
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._090_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
q.set_counter_value(2)
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
say(gameforge.main_quest_flame_lv101._110_say)
say(gameforge.main_quest_lv97._670_counterName)
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(ITEM1_1), 1))
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(ITEM1_2), 1))
say()
say_reward(gameforge.main_quest_flame_lv101._120_sayReward)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._130_say)
end
when NPC1_1.click begin
say(gameforge.main_quest_flame_lv101._140_say)
set_state (state1_3) -- 단서 X, 부하 O
end
when kill with pc.get_map_index() >= DUNGEON_MAP_INDEX * 10000 and pc.get_map_index() < (DUNGEON_MAP_INDEX + 1) *10000 begin
if number(1,100) == 1 then
pc.give_item2(ITEM1_1, 1)
set_state (state1_4) -- 단서 O, 부하 X
end
end
when leave begin
--q.done()
end
end
state state1_3 begin -- 단서 X, 부하 O
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._150_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
q.set_counter_value(1)
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
say(gameforge.main_quest_flame_lv101._110_say)
say(gameforge.main_quest_lv97._670_counterName)
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(ITEM1_1), 1))
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(ITEM1_2), 0))
say()
say_reward(gameforge.main_quest_flame_lv101._120_sayReward)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._160_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._180_say)
end
when kill with pc.get_map_index() >= DUNGEON_MAP_INDEX * 10000 and pc.get_map_index() < (DUNGEON_MAP_INDEX + 1) *10000 begin
if number(1,100) == 1 then
pc.give_item2(ITEM1_1, 1)
set_state ("state1_5") -- 단서 O, 부하 O
end
end
when leave begin
--q.done()
end
end
state state1_4 begin -- 단서 O, 부하 X
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._190_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
q.set_counter_value(1)
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
say(gameforge.main_quest_flame_lv101._110_say)
say(gameforge.main_quest_lv97._670_counterName)
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(ITEM1_1), 0))
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(ITEM1_2), 1))
say()
say_reward(gameforge.main_quest_flame_lv101._120_sayReward)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._200_say)
end
when NPC1_1.click begin
say(gameforge.main_quest_flame_lv101._140_say)
set_state (state1_5)
end
when leave begin
--q.done()
end
end
state state1_5 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._210_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(YACKHWAN)
if 0 != v then
target.vid("__TARGET__", v, mob_name(YACKHWAN))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._010_sendLetter)
say(gameforge.main_quest_flame_lv101._220_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
target.delete("__TARGET__")
--아이템 제거
pc.remove_item(ITEM1_1, pc.count_item(ITEM1_1))
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._230_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv101._250_say)
wait()--추가 대화
say_title(gameforge.main_quest_flame_lv101._260_sayTitle)
say(gameforge.main_quest_flame_lv101._270_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._280_say)
--보상
wait()--reward
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 37003000))
pc.give_exp2(37003000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 153000))
pc.change_money(153000)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30047),2))
pc.give_item2(30047, 2)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(27992),2)) -- 백진주
pc.give_item2(27992, 1)
pc.give_item2(27992, 1)
say()
--다음 스테이트로
set_state (state2_1)
end
when leave begin
--q.done()
end
end
-- 초마단의 명패 해독
state state2_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(SCHOLAR)
if 0 != v then
target.vid("__TARGET__", v, mob_name(SCHOLAR))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._290_sendLetter)
say(gameforge.main_quest_flame_lv101._300_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._310_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._330_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv101._340_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._350_say)
--다음 스테이트로
set_state (state2_2)
end
when leave begin
--q.done()
end
end
state state2_2 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._360_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
--아이템 지급 설정
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
main_quest_flame_lv101.item_count()
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
say(gameforge.main_quest_flame_lv101._520_say)
--남은 아이템 안내문
say(gameforge.main_quest_lv97._670_counterName)
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(ITEM2_1), 1 - pc.count_item(ITEM2_1)))
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._370_say)
end
when 2206.kill begin
if number(1,100) == 1 then
pc.give_item2(ITEM2_1, 1)
main_quest_flame_lv101.item_count()
end
end
function item_count()
if pc.count_item(ITEM2_1) >= 1 then
set_state ("state2_3")
end
q.set_counter_value(1 - pc.count_item(ITEM2_1))
end
when leave begin
--q.done()
end
end
state state2_3 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._380_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(SCHOLAR)
if 0 != v then
target.vid("__TARGET__", v, mob_name(SCHOLAR))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._290_sendLetter)
say(gameforge.main_quest_flame_lv101._390_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
target.delete("__TARGET__")
--아이템 제거
pc.remove_item(ITEM2_1, pc.count_item(ITEM2_1))
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._400_say)
--다음 스테이트로
wait()--reward
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
pc.give_exp2( 48584000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 154000))
pc.change_money(154000)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72024),1)) -- 행운의 금화
pc.give_item2_select(72024)
item.set_socket(2, 180)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71094),1)) -- 선인의 교훈
pc.give_item2(71094, 1)
say()
set_state (state2_4)
end
when leave begin
--q.done()
end
end
state state2_4 begin
when enter begin
--시간제한 설정
pc.setqf("limit_time", get_time() + 60*60*24)
end
when login begin
--시간제한 설정
local remain_time = pc.getqf("limit_time") - get_time()
timer("time_over", remain_time)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(SCHOLAR)
if 0 != v then
target.vid("__TARGET__", v, mob_name(SCHOLAR))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._290_sendLetter)
say(gameforge.main_quest_flame_lv101._390_say)
--npc 타겟 안내문
local remain_time = pc.getqf("limit_time") - get_time()
local left_hour = math.mod(remain_time / (60 * 60), 24);
local left_minute = math.mod(remain_time / 60, 60);
say(string.format(gameforge.main_quest_flame_lv101._410_say, left_hour, left_minute))
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._420_say)
end
when time_over.timer begin
set_state ("state3_1")
end
when leave begin
pc.setqf("limit_time", 0);
--q.done()
end
end
-- 명패의 진실
state state3_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv101._430_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(SCHOLAR)
if 0 != v then
target.vid("__TARGET__", v, mob_name(SCHOLAR))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._430_sendLetter)
say(gameforge.main_quest_flame_lv101._300_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv101._430_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._440_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv101._450_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv101._340_say)
wait()--추가 대화
set_state (state3_2)
end
when leave begin
--q.done()
end
end
state state3_2 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv101._470_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv101._430_sendLetter)
--npc 타겟
local v = find_npc_by_vnum(YACKHWAN)
if 0 != v then
target.vid("__TARGET__", v, mob_name(YACKHWAN))
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv101._480_sayTitle)
say(gameforge.main_quest_flame_lv101._490_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv101._430_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._500_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv101._510_say)
wait()--추가 대화
say_title(gameforge.main_quest_lv27._120_sayTitle)
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
pc.give_exp2( 48584000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 156000))
pc.change_money( 156000)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1)) -- 통행증명서
pc.give_item2(71095, 1)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72016),1)) -- 제3의 손
pc.give_item2_select(72016)
item.set_socket(2, 60)
say()
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 102))
--다음 스테이트로
set_state (__COMPLETE__)
set_quest_state ("main_quest_flame_lv102", "state0")
end
when leave begin
--q.done()
end
end
state __COMPLETE__ begin
when enter begin
--q.done()
end
end
end