quest training_mount begin state start begin function check_list(material, pc_level, horse_level) if pc.count_item(material) <= 0 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._02_say) return 0 elseif pc.level < pc_level then say_title(""..mob_name(20349).."") say(gameforge.training_mount._01_say) return 0 elseif horse.get_level()< horse_level then say_title(""..mob_name(20349).."") say(string.format(gameforge.training_mount._33_say,horse_level)) return 0 else return 1 end end function extraTime(typ) local n = number (1,100) if typ == 1 then if n <= 50 then return 86400 elseif n <= 80 then return 86400*2 elseif n <=95 then return 86400*3 else return 86400*4 end elseif typ == 2 then if n <= 30 then return 0 elseif n <= 70 then return 86400 elseif n <=90 then return 86400*2 else return 86400*3 end end end when 20349.chat.gameforge.training_mount._04_say begin say_title(""..mob_name(20349).."") say(gameforge.training_mount._05_say) say("") wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._06_say) say("") wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._07_say) say("") set_state(main_point) end end state main_point begin when 20349.chat.gameforge.training_mount._08_say begin say_title(""..mob_name(20349).."") say(gameforge.training_mount._09_say) say("") wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._10_say) say("") wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._11_say) local s=select(gameforge.training_mount._12_say,gameforge.training_mount._13_say) if 2==s then return end if pc.count_item(50067) >0 or pc.count_item(50068)>0 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._14_say) else say_title(""..mob_name(20349).."") say(gameforge.training_mount._02_say) return end local s=select(gameforge.training_mount._15_say,gameforge.training_mount._15_2_say,gameforge.training_mount._16_say) if 1==s then if training_mount.check_list(50067,25,11) == 1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._17_say) end elseif 2==s then if training_mount.check_list(50068,45,20) == 1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._18_say) end elseif 3==s then say_title(""..mob_name(20349).."") say(gameforge.training_mount._19_say) say("") return end end --when when 20349.take with 52001 <= item.vnum and item.vnum <= 52005 or 52016 <= item.vnum and item.vnum <= 52020 or 52031 <= item.vnum and item.vnum <= 52035 or 52046 <= item.vnum and item.vnum <= 52050 or 52061 <= item.vnum and item.vnum <= 52065 or 52076 <= item.vnum and item.vnum <= 52080 or 52091 <= item.vnum and item.vnum <= 52095 begin if pc.is_riding() == true then say_title(""..mob_name(20349).."") say(gameforge.training_mount._32_say) return end if count_item_range(38100, 38102) >= 1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._34_say) local choice = select(gameforge.training_mount._35_select_1, gameforge.training_mount._35_select_2, locale.cancel) if choice == 3 then return elseif choice == 1 then local option_select = select(gameforge.training_mount._36_select_1, gameforge.training_mount._36_select_2, gameforge.training_mount._36_select_3, locale.cancel) local information = {} if option_select == 4 then return end if option_select == 1 then if pc.count_item(38100) >= 1 then information = {86400*7,38100} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 2 then if pc.count_item(38101) >= 1 then information = {86400*15,38101} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 3 then if pc.count_item(38102) >= 1 then information = {86400*30, 38102} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end end local remain_time =item.get_socket(0) item.set_socket(0,remain_time+information[1]) pc.remove_item(information[2],1) return end end if training_mount.check_list(50067,25,11) == 1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._20_say) wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._22_say) local remain_time =item.get_socket(0) local old_vnum =item.get_vnum() local new_vnum =item.get_vnum()+5 local extra = training_mount.extraTime(1) pc.give_item2_select(new_vnum,1) item.set_socket(0,remain_time+extra) pc.remove_item(old_vnum,1) pc.remove_item(50067,1) end end when 20349.take with 52006 <= item.vnum and item.vnum <= 52010 or 52021 <= item.vnum and item.vnum <= 52025 or 52036 <= item.vnum and item.vnum <= 52040 or 52051 <= item.vnum and item.vnum <= 52055 or 52081 <= item.vnum and item.vnum <= 52085 or 52066 <= item.vnum and item.vnum <= 52070 or 52096 <= item.vnum and item.vnum <= 52100 begin if pc.is_riding() == true then say_title(""..mob_name(20349).."") say(gameforge.training_mount._32_say) return end if count_item_range(38100, 38102) >= 1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._34_say) local choice = select (gameforge.training_mount._35_select_1, gameforge.training_mount._35_select_2, locale.cancel) if choice == 3 then return elseif choice == 1 then local option_select = select(gameforge.training_mount._36_select_1, gameforge.training_mount._36_select_2, gameforge.training_mount._36_select_3, locale.cancel) local information = {} if option_select == 4 then return end if option_select == 1 then if pc.count_item(38100) >= 1 then information = {86400*7,38100} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 2 then if pc.count_item(38101) >= 1 then information = {86400*15,38101} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 3 then if pc.count_item(38102) >= 1 then information = {86400*30, 38102} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end end local remain_time =item.get_socket(0) item.set_socket(0,remain_time+information[1]) pc.remove_item(information[2],1) return end end if training_mount.check_list(50068,45,20) == 1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._21_say) wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._22_say) local remain_time =item.get_socket(0) local old_vnum =item.get_vnum() local new_vnum =item.get_vnum()+5 local extra = training_mount.extraTime(1) pc.give_item2_select(new_vnum,1) item.set_socket(0,remain_time+extra) pc.remove_item (old_vnum,1) pc.remove_item (50068,1) end end when 20349.take with 52011 <= item.vnum and item.vnum <= 52015 or 52026 <= item.vnum and item.vnum <= 52031 or 52041 <= item.vnum and item.vnum <= 52045 or 52056 <= item.vnum and item.vnum <= 52061 or 52086 <= item.vnum and item.vnum <= 52091 or 52071 <= item.vnum and item.vnum <= 52075 or 52101 <= item.vnum and item.vnum <= 52105 begin if pc.is_riding() == true then say_title(""..mob_name(20349).."") say(gameforge.training_mount._32_say) return end say_title(""..mob_name(20349).."") say(gameforge.training_mount._38_say) local choice = select (gameforge.training_mount._35_select_1, locale.cancel) if choice == 2 then return elseif choice == 1 then local option_select = select(gameforge.training_mount._36_select_1, gameforge.training_mount._36_select_2, gameforge.training_mount._36_select_3, gameforge.training_mount._36_select_4, locale.cancel) local information = {} if option_select == 5 then return end if option_select == 1 then if pc.count_item(38100) >= 1 then information = {86400*7,38100} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 2 then if pc.count_item(38101) >= 1 then information = {86400*15,38101} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 3 then if pc.count_item(38102) >= 1 then information = {86400*30, 38102} else say_title(""..mob_name(20349).."") say(gameforge.training_mount._37_say) return end elseif option_select == 4 then local remain_time = item.get_socket(0) local run_time = remain_time-get_time() if (remain_time-get_time()) > 86400 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._39_say) if is_test_server() then item.set_socket(0, get_time() + 86460) end return end if pc.count_item(50068) >= 1 and pc.get_gold() >= 200000 then information = {training_mount.extraTime(2),50068} pc.changegold(-200000) else say_title(""..mob_name(20349).."") say(gameforge.training_mount._40_say) return end end local remain_time = item.get_socket(0) item.set_socket(0,remain_time+information[1]) pc.remove_item(information[2],1) return end end when 20349.chat.gameforge.training_mount._23_say begin say_title(""..mob_name(20349).."") say(gameforge.training_mount._24_say) wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._25_say) wait() say_title(""..mob_name(20349).."") say(gameforge.training_mount._26_say) local s=select(locale.yes,locale.no) if 2==s then return end say_title(""..mob_name(20349).."") say(gameforge.training_mount._27_say) wait() if pc.count_item(50068) >0 then if horse.get_level()>1 then say_title(""..mob_name(20349).."") say(gameforge.training_mount._28_say) wait() say(gameforge.training_mount._29_say) else say_title(""..mob_name(20349).."") say(gameforge.training_mount._30_say) return end else say_title(""..mob_name(20349).."") say(gameforge.training_mount._31_say) return end end end end