server/gamefiles/locale/english/quest/olympic_badge.quest

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