forked from metin2/server
152 lines
4.0 KiB
Plaintext
152 lines
4.0 KiB
Plaintext
|
quest dragon_soul begin
|
||
|
state start begin
|
||
|
when levelup or letter with pc.level >= 30 begin
|
||
|
send_letter(gameforge.dragon_soul._1010_sendLetter)
|
||
|
local v = find_npc_by_vnum(20001)
|
||
|
|
||
|
if 0 != v then
|
||
|
target.vid("__TARGET__", v, mob_name(20001))
|
||
|
end
|
||
|
end
|
||
|
when info or button begin
|
||
|
say(gameforge.dragon_soul._1020_say)
|
||
|
end
|
||
|
|
||
|
when 20001.chat.gameforge.dragon_soul._1030_npcChat with pc.level >= 30 begin
|
||
|
target.delete("__TARGET__")
|
||
|
|
||
|
say_title(mob_name(20001))
|
||
|
say(gameforge.dragon_soul._1040_say)
|
||
|
set_state(state_learning)
|
||
|
end
|
||
|
end
|
||
|
state state_learning begin
|
||
|
when letter begin
|
||
|
send_letter(gameforge.dragon_soul._1050_sendLetter)
|
||
|
end
|
||
|
when info or button begin
|
||
|
say(gameforge.dragon_soul._1060_say)
|
||
|
end
|
||
|
when kill begin
|
||
|
if npc.is_pc() then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if pc.count_item(30270) < 10 then
|
||
|
if drop_gamble_with_flag("ds_drop") then
|
||
|
game.drop_item_with_ownership(30270, 1, 300)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
when 20001.chat.gameforge.dragon_soul._1050_sendLetter begin
|
||
|
say_title(mob_name(20001))
|
||
|
if pc.count_item(30270) >= 10 then
|
||
|
say(gameforge.dragon_soul._1070_say)
|
||
|
pc.remove_item(30270, 10)
|
||
|
ds.give_qualification()
|
||
|
char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS')
|
||
|
pc.give_item2(50255)
|
||
|
local today = math.floor(get_global_time() / 86400)
|
||
|
pc.setf("dragon_soul", "eye_timestamp", today)
|
||
|
pc.setf("dragon_soul", "eye_left", 9)
|
||
|
set_state(state_farming)
|
||
|
else
|
||
|
say(gameforge.dragon_soul._1080_say)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
state state_farming begin
|
||
|
when letter begin
|
||
|
send_letter(gameforge.dragon_soul._1090_sendLetter)
|
||
|
end
|
||
|
when info or button begin
|
||
|
say(string.format(gameforge.dragon_soul._1100_say, pc.getf("dragon_soul", "eye_left")))
|
||
|
end
|
||
|
when kill begin
|
||
|
if npc.is_pc() then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if drop_gamble_with_flag("ds_drop") then
|
||
|
local eye_left = pc.getf("dragon_soul", "eye_left")
|
||
|
local haved_gemstone_number = pc.count_item(30270)
|
||
|
|
||
|
if eye_left > haved_gemstone_number / 10 then
|
||
|
game.drop_item_with_ownership(30270, 1, 300)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
when 30270.pick begin
|
||
|
local eye_left = pc.getf("dragon_soul", "eye_left")
|
||
|
if eye_left <= 0 then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if pc.count_item(30270) >= 10 then
|
||
|
pc.setf("dragon_soul", "eye_left", eye_left - 1)
|
||
|
pc.remove_item(30270, 10)
|
||
|
pc.give_item2(50255)
|
||
|
if 1 == eye_left then
|
||
|
notice_multiline(gameforge.dragon_soul._1110_notice, notice)
|
||
|
set_state(state_closed_season)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
when 20001.chat.gameforge.dragon_soul._1120_npcChat begin
|
||
|
say_title(mob_name(20001))
|
||
|
local today = math.floor(get_global_time() / 86400)
|
||
|
if today == pc.getf("dragon_soul", "eye_timestamp") then
|
||
|
say(gameforge.dragon_soul._1130_say)
|
||
|
else
|
||
|
say(gameforge.dragon_soul._1140_say)
|
||
|
pc.setf("dragon_soul", "eye_timestamp", today)
|
||
|
pc.setf("dragon_soul", "eye_left", 10)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
state state_closed_season begin
|
||
|
when letter begin
|
||
|
send_letter(gameforge.dragon_soul._1150_sendLetter)
|
||
|
end
|
||
|
when info or button begin
|
||
|
say(gameforge.dragon_soul._1160_say)
|
||
|
local today = math.floor(get_global_time() / 86400)
|
||
|
if today == pc.getf("dragon_soul", "eye_timestamp") then
|
||
|
say(gameforge.dragon_soul._1170_say)
|
||
|
else
|
||
|
say(gameforge.dragon_soul._1180_say)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
when 20001.chat.gameforge.dragon_soul._1090_sendLetter begin
|
||
|
say_title(mob_name(20001))
|
||
|
local today = math.floor(get_global_time() / 86400)
|
||
|
if today == pc.getf("dragon_soul", "eye_timestamp") then
|
||
|
say(gameforge.dragon_soul._1130_say)
|
||
|
else
|
||
|
say(gameforge.dragon_soul._1140_say)
|
||
|
pc.setf("dragon_soul", "eye_timestamp", today)
|
||
|
pc.setf("dragon_soul", "eye_left", 10)
|
||
|
set_state(state_farming)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
-- deprecated states. so, jump to new state.
|
||
|
state state_1 begin
|
||
|
when login begin
|
||
|
set_state(state_learning)
|
||
|
end
|
||
|
end
|
||
|
state state_2 begin
|
||
|
when login begin
|
||
|
set_state(state_learning)
|
||
|
end
|
||
|
end
|
||
|
state state_3 begin
|
||
|
when login begin
|
||
|
set_state(state_closed_season)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|