forked from metin2/server
146 lines
3.6 KiB
Plaintext
146 lines
3.6 KiB
Plaintext
--------------------------------------------------
|
|
-- 2012 olympic event
|
|
----------------------------------------------------
|
|
|
|
quest olympic_badge begin
|
|
state start begin
|
|
function has_it()
|
|
local a = pc.count_item(30265)
|
|
local b = pc.count_item(30266)
|
|
local c = pc.count_item(30267)
|
|
local d = pc.count_item(30268)
|
|
local e = pc.count_item(30269)
|
|
|
|
local perfect = a > 0 and b > 0 and c > 0 and d > 0 and e > 0
|
|
local notyet = a >0 or b > 0 or c > 0 or d > 0 or e > 0
|
|
if perfect then
|
|
return 1
|
|
elseif notyet then
|
|
return 0
|
|
end
|
|
end
|
|
when login with game.get_event_flag("medal_part_drop") >= 1 begin
|
|
set_state(information)
|
|
end
|
|
end
|
|
|
|
state information begin
|
|
when letter with pc.level>=30 begin
|
|
local v = find_npc_by_vnum(20017)
|
|
if 0 != v then
|
|
target.vid("__TARGET__", v, "")
|
|
end
|
|
send_letter(gameforge.olympic_badge._060_npcChat)
|
|
end
|
|
|
|
when info or button with pc.level>=30 begin
|
|
say("")
|
|
say(gameforge.olympic_badge._190_say)
|
|
say("")
|
|
end
|
|
when __TARGET__.target.click or 20017.chat.gameforge.olympic_badge._010_npcChat with game.get_event_flag("medal_part_drop") >= 1 and pc.level>=30 begin
|
|
target.delete("__TARGET__")
|
|
|
|
say("")
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._020_say)
|
|
say(gameforge.olympic_badge._030_say)
|
|
wait()
|
|
say("")
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._040_say)
|
|
say(gameforge.olympic_badge._050_say)
|
|
local s = select(locale.yes, locale.no)
|
|
if 2 == s then
|
|
say(gameforge.olympic_badge._140_say)
|
|
local a = select(locale.yes, locale.no)
|
|
if 2 == a then
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._150_say)
|
|
say("")
|
|
return
|
|
end
|
|
say("")
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._160_say)
|
|
set_state(__GIVEUP__)
|
|
return
|
|
end
|
|
|
|
say("")
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._170_say)
|
|
set_state(step1)
|
|
end
|
|
end
|
|
|
|
state step1 begin
|
|
when letter with pc.level>=30 begin
|
|
send_letter(gameforge.olympic_badge._060_npcChat)
|
|
end
|
|
|
|
when info or button with pc.level>=30 begin
|
|
say("")
|
|
say(gameforge.olympic_badge._180_say)
|
|
say("")
|
|
end
|
|
|
|
when login or enter with game.get_event_flag("medal_part_drop") == 0 begin
|
|
test = pc.getqf("medal_done")
|
|
if test != 0 then
|
|
pc.setqf("medal_done", 0)
|
|
end
|
|
end
|
|
|
|
when 20017.chat.gameforge.olympic_badge._060_npcChat with game.get_event_flag("medal_part_drop") >= 1 and pc.level>=30 begin
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._070_say)
|
|
wait()
|
|
if count_item_range(30265,30269)== 0 then
|
|
say(gameforge.olympic_badge._100_say)
|
|
return
|
|
elseif olympic_badge.has_it() ==0 then
|
|
say(gameforge.olympic_badge._110_say)
|
|
return
|
|
else
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._120_say)
|
|
wait()
|
|
pc.remove_item(30265)
|
|
pc.remove_item(30266)
|
|
pc.remove_item(30267)
|
|
pc.remove_item(30268)
|
|
pc.remove_item(30269)
|
|
if pc.getqf ("medal_done") == 0 then
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._130_say)
|
|
-- show items
|
|
say_item_vnum(71158)
|
|
--say_item_vnum(71159)
|
|
|
|
pc.give_item2(71158)
|
|
if 0== pc.get_sex() then
|
|
pc.give_item2(71159)
|
|
say_item_vnum(71159)
|
|
else
|
|
pc.give_item2(71160)
|
|
say_item_vnum(71160)
|
|
end
|
|
pc.setqf("medal_done", 1)
|
|
return
|
|
end --if
|
|
|
|
say_title(mob_name(20017))
|
|
say(gameforge.olympic_badge._130_say)
|
|
say_item_vnum(50249)
|
|
pc.give_item2(50249)
|
|
end --if
|
|
|
|
end --when
|
|
|
|
end --state
|
|
|
|
state __GIVEUP__ begin
|
|
end
|
|
end --quest
|