-------------------------------------------------- -- 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