Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest questscroll5 begin
- state start begin
- when 50317.use begin
- local s=0
- local t=select("Aa", "Ab", "Ba", "Bb", "Bc", "Ca", "Cb", "Cc", "Cd", "Da", "Db")
- if 1==t then
- s=select(
- questscroll5.get_menu(1),
- questscroll5.get_menu(2),
- questscroll5.get_menu(3),
- questscroll5.get_menu(4),
- questscroll5.get_menu(5),
- questscroll5.get_menu(6)
- )+1-1
- elseif 2==t then
- s=select(
- questscroll5.get_menu(7),
- questscroll5.get_menu(8),
- questscroll5.get_menu(9),
- questscroll5.get_menu(10),
- questscroll5.get_menu(11)
- )+7-1
- elseif 3==t then
- s=select(
- questscroll5.get_menu(12),
- questscroll5.get_menu(13),
- questscroll5.get_menu(14),
- questscroll5.get_menu(15)
- )+12-1
- elseif 4==t then
- s=select(
- questscroll5.get_menu(16),
- questscroll5.get_menu(17),
- questscroll5.get_menu(18),
- questscroll5.get_menu(19),
- questscroll5.get_menu(20),
- questscroll5.get_menu(21)
- )+16-1
- elseif 5==t then
- s=select(
- questscroll5.get_menu(22),
- questscroll5.get_menu(23),
- questscroll5.get_menu(24),
- questscroll5.get_menu(25)
- )+22-1
- elseif 6==t then
- s=select(
- questscroll5.get_menu(26),
- questscroll5.get_menu(27),
- questscroll5.get_menu(28),
- questscroll5.get_menu(29),
- questscroll5.get_menu(30),
- questscroll5.get_menu(31)
- )+26-1
- elseif 7==t then
- s=select(
- questscroll5.get_menu(32),
- questscroll5.get_menu(33),
- questscroll5.get_menu(34),
- questscroll5.get_menu(35)
- )+32-1
- elseif 8==t then
- s=select(
- questscroll5.get_menu(36),
- questscroll5.get_menu(37),
- questscroll5.get_menu(38),
- questscroll5.get_menu(39),
- questscroll5.get_menu(40),
- questscroll5.get_menu(41)
- )+36-1
- elseif 9==t then
- s=select(
- questscroll5.get_menu(42),
- questscroll5.get_menu(43),
- questscroll5.get_menu(44),
- questscroll5.get_menu(45),
- questscroll5.get_menu(46),
- questscroll5.get_menu(47),
- questscroll5.get_menu(48),
- questscroll5.get_menu(49)
- )+42-1
- elseif 10==t then
- s=select(
- questscroll5.get_menu(50),
- questscroll5.get_menu(51),
- questscroll5.get_menu(52),
- questscroll5.get_menu(53)
- )+50-1
- elseif 11==t then
- s=select(
- questscroll5.get_menu(54),
- questscroll5.get_menu(55),
- questscroll5.get_menu(56)
- )+54-1
- end
- questscroll5.set_mission(s)
- item.remove()
- end
- when 50318.use begin
- local s=0
- if is_test_server() then
- test_chat(gameforge.questscroll5._30_chat)
- s=select(
- questscroll5.get_menu(1),
- questscroll5.get_menu(2),
- questscroll5.get_menu(3),
- questscroll5.get_menu(4),
- questscroll5.get_menu(5),
- questscroll5.get_menu(6),
- questscroll5.get_menu(7),
- questscroll5.get_menu(8),
- questscroll5.get_menu(9),
- questscroll5.get_menu(10),
- questscroll5.get_menu(11)
- )+1-1
- else
- s=number(1, 11)
- end
- questscroll5.set_mission(s)
- item.remove()
- end
- when 50319.use begin
- local s=0
- if is_test_server() then
- test_chat(gameforge.questscroll5._40_chat)
- s=select(
- questscroll5.get_menu(12),
- questscroll5.get_menu(13),
- questscroll5.get_menu(14),
- questscroll5.get_menu(15),
- questscroll5.get_menu(16),
- questscroll5.get_menu(17),
- questscroll5.get_menu(18),
- questscroll5.get_menu(19),
- questscroll5.get_menu(20),
- questscroll5.get_menu(21),
- questscroll5.get_menu(22),
- questscroll5.get_menu(23),
- questscroll5.get_menu(24),
- questscroll5.get_menu(25)
- )+12-1
- else
- s=number(12, 25)
- end
- questscroll5.set_mission(s)
- item.remove()
- end
- when 50320.use begin
- local s=0
- if is_test_server() then
- test_chat(gameforge.questscroll5._50_chat)
- s=select(
- questscroll5.get_menu(26),
- questscroll5.get_menu(27),
- questscroll5.get_menu(28),
- questscroll5.get_menu(29),
- questscroll5.get_menu(30),
- questscroll5.get_menu(31),
- questscroll5.get_menu(32),
- questscroll5.get_menu(33),
- questscroll5.get_menu(34),
- questscroll5.get_menu(35),
- questscroll5.get_menu(36),
- questscroll5.get_menu(37),
- questscroll5.get_menu(38),
- questscroll5.get_menu(39),
- questscroll5.get_menu(40),
- questscroll5.get_menu(41),
- questscroll5.get_menu(42),
- questscroll5.get_menu(43),
- questscroll5.get_menu(44),
- questscroll5.get_menu(45),
- questscroll5.get_menu(46),
- questscroll5.get_menu(47),
- questscroll5.get_menu(48),
- questscroll5.get_menu(49)
- )+26-1
- else
- s=number(26, 49)
- end
- questscroll5.set_mission(s)
- item.remove()
- end
- when 50321.use begin
- local s=0
- if is_test_server() then
- test_chat(gameforge.questscroll5._60_chat)
- s=select(
- questscroll5.get_menu(50),
- questscroll5.get_menu(51),
- questscroll5.get_menu(52),
- questscroll5.get_menu(53),
- questscroll5.get_menu(54),
- questscroll5.get_menu(55),
- questscroll5.get_menu(56)
- )+50-1
- else
- s=number(50, 56)
- end
- questscroll5.set_mission(s)
- item.remove()
- end
- function get_menu(mission_index)
- return locale.questscroll5.mission[mission_index][3]
- end
- function set_mission(mission_index)
- pc.setqf("mission_index", mission_index)
- local mission_type=questscroll5.get_mission_type()
- if mission_type==QUEST_SCROLL_TYPE_KILL_MOB then
- test_chat(gameforge.questscroll5._70_chat)
- set_state("kill1")
- elseif mission_type==QUEST_SCROLL_TYPE_KILL_MOB2 then
- test_chat(gameforge.questscroll5._80_chat)
- set_state("kill2")
- end
- end
- function get_mission_type()
- return questscroll5.get_mission()[1]
- end
- function notify_already_running()
- say_title(gameforge.questscroll5._90_sayTitle)
- say(gameforge.questscroll5._100_say)
- end
- function show_mission_menu()
- local s= select(gameforge.locale.levelup.prev_quest_go, gameforge.locale.cancel)
- if s==2 then
- say_title(string.format(gameforge.questscroll5._110_sayTitle, questscroll5.get_title()))
- say(gameforge.questscroll5._120_say)
- local a= select(gameforge.questscroll5._130_select, gameforge.locale.guild.no)
- if a==1 then
- say(string.format(gameforge.questscroll5._140_say, questscroll5.get_title()))
- restart_quest()
- end
- end
- end
- end
- state kill1 begin
- when questscroll1.use or
- 50317.use or
- 50318.use or
- 50319.use or
- 50320.use or
- 50321.use or
- 50322.use or
- 50323.use or
- 50324.use or
- 50325.use begin
- questscroll5.notify_already_running()
- end
- when letter begin
- send_letter(questscroll5.get_title())
- end
- when button or info begin
- say_title(questscroll5.get_title())
- say(questscroll5.get_desc())
- say_reward(questscroll5.get_summ())
- say_reward(string.format(gameforge.questscroll5._150_sayReward, questscroll5.get_mob1_name(), questscroll5.get_mob1_rest_kill_count() ))
- questscroll5.show_mission_menu()
- end
- when enter begin
- pc.setqf("mob1_kill_count", 0)
- end
- when leave begin
- pc.setqf("mob1_kill_count", 0)
- end
- when letter begin
- q.set_counter(questscroll5.get_mob1_name(), questscroll5.get_mob1_rest_kill_count())
- end
- when kill begin
- test_chat(string.format(gameforge.questscroll5._160_chat, npc.get_race().." [ENTER]questscroll5.dest_race:"..questscroll5.get_mob1_vnum()))
- if npc.get_race()==questscroll5.get_mob1_vnum() then
- local mob1_kill_count=questscroll5.get_mob1_cur_kill_count()+1
- questscroll5.set_mob1_cur_kill_count(mob1_kill_count)
- q.set_counter(questscroll5.get_mob1_name(), questscroll5.get_mob1_rest_kill_count())
- if mob1_kill_count>=questscroll5.get_mob1_max_kill_count() then
- set_state(reward)
- end
- end
- end
- end
- state kill2 begin
- when questscroll1.use or
- 50317.use or
- 50318.use or
- 50319.use or
- 50320.use or
- 50321.use or
- 50322.use or
- 50323.use or
- 50324.use or
- 50325.use begin
- questscroll5.notify_already_running()
- end
- when letter begin
- send_letter(questscroll5.get_title())
- end
- when button or info begin
- say_title(questscroll5.get_title())
- say(questscroll5.get_desc())
- say_reward(questscroll5.get_summ())
- say_reward(string.format(gameforge.questscroll5._170_sayReward, questscroll5.get_mob1_name(), questscroll5.get_mob1_rest_kill_count(), questscroll5.get_mob2_name(), questscroll5.get_mob2_rest_kill_count() ))
- questscroll5.show_mission_menu()
- end
- when enter begin
- pc.setqf("mob1_kill_count", 0)
- pc.setqf("mob2_kill_count", 0)
- end
- when leave begin
- pc.setqf("mob1_kill_count", 0)
- pc.setqf("mob2_kill_count", 0)
- end
- when letter begin
- q.set_counter(questscroll5.get_mob1_name(), questscroll5.get_mob1_rest_kill_count())
- end
- when kill begin
- local npc_race=npc.get_race()
- local mob1_kill_count=questscroll5.get_mob1_cur_kill_count()
- local mob2_kill_count=questscroll5.get_mob2_cur_kill_count()
- test_chat(string.format(gameforge.questscroll5._180_chat, npc_race.." [ENTER]questscroll5.dest_race1: ["..questscroll5.get_mob1_vnum().."] [ENTER]questscroll5.dest_race2: ["..questscroll5.get_mob2_vnum()))
- if npc_race==questscroll5.get_mob1_vnum() then
- mob1_kill_count=mob1_kill_count+1
- questscroll5.set_mob1_cur_kill_count(mob1_kill_count)
- q.set_counter(questscroll5.get_mob1_name(), questscroll5.get_mob1_rest_kill_count())
- elseif npc_race==questscroll5.get_mob2_vnum() then
- mob2_kill_count=mob2_kill_count+1
- questscroll5.set_mob2_cur_kill_count(mob2_kill_count)
- q.set_counter(questscroll5.get_mob2_name(), questscroll5.get_mob2_rest_kill_count())
- end
- if mob1_kill_count>=questscroll5.get_mob1_max_kill_count() and
- mob2_kill_count>=questscroll5.get_mob2_max_kill_count() then
- set_state(reward)
- end
- end
- end
- state reward begin
- when letter begin
- send_letter(questscroll5.get_complete_title())
- end
- when button or info begin
- restart_quest()
- say_title(questscroll5.get_complete_title())
- say(gameforge.questscroll5._190_say)
- local reward_type=questscroll5.get_reward_type()
- if number(0, 100)<=90 then
- local s=number(1, 3)
- if 1==s then
- questscroll5.reward_exp(reward_type)
- questscroll5.reward_money(reward_type)
- elseif 2==s then
- questscroll5.reward_money(reward_type)
- questscroll5.reward_item(reward_type)
- elseif 3==s then
- questscroll5.reward_exp(reward_type)
- questscroll5.reward_item(reward_type)
- end
- else
- questscroll5.reward_exp(reward_type)
- questscroll5.reward_money(reward_type)
- questscroll5.reward_item(reward_type)
- end
- end
- -- pimped according mantis #118754 to prevent mantis #0042898
- function get_mission()
- -- add addtional check routine for player that have a invalid mission index
- local mission_index = pc.getqf("mission_index")
- if mission_index > 56 then
- mission_index = number(50, 56)
- questscroll5.set_mission(mission_index)
- end
- return locale.questscroll5.mission[mission_index]
- end
- function get_title()
- return questscroll5.get_mission()[3]
- end
- function get_complete_title()
- return string.format(gameforge.questscroll5._200_stringFormat, questscroll5.get_title())
- end
- function get_desc()
- return "[WINDOW_SIZE width;360|height;280]"..questscroll5.get_mission()[4]
- end
- function get_summ()
- return questscroll5.get_mission()[5]
- end
- function get_mob1_name()
- return mob_name(questscroll5.get_mob1_vnum())
- end
- function get_mob1_max_kill_count()
- return questscroll5.get_mission()[7]
- end
- function get_mob1_vnum()
- return tonumber(questscroll5.get_mission()[6])
- end
- function get_mob1_rest_kill_count()
- local ret=questscroll5.get_mob1_max_kill_count()-questscroll5.get_mob1_cur_kill_count()
- if ret<0 then return 0 end
- return ret
- end
- function set_mob1_cur_kill_count(value)
- pc.setqf("mob1_kill_count", value)
- end
- function get_mob1_cur_kill_count()
- return pc.getqf("mob1_kill_count")
- end
- function get_mob2_name()
- return mob_name(questscroll5.get_mob2_vnum())
- end
- function get_mob2_max_kill_count()
- return questscroll5.get_mission()[9]
- end
- function get_mob2_vnum()
- return tonumber(questscroll5.get_mission()[8])
- end
- function get_mob2_rest_kill_count()
- local ret=questscroll5.get_mob2_max_kill_count()-questscroll5.get_mob2_cur_kill_count()
- if ret<0 then return 0 end
- return ret
- end
- function set_mob2_cur_kill_count(value)
- pc.setqf("mob2_kill_count", value)
- end
- function get_mob2_cur_kill_count()
- return pc.getqf("mob2_kill_count")
- end
- function reward_table_get_prob_sum(item_array)
- local sum=0
- for i=1, table.getn(item_array) do
- sum=sum+item_array[i][2]
- end
- return sum
- end
- function reward_table_get_value(item_array)
- local prob_sum=questscroll5.reward_table_get_prob_sum(item_array)
- local prob_pos=number(0, prob_sum)
- test_chat(string.format(gameforge.questscroll5._210_chat, prob_pos))
- for i=1, table.getn(item_array) do
- prob_cur=item_array[i][2]
- if prob_pos<=prob_cur then
- return item_array[i][1]
- end
- prob_pos=prob_pos-prob_cur
- end
- chat(gameforge.questscroll5._220_chat)
- return 0
- end
- function get_reward_type()
- return questscroll5.get_mission()[2]
- end
- function get_reward_money(reward_type)
- return questscroll5.reward_table_get_value(locale.questscroll5.reward_money[reward_type])
- end
- function get_reward_exp(reward_type)
- return questscroll5.reward_table_get_value(locale.questscroll5.reward_exp[reward_type])
- end
- function get_reward_item(reward_type)
- return questscroll5.reward_table_get_value(locale.questscroll5.reward_item[reward_type])
- end
- function reward_money(reward_type)
- local reward_money=questscroll5.get_reward_money(reward_type)
- if reward_money>1000 and reward_money<=200000 then
- pc.change_money(reward_money)
- say_reward(string.format(gameforge.questscroll5._230_sayReward, reward_money))
- else
- chat(string.format(gameforge.questscroll5._240_chat, reward_type))
- end
- end
- function reward_exp(reward_type)
- local reward_exp=questscroll5.get_reward_exp(reward_type)
- if reward_exp>1000 and reward_exp<=300000 then
- pc.give_exp2(reward_exp)
- set_quest_state("levelup", "run")
- say_reward(string.format(gameforge.questscroll5._250_sayReward, reward_exp))
- else
- chat(string.format(gameforge.questscroll5._260_chat, reward_type))
- end
- end
- function reward_item(reward_type)
- local reward_item=questscroll5.get_reward_item(reward_type)
- pc.give_item2(reward_item)
- say_reward(string.format(gameforge.questscroll5._270_sayReward, item_name(reward_item)))
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement