Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest levelup begin
- -- ÀÌ ºÎºÐ Áö¿ì¸é ·¹º§¾÷ Äù½ºÆ®°¡ µ¹Áö ¾Ê´Â´Ù.
- -- ´Ù¸¥ Äù½ºÆ®¿¡¼ °æÇèÄ¡ ÁÙ°æ¿ì ÀÌ ½ºÅ×ÀÌÆ®·Î ¼³Á¤ÇؾßÇÑ´Ù
- -- current ==0 ÀÌ¸é ·¹º§ Äù½ºÆ®°¡ ³¡³»óÅÂ
- -- current !=0 ÀÌ¸é ·¹º§ Äù½ºÆ®°¡ ÁøÇà»óÅ (ÇöÀç ·¹º§°ªÀÌ µé¾îÀÖ´Ù)
- -- select ´Â ·¹º§ Äù½ºÆ® ¼±ÅÃÇÑ Á¾·ù¸¦ ¸»ÇÑ´Ù.
- -- buttonstate ·¹º§ Äù½ºÆ® »óÅ ÁøÇà
- -- buttonstate == -1 ¹öưÀÌ ¾øÀ½
- -- buttonstate == 1 Çѹø ¼öÇàÇÏ°í ³²¾ÆÀÖ´Â °æ¿ì
- -- buttonstate == 2 ¾È³» ¸Þ½ÃÁö Ãâ·Â
- -- buttonstate == 3 ¿Ï·á
- state run begin
- when letter begin
- local current = pc.getqf("current")
- local completed_level = pc.getqf("complete");
- -- ·¹º§¾÷ Äù½ºÆ®°¡ ³¡³»óÅ¿¡¼´Â current °¡ 0 ÀÌ´Ù
- if current == 0 and
- pc.get_level() > completed_level and
- pc.get_level() > 1 and
- pc.get_level() < 60 then
- local lev = pc.get_level()
- pc.setqf("buttonstate", 2)
- makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.start)
- pc.setqf("current", lev)
- pc.setqf("select", 1)
- pc.setqf("remain", special.levelup_quest[lev][2])
- setskin(NOWINDOW)
- end
- setstate(start)
- end
- end
- state start begin
- when info begin
- local lev = pc.getqf("current")
- if lev == 0 then return end
- setskin(SCROLL)
- setbgimage('level_bg.tga')
- say("")
- say("")
- say("")
- local s = pc.getqf("select")
- if s == 0 then s = 1 end
- local img_name = special.levelup_img[special.levelup_quest[lev][s*2-1]]
- if img_name == nil then
- img_name = special.levelup_quest[lev][s*2-1]..".tga"
- end
- addimage(20, 12, img_name)
- setcolor(0, 0, 0)
- say(locale.levelup.slay_them1, mob_name(special.levelup_quest[lev][s*2-1]), locale.levelup.slay_them2,"[ENTER]", locale.levelup.slay_target_is," : ", mob_name(special.levelup_quest[lev][s*2-1]),"[ENTER]", locale.levelup.slay_target_count," : ", special.levelup_quest[lev][s*2])
- raw_script(locale.reward..":".. special.levelup_quest[lev][5].."% "..locale.exp)
- if lev <= table.getn(special.levelup_reward1) then
- raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
- elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
- raw_script(","..locale.levelup.random_item)
- end
- if lev>=21 then
- raw_script(","..locale.levelup.gold)
- end
- raw_script(newline)
- levelup.show_mob_pos(lev)
- select(locale.confirm)
- clearmapsignal()
- setskin(NOWINDOW)
- end
- when login begin
- local lev = pc.getqf("current")
- if lev != 0 then
- if pc.getqf("remain") <= 0 then
- setskin(NOWINDOW)
- pc.setqf("buttonstate", 3)
- makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.complete)
- else
- setskin(NOWINDOW)
- pc.setqf("buttonstate", 1)
- makequestbutton(locale.level..lev..' '..locale.quest_word)
- end
- end
- end
- when button begin
- local lev = pc.getqf("current")
- if lev == 0 then return end
- if pc.getqf("buttonstate") == 3 then
- -- ¿Ï·á!
- if pc.getqf("complete") != lev then
- pc.setqf("complete", lev)
- local s = pc.getqf("select")
- if s == 0 then s = 1 end
- say_title(locale.level..lev..' '..locale.quest_word..' - '..locale.complete)
- say(mob_name(special.levelup_quest[lev][s*2-1]), locale.levelup.slayed_them)
- say("")
- say("")
- if lev <= 20 then -- ÀÌÀü ¹æ½Ä´ë·Î º¸»ó.
- if lev <= table.getn(special.levelup_reward1) then
- pc.give_item("level"..lev.."item", special.levelup_reward1[lev][pc.job+1])
- else
- local v = number(1, 100)
- if v <= special.levelup_reward3[1][1] then
- pc.give_item("level"..lev.."item", special.levelup_reward3[1][2], special.levelup_reward3[1][3])
- elseif v <= special.levelup_reward3[2][1] then
- pc.give_item("level"..lev.."item", special.levelup_reward3[2][2], special.levelup_reward3[2][3])
- elseif v <= special.levelup_reward3[3][1] then
- pc.give_item("level"..lev.."item", special.levelup_reward3[3][2], special.levelup_reward3[3][3])
- elseif v <= special.levelup_reward3[4][1] then
- pc.give_item("level"..lev.."item", special.levelup_reward3[4][2], special.levelup_reward3[4][3])
- else
- pc.give_item("level"..lev.."item", special.levelup_reward3[5][2], special.levelup_reward3[5][3])
- end
- end
- pc.give_exp_perc("level"..lev.."exp", lev, special.levelup_quest[lev][5])
- if lev == 12 or lev == 14 or lev == 16 or lev == 18 or lev == 20 then
- pc.give_item2(50083)
- say_reward(item_name(50083) .. "À» ¹Þ¾Ò½À´Ï´Ù.")
- wait()
- end
- else
- -- give item
- local ll = lev - 20
- if lev < 26 then
- local n = table.getn(special.levelup_reward_item_21[ll])
- local t = special.levelup_reward_item_21[ll][number(1, n)]
- say_reward(locale.reward .. " : ")
- if type(t) == 'table' then
- pc.give_item2(t[1], t[2])
- say_reward(item_name(t[1]).."¾ÆÀÌÅÛÀ» "..t[2].."°³¸¦ ¹Þ¾Ò½À´Ï´Ù.")
- else
- pc.give_item2(t)
- say_reward(item_name(t).."¾ÆÀÌÅÛÀ» ¹Þ¾Ò½À´Ï´Ù.")
- end
- end
- local reward_gold = special.levelup_reward_gold21
- local reward_exp = special.levelup_reward_exp21
- if lev >= 31 and lev <= 40 then
- reward_gold = special.levelup_reward_gold31
- reward_exp = special.levelup_reward_exp31
- elseif lev >= 41 and lev <= 50 then
- reward_gold = special.levelup_reward_gold41
- reward_exp = special.levelup_reward_exp41
- elseif lev >= 51 and lev <= 60 then
- reward_gold = special.levelup_reward_gold51
- reward_exp = special.levelup_reward_exp51
- end
- -- give money
- n = number(0, 99)
- local i = 0
- for i = 1, table.getn(reward_gold) do
- if n < reward_gold[i][2] then
- pc.change_money(reward_gold[i][1])
- say_reward(reward_gold[i][1].."³ÉÀ» ¹Þ¾Ò½À´Ï´Ù.")
- break
- else
- n = n - reward_gold[i][2]
- end
- end
- -- give exp
- n = number(0, 99)
- i = 0
- for i = 1, table.getn(reward_exp) do
- if n < reward_exp[i][2] then
- pc.give_exp_perc("level"..lev.."exp", lev, reward_exp[i][1])
- say_reward("°æÇèÄ¡"..reward_exp[i][1].."%¸¦ ¹Þ¾Ò½À´Ï´Ù.")
- break
- else
- n = n - reward_exp[i][2]
- end
- end
- say("")
- wait()
- end
- end
- local old_lev = lev
- lev = lev + 1
- -- ÇöÀç ·¹º§ÀÌ ´ÙÀ½ ·¹º§ Äù½ºÆ®¸¦ ÇÒ ¼ö ÀÖ´Â ·¹º§ÀÌ¸é ¹Ù·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù.
- if lev > 1 and lev < 60 and pc.level >= lev then
- pc.setqf("buttonstate", 2)
- makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.start)
- pc.setqf("current", lev)
- pc.setqf("select", 1)
- pc.setqf("remain", special.levelup_quest[lev][2])
- setskin(NOWINDOW)
- return
- else
- pc.setqf("current", 0)
- q.done()
- end
- elseif pc.getqf("buttonstate") == 2 then
- -- ·¹º§¾÷ Äù½ºÆ® ¾È³»Ã¢À» ¶ç¿ò
- local lev = pc.getqf("current")
- if lev == 0 then
- q.done()
- end
- say(locale.levelup.choice1)
- say(locale.levelup.choice2)
- local sel = select(
- mob_name(special.levelup_quest[lev][1]).." "..special.levelup_quest[lev][2]..locale.levelup.kill_count,
- mob_name(special.levelup_quest[lev][3]).." "..special.levelup_quest[lev][4]..locale.levelup.kill_count
- )
- setskin(SCROLL)
- setbgimage('level_bg.tga')
- say("")
- say("")
- say("")
- pc.setqf("select", sel)
- local img_name = special.levelup_img[special.levelup_quest[lev][sel*2-1]]
- if img_name == nil then
- img_name = special.levelup_quest[lev][sel*2-1]..".tga"
- end
- addimage(20, 12, img_name)
- setcolor(0, 0, 0)
- say(locale.levelup.slay_them1, mob_name(special.levelup_quest[lev][sel*2-1]), locale.levelup.slay_them2, "[ENTER]", locale.levelup.slay_target_is," : ", mob_name(special.levelup_quest[lev][sel*2-1]), "[ENTER]", locale.levelup.slay_target_count, " : ", special.levelup_quest[lev][sel*2])
- raw_script(locale.reward..":".. special.levelup_quest[lev][5].."% "..locale.exp)
- if lev <= table.getn(special.levelup_reward1) then
- raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
- elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
- raw_script(","..locale.levelup.random_item)
- end
- if lev>=21 then
- raw_script(","..locale.levelup.gold)
- end
- raw_script(newline)
- levelup.show_mob_pos(lev)
- local s = select(locale.levelup.lets_go)
- if s == 1 then
- setskin(NOWINDOW)
- pc.setqf("remain", special.levelup_quest[lev][sel*2])
- syschat("<"..locale.quest_word.."> ", mob_name(special.levelup_quest[lev][sel*2-1]), " ", special.levelup_quest[lev][sel*2], locale.levelup.kill_count)
- q.set_title(locale.level..' '..locale.quest_word..' - '..locale.eliminate_on_begin..mob_name(special.levelup_quest[lev][sel*2-1])..locale.eliminate_on_end)
- q.set_counter(locale.levelup.remain_count, pc.getqf("remain"))
- q.start()
- end
- setskin(NOWINDOW)
- clearmapsignal()
- elseif pc.getqf("buttonstate") == 1 then
- -- Áö³¹ø Äù½ºÆ®°¡ ³¡³ªÁö ¾Ê¾Æ¼ ·Î±×ÀÎ ½Ã¿¡ ´Ù½Ã º¸¿©ÁÙ ¶§
- local s = pc.getqf("select")
- if s == 0 then s = 1 end
- local lev = pc.getqf("current")
- if lev != 0 then
- say(locale.levelup.prev_quest1..mob_name(special.levelup_quest[lev][s*2-1]).." "..pc.getqf("remain")..locale.levelup.prev_quest2)
- local ss = select(locale.levelup.prev_quest_info, locale.levelup.prev_quest_go)
- if ss == 1 then
- setskin(SCROLL)
- setbgimage('level_bg.tga')
- say("")
- say("")
- say("")
- local img_name = special.levelup_img[special.levelup_quest[lev][s*2-1]]
- if img_name == nil then
- img_name = special.levelup_quest[lev][s*2-1]..".tga"
- end
- addimage(20, 12, img_name)
- setcolor(0, 0, 0)
- say(locale.levelup.slay_them1, mob_name(special.levelup_quest[lev][s*2-1]), locale.levelup.slay_them2, "[ENTER]", locale.levelup.slay_target_is, " : ", mob_name(special.levelup_quest[lev][s*2-1]), "[ENTER]", locale.levelup.slay_target_count, " : ", special.levelup_quest[lev][s*2])
- raw_script(locale.reward..":".. special.levelup_quest[lev][5].."% "..locale.exp)
- if lev <= table.getn(special.levelup_reward1) then
- raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
- elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
- raw_script(","..locale.levelup.random_item)
- end
- if lev>=21 then
- raw_script(","..locale.levelup.gold)
- end
- raw_script(newline)
- select(locale.confirm)
- setskin(NOWINDOW)
- clearmapsignal()
- end
- setskin(NOWINDOW)
- q.set_title(locale.level..' '..locale.quest_word..' - '..locale.eliminate_on_begin..mob_name(special.levelup_quest[lev][s*2-1])..locale.eliminate_on_end)
- q.set_counter(locale.levelup.remain_count, pc.getqf("remain"))
- --q.set_icon(string.format("level_%02d.sub", lev))
- q.start()
- end
- end
- pc.setqf("buttonstate", -1)
- end
- when levelup begin
- local lev = pc.getqf("current");
- if lev == 0 then
- lev = pc.level
- -- ·¹º§ 2ºÎÅÍ 60±îÁö¸¸ Äù½ºÆ®°¡ ½ÇÇàµÇ¾î¾ß ÇÑ´Ù.
- if lev < 2 or lev > 60 then return end
- pc.setqf("buttonstate", 2)
- makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.start)
- pc.setqf("current", lev)
- pc.setqf("select", 1)
- pc.setqf("remain", special.levelup_quest[lev][2])
- setskin(NOWINDOW)
- end
- end
- when kill begin
- local sel = pc.getqf("select")
- if sel == 0 then
- sel = 1
- end
- local lev = pc.getqf("current")
- if lev != 0 and npc.race == (special.levelup_quest[lev][sel*2-1]) and pc.getqf("buttonstate") == -1 then
- local remain = pc.getqf("remain") - 1
- if remain <= 0 then
- pc.setqf("remain", 0)
- q.set_counter_value(0)
- setskin(NOWINDOW)
- makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.complete)
- pc.setqf("buttonstate", 3)
- else
- pc.setqf("remain", remain)
- q.set_counter_value(remain)
- end
- end
- end
- function show_mob_pos(lev)
- map_index = pc.get_map_index()
- if map_index <= 0 then
- test_chat("show_mob_pos: map_index("..map_index..") < 0")
- return
- end
- if map_index > table.getn(special.lvq_map) then
- test_chat("show_mob_pos: map_index("..map_index..") > max("..table.getn(special.lvq_map)..")")
- return
- end
- lev_quest_list = special.lvq_map[map_index]
- if not lev_quest_list then
- test_chat("show_mob_pos: special.lvq_map[map_index("..map_index..")] is nil")
- return
- end
- mob_pos_list = lev_quest_list[lev]
- if not mob_pos_list then
- test_chat("show_mob_pos: special.lvq_map[map_index("..map_index..")][lev("..lev..")] is nil")
- return
- end
- table.foreachi(
- mob_pos_list,
- function (n, mob_pos)
- test_chat("addmapsignal("..mob_pos[1]..", "..mob_pos[2]..")")
- addmapsignal(mob_pos[1]*100, mob_pos[2]*100)
- end
- )
- setmapcenterposition(200, 0)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment