1
0
Fork 0
server/gamefiles/locale/english/quest/main_quest_flame_lv104.quest

752 lines
21 KiB
Plaintext

--2013.02.12 김용욱
--퀘스트 진행 npc
define YACKHWAN 20377 -- 약령도장 약환
define SCHOLAR 20380 -- 학자
define ALCHEMIST 20001 -- 연금술사
define BLACKSMITH 20016 -- 대장장이
define YUHWAN 20017 -- 유환
define MOB1_1 6091 -- 염왕 야마천
define ITEM2_1 31082 -- 뜨거운 핵
define DUNGEON_MAP_INDEX 351
quest main_quest_flame_lv104 begin
state start begin
end
state state0 begin
when login or levelup or enter with pc.level >= 104 begin
set_state (state1_1)
end
end
-- 야마천 토벌 1-2
state state1_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv104._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_lv104._010_sendLetter)
say(gameforge.main_quest_flame_lv104._020_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv104._010_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._030_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._040_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._050_say)
--다음 스테이트로
set_state (state1_2)
end
when leave begin
--q.done()
end
end
state state1_2 begin
when enter begin
--몬스터 처치 수 설정
pc.setqf("kill_count_1", 0)
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv104._060_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._010_sendLetter)
--남은 처치 수 안내문
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
-- 파티원에 의해 야마천을 잡았을 때, 퀘스트가 클리어 되도록 하는 코드.
if party.is_party() then
local map_index = pc.get_map_index()
-- 적룡성에 입장했다는 것을 기록함.
if map_index >= DUNGEON_MAP_INDEX * 10000 and map_index < (DUNGEON_MAP_INDEX + 1) *10000 then
pc.setqf("in_dungeon", 1)
else -- 적룡성으로 부터 나왔을때, 보스를 잡고 나왔으면 퀘스트를 클리어 해준다.
if pc.getqf("in_dungeon") == 1 then
if party.getf("flame_dungeon_boss_kill_count") == 1 then
set_state (state1_3)
end
pc.setqf("in_dungeon", 0)
end
end
end
main_quest_flame_lv104.kill_count()
end
when logout begin
if party.is_party() then
if party.getf("flame_dungeon_boss_kill_count") == 0 then
pc.setqf("in_dungeon", 0)
end
end
end
when button or info begin
say_title(gameforge.main_quest_flame_lv104._070_sayTitle)
say(gameforge.main_quest_flame_lv104._080_say)
--남은 처치 수 안내문
say(gameforge.main_quest_lv98._680_counterName)
say(string.format(gameforge.main_quest_lv98._670_sayReward,mob_name(MOB1_1), 1 - pc.getqf("kill_count_1")))
say_reward(gameforge.main_quest_flame_lv104._090_sayReward)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv104._010_sendLetter begin
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._100_say)
end
when 31078.use begin -- 정화액
affect.add(apply.MAX_HP, 1000, 60 * 60)
affect.add(apply.DEF_GRADE_BONUS, 25, 60 * 60)
affect.add(apply.MELEE_MAGIC_ATTBONUS_PER, 10, 60 * 60)
pc.remove_item(31078,1)
end
when MOB1_1.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
main_quest_flame_lv104.kill_count()
end
function kill_count()
local total_remain = 0
local remain1 = 1 - pc.getqf("kill_count_1")
if remain1 < 0 then
remain1 = 0
end
total_remain = total_remain + remain1
q.set_counter_value(total_remain)
if total_remain == 0 then
set_state ("state1_3")
end
end
when leave begin
pc.setqf("kill_count_1", 0)
pc.setqf("in_dungeon", 0)
--q.done()
end
end
state state1_3 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv104._120_notice,notice)
say_title(mob_name(MOB1_1))
say(gameforge.main_quest_flame_lv104._110_say)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._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_lv104._010_sendLetter)
say(gameforge.main_quest_flame_lv104._130_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv104._010_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._140_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._150_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._160_say)
--보상
wait()--reward
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 64491000))
pc.give_exp2(64491000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 168000))
pc.change_money(168000)
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(71026),1)) -- 현철
pc.give_item2(71026, 1)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71025),2)) -- 야공석
pc.give_item2(71025, 1)
pc.give_item2(71025, 1)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70102),5)) -- 선두
pc.give_item2(70102, 1)
pc.give_item2(70102, 1)
pc.give_item2(70102, 1)
pc.give_item2(70102, 1)
pc.give_item2(70102, 1)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50706),20)) -- 영지버섯
pc.give_item2(50706, 20)
say()
--다음 스테이트로
set_state (state2_1)
end
when leave begin
--q.done()
end
end
-- 음모의 저지1-1
state state2_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv104._170_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_lv104._170_sendLetter)
say(gameforge.main_quest_flame_lv104._020_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv104._170_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._180_say)
wait()--추가 대화
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._190_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._050_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_lv104._200_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._170_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_lv104._210_sayTitle)
say(gameforge.main_quest_flame_lv104._220_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when YACKHWAN.chat.gameforge.main_quest_flame_lv104._170_sendLetter begin
say_title(mob_name(YACKHWAN))
say(gameforge.main_quest_flame_lv104._230_say)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._170_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._240_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._250_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._260_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._270_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._050_say)
--다음 스테이트로
set_state (state2_3)
end
when leave begin
--q.done()
end
end
state state2_3 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv104._280_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
--아이템 지급 설정
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
main_quest_flame_lv104.item_count_state2_3()
end
when button or info begin
say_title(gameforge.main_quest_flame_lv104._280_notice)
say(gameforge.main_quest_flame_lv104._290_say)
--남은 아이템 안내문
say(gameforge.main_quest_lv97._670_counterName)
local item_count = pc.getqf("item_count_1")
local remain = 5 - item_count
if remain < 0 then
remain = 0
end
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(ITEM2_1), remain))
say_reward(gameforge.main_quest_flame_lv104._090_sayReward)
main_quest_flame_lv104.item_count_state2_3()
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._170_sendLetter with pc.count_item(ITEM2_1) > 0 begin
pc.remove_item(ITEM2_1, 1)
-- 납품 성공
if number(1, 100) <= 90 then
local item_count = pc.getqf("item_count_1")
item_count = item_count + 1
pc.setqf("item_count_1", item_count)
if item_count < 5 then -- 아직 부족함.
say_title(mob_name(SCHOLAR))
say(string.format(gameforge.main_quest_flame_lv104._300_say, 5 - item_count))
else -- 납품 갯수를 모두 채움.
pc.remove_item(ITEM2_1, pc.count_item(ITEM2_1))
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._310_say)
wait()
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 57583000))
pc.give_exp2(57583000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 170000))
pc.change_money( 170000)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72723),1)) -- 화룡의 축복(소)
pc.give_item2(72723, 1)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70050),1)) -- 선왕의 증표
pc.give_item2(70050, 1)
say()
--다음 스테이트로
set_state (state3_1)
end
else -- 납품 실패
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._320_say)
end
main_quest_flame_lv104.item_count_state2_3()
end
when 6005.kill begin
if number(1,50) == 1 then
pc.give_item2(ITEM2_1, 1)
main_quest_flame_lv104.item_count_state2_3()
end
end
when 6006.kill begin
if number(1,50) == 1 then
pc.give_item2(ITEM2_1, 1)
main_quest_flame_lv104.item_count_state2_3()
end
end
when 6007.kill begin
if number(1,50) == 1 then
pc.give_item2(ITEM2_1, 1)
main_quest_flame_lv104.item_count_state2_3()
end
end
when 6008.kill begin
if number(1,50) == 1 then
pc.give_item2(ITEM2_1, 1)
main_quest_flame_lv104.item_count_state2_3()
end
end
when 6009.kill begin
if number(1,50) == 1 then
pc.give_item2(ITEM2_1, 1)
main_quest_flame_lv104.item_count_state2_3()
end
end
function item_count_state2_3()
local item_count = pc.getqf("item_count_1")
local remain = 5 - item_count
if remain <= 0 then
remain = 0
end
q.set_counter_value(remain)
end
when leave begin
pc.setqf("item_count_1", 0)
--q.done()
end
end
-- 음모의 저지1-2
state state3_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv104._330_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_lv104._330_sendLetter)
say(gameforge.main_quest_flame_lv104._340_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._350_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._360_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._050_say)
--다음 스테이트로
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_lv104._370_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._330_sendLetter)
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
end
when button or info begin
say_title(gameforge.main_quest_flame_lv104._280_notice)
say(gameforge.main_quest_flame_lv104._380_say)
say(gameforge.main_quest_lv97._670_counterName)
local remain1 = 100 - pc.count_item(50814)
if remain1 < 0 then
remain1 = 0
end
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(50814) ,remain1))
say()
q.set_counter_value(remain1)
if remain1 == 0 then
set_state (state3_3)
end
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
--아이템 제거
if pc.count_item(50814) >= 100 then
pc.remove_item(50814, 100)
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._390_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._400_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._410_say)
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 46581000))
pc.give_exp2(46581000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 171000))
pc.change_money( 171000)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30045),2)) -- 전갈의 독침
pc.give_item2(30045, 2)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50817),10)) -- 진활심액
pc.give_item2(50817, 10)
say()
--다음 스테이트로
set_state (state4_1)
else
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._420_say)
end
end
when leave begin
--q.done()
end
end
state state3_3 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv104._430_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._330_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_lv104._280_notice)
say(gameforge.main_quest_flame_lv104._440_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
target.delete("__TARGET__")
--아이템 제거
if pc.count_item(50814) >= 100 then
pc.remove_item(50814, 100)
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._390_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._400_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._410_say)
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 46581000))
pc.give_exp2(46581000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 171000))
pc.change_money( 171000)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30045),2)) -- 전갈의 독침
pc.give_item2(30045, 2)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50817),10)) -- 진활심액
pc.give_item2(50817, 10)
say()
--다음 스테이트로
set_state (state4_1)
else
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._420_say)
set_state (state3_2)
end
end
when leave begin
--q.done()
end
end
-- 음모의 저지1-3
state state4_1 begin
when letter begin
send_letter(gameforge.main_quest_flame_lv104._450_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_lv104._450_sendLetter)
say(gameforge.main_quest_flame_lv104._340_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._450_sendLetter begin
target.delete("__TARGET__")
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._460_say)
wait()--추가 대화
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._470_say)
wait()--추가 대화
say_title(pc.getname())
say(gameforge.main_quest_flame_lv104._050_say)
--다음 스테이트로
set_state (state4_2)
end
when leave begin
--q.done()
end
end
state state4_2 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv104._480_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
--아이템 지급 설정
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
main_quest_flame_lv104.item_count_state4_2()
end
when button or info begin
say_title(gameforge.main_quest_flame_lv104._450_sendLetter)
say(gameforge.main_quest_flame_lv104._490_say)
--남은 아이템 안내문
say(gameforge.main_quest_lv97._670_counterName)
local remain = 5 - pc.count_item(31024)
if remain < 0 then
remain = 0
end
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(31024), remain))
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._450_sendLetter begin
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._500_say)
end
when 3291.kill begin
if number(1,1) == 1 then
pc.give_item2(31024, 1)
main_quest_flame_lv104.item_count_state4_2()
end
end
function item_count_state4_2()
if pc.count_item(31024) >= 5 then
set_state ("state4_3")
end
q.set_counter_value(5 - pc.count_item(31024))
end
when leave begin
--q.done()
end
end
state state4_3 begin
when enter begin
-- notice 설정
notice_multiline(gameforge.main_quest_flame_lv104._520_notice,notice)
end
when letter begin
send_letter(gameforge.main_quest_flame_lv104._450_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_lv104._450_sendLetter)
say(gameforge.main_quest_flame_lv104._440_say)
--npc 타겟 안내문
--say_reward(locale.target_npc_info)
end
when SCHOLAR.chat.gameforge.main_quest_flame_lv104._450_sendLetter begin
target.delete("__TARGET__")
if pc.count_item(31024) < 5 then
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._500_say)
set_state (state4_2)
else
pc.remove_item(31024, 5)
say_title(mob_name(SCHOLAR))
say(gameforge.main_quest_flame_lv104._510_say)
wait()
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 45580000))
pc.give_exp2( 45580000)
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 173000))
pc.change_money(173000)
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(30015),2)) -- 사귀의 유품
pc.give_item2(30015, 2)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1)) -- 도둑의 장갑
pc.give_item2_select(70043)
item.set_socket(2, 60)
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(31083),3)) -- 금제 주머니
pc.give_item2(31083, 3)
say()
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 105))
--다음 스테이트로
set_quest_state ("main_quest_flame_lv105", "state0")
set_state (__COMPLETE__)
end
end
when leave begin
--q.done()
end
end
state __COMPLETE__ begin
when enter begin
--q.done()
end
end
end