Guest User

Untitled

a guest
Jun 20th, 2018
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.64 KB | None | 0 0
  1. quest levelup begin
  2. -- ÀÌ ºÎºÐ Áö¿ì¸é ·¹º§¾÷ Äù½ºÆ®°¡ µ¹Áö ¾Ê´Â´Ù.
  3. -- ´Ù¸¥ Äù½ºÆ®¿¡¼­ °æÇèÄ¡ ÁÙ°æ¿ì ÀÌ ½ºÅ×ÀÌÆ®·Î ¼³Á¤ÇؾßÇÑ´Ù
  4. -- current ==0 ÀÌ¸é ·¹º§ Äù½ºÆ®°¡ ³¡³­»óÅÂ
  5. -- current !=0 ÀÌ¸é ·¹º§ Äù½ºÆ®°¡ ÁøÇà»óÅ (ÇöÀç ·¹º§°ªÀÌ µé¾îÀÖ´Ù)
  6. -- select ´Â ·¹º§ Äù½ºÆ® ¼±ÅÃÇÑ Á¾·ù¸¦ ¸»ÇÑ´Ù.
  7. -- buttonstate ·¹º§ Äù½ºÆ® »óÅ ÁøÇà
  8. -- buttonstate == -1 ¹öưÀÌ ¾øÀ½
  9. -- buttonstate == 1 Çѹø ¼öÇàÇÏ°í ³²¾ÆÀÖ´Â °æ¿ì
  10. -- buttonstate == 2 ¾È³» ¸Þ½ÃÁö Ãâ·Â
  11. -- buttonstate == 3 ¿Ï·á
  12.  
  13. state run begin
  14. when letter begin
  15. local current = pc.getqf("current")
  16. local completed_level = pc.getqf("complete");
  17.  
  18. -- ·¹º§¾÷ Äù½ºÆ®°¡ ³¡³­»óÅ¿¡¼­´Â current °¡ 0 ÀÌ´Ù
  19. if current == 0 and
  20. pc.get_level() > completed_level and
  21. pc.get_level() > 1 and
  22. pc.get_level() < 60 then
  23.  
  24. local lev = pc.get_level()
  25. pc.setqf("buttonstate", 2)
  26. makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.start)
  27. pc.setqf("current", lev)
  28. pc.setqf("select", 1)
  29. pc.setqf("remain", special.levelup_quest[lev][2])
  30. setskin(NOWINDOW)
  31. end
  32.  
  33. setstate(start)
  34. end
  35. end
  36.  
  37. state start begin
  38. when info begin
  39. local lev = pc.getqf("current")
  40. if lev == 0 then return end
  41.  
  42. setskin(SCROLL)
  43. setbgimage('level_bg.tga')
  44. say("")
  45. say("")
  46. say("")
  47. local s = pc.getqf("select")
  48. if s == 0 then s = 1 end
  49.  
  50. local img_name = special.levelup_img[special.levelup_quest[lev][s*2-1]]
  51.  
  52. if img_name == nil then
  53. img_name = special.levelup_quest[lev][s*2-1]..".tga"
  54. end
  55.  
  56. addimage(20, 12, img_name)
  57.  
  58. setcolor(0, 0, 0)
  59. 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])
  60.  
  61. raw_script(locale.reward..":".. special.levelup_quest[lev][5].."% "..locale.exp)
  62.  
  63. if lev <= table.getn(special.levelup_reward1) then
  64. raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
  65. elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
  66. raw_script(","..locale.levelup.random_item)
  67. end
  68. if lev>=21 then
  69. raw_script(","..locale.levelup.gold)
  70. end
  71.  
  72. raw_script(newline)
  73.  
  74. levelup.show_mob_pos(lev)
  75.  
  76. select(locale.confirm)
  77. clearmapsignal()
  78. setskin(NOWINDOW)
  79. end
  80.  
  81. when login begin
  82. local lev = pc.getqf("current")
  83.  
  84. if lev != 0 then
  85. if pc.getqf("remain") <= 0 then
  86. setskin(NOWINDOW)
  87. pc.setqf("buttonstate", 3)
  88. makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.complete)
  89. else
  90. setskin(NOWINDOW)
  91. pc.setqf("buttonstate", 1)
  92. makequestbutton(locale.level..lev..' '..locale.quest_word)
  93. end
  94. end
  95. end
  96.  
  97. when button begin
  98. local lev = pc.getqf("current")
  99.  
  100. if lev == 0 then return end
  101.  
  102. if pc.getqf("buttonstate") == 3 then
  103. -- ¿Ï·á!
  104.  
  105. if pc.getqf("complete") != lev then
  106. pc.setqf("complete", lev)
  107.  
  108. local s = pc.getqf("select")
  109. if s == 0 then s = 1 end
  110.  
  111. say_title(locale.level..lev..' '..locale.quest_word..' - '..locale.complete)
  112. say(mob_name(special.levelup_quest[lev][s*2-1]), locale.levelup.slayed_them)
  113. say("")
  114. say("")
  115.  
  116. if lev <= 20 then -- ÀÌÀü ¹æ½Ä´ë·Î º¸»ó.
  117. if lev <= table.getn(special.levelup_reward1) then
  118. pc.give_item("level"..lev.."item", special.levelup_reward1[lev][pc.job+1])
  119. else
  120. local v = number(1, 100)
  121.  
  122. if v <= special.levelup_reward3[1][1] then
  123. pc.give_item("level"..lev.."item", special.levelup_reward3[1][2], special.levelup_reward3[1][3])
  124. elseif v <= special.levelup_reward3[2][1] then
  125. pc.give_item("level"..lev.."item", special.levelup_reward3[2][2], special.levelup_reward3[2][3])
  126. elseif v <= special.levelup_reward3[3][1] then
  127. pc.give_item("level"..lev.."item", special.levelup_reward3[3][2], special.levelup_reward3[3][3])
  128. elseif v <= special.levelup_reward3[4][1] then
  129. pc.give_item("level"..lev.."item", special.levelup_reward3[4][2], special.levelup_reward3[4][3])
  130. else
  131. pc.give_item("level"..lev.."item", special.levelup_reward3[5][2], special.levelup_reward3[5][3])
  132. end
  133. end
  134.  
  135. pc.give_exp_perc("level"..lev.."exp", lev, special.levelup_quest[lev][5])
  136.  
  137. if lev == 12 or lev == 14 or lev == 16 or lev == 18 or lev == 20 then
  138. pc.give_item2(50083)
  139. say_reward(item_name(50083) .. "À» ¹Þ¾Ò½À´Ï´Ù.")
  140. wait()
  141. end
  142.  
  143. else
  144. -- give item
  145. local ll = lev - 20
  146. if lev < 26 then
  147.  
  148. local n = table.getn(special.levelup_reward_item_21[ll])
  149. local t = special.levelup_reward_item_21[ll][number(1, n)]
  150. say_reward(locale.reward .. " : ")
  151. if type(t) == 'table' then
  152. pc.give_item2(t[1], t[2])
  153. say_reward(item_name(t[1]).."¾ÆÀÌÅÛÀ» "..t[2].."°³¸¦ ¹Þ¾Ò½À´Ï´Ù.")
  154. else
  155. pc.give_item2(t)
  156. say_reward(item_name(t).."¾ÆÀÌÅÛÀ» ¹Þ¾Ò½À´Ï´Ù.")
  157. end
  158. end
  159. local reward_gold = special.levelup_reward_gold21
  160. local reward_exp = special.levelup_reward_exp21
  161.  
  162. if lev >= 31 and lev <= 40 then
  163. reward_gold = special.levelup_reward_gold31
  164. reward_exp = special.levelup_reward_exp31
  165. elseif lev >= 41 and lev <= 50 then
  166. reward_gold = special.levelup_reward_gold41
  167. reward_exp = special.levelup_reward_exp41
  168. elseif lev >= 51 and lev <= 60 then
  169. reward_gold = special.levelup_reward_gold51
  170. reward_exp = special.levelup_reward_exp51
  171. end
  172.  
  173. -- give money
  174. n = number(0, 99)
  175. local i = 0
  176. for i = 1, table.getn(reward_gold) do
  177. if n < reward_gold[i][2] then
  178. pc.change_money(reward_gold[i][1])
  179. say_reward(reward_gold[i][1].."³ÉÀ» ¹Þ¾Ò½À´Ï´Ù.")
  180. break
  181. else
  182. n = n - reward_gold[i][2]
  183. end
  184. end
  185.  
  186. -- give exp
  187. n = number(0, 99)
  188. i = 0
  189. for i = 1, table.getn(reward_exp) do
  190. if n < reward_exp[i][2] then
  191. pc.give_exp_perc("level"..lev.."exp", lev, reward_exp[i][1])
  192. say_reward("°æÇèÄ¡"..reward_exp[i][1].."%¸¦ ¹Þ¾Ò½À´Ï´Ù.")
  193. break
  194. else
  195. n = n - reward_exp[i][2]
  196. end
  197. end
  198.  
  199. say("")
  200.  
  201. wait()
  202. end
  203. end
  204.  
  205. local old_lev = lev
  206.  
  207. lev = lev + 1
  208.  
  209. -- ÇöÀç ·¹º§ÀÌ ´ÙÀ½ ·¹º§ Äù½ºÆ®¸¦ ÇÒ ¼ö ÀÖ´Â ·¹º§ÀÌ¸é ¹Ù·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù.
  210. if lev > 1 and lev < 60 and pc.level >= lev then
  211. pc.setqf("buttonstate", 2)
  212. makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.start)
  213. pc.setqf("current", lev)
  214. pc.setqf("select", 1)
  215. pc.setqf("remain", special.levelup_quest[lev][2])
  216. setskin(NOWINDOW)
  217. return
  218. else
  219. pc.setqf("current", 0)
  220. q.done()
  221. end
  222. elseif pc.getqf("buttonstate") == 2 then
  223. -- ·¹º§¾÷ Äù½ºÆ® ¾È³»Ã¢À» ¶ç¿ò
  224. local lev = pc.getqf("current")
  225. if lev == 0 then
  226. q.done()
  227. end
  228.  
  229. say(locale.levelup.choice1)
  230. say(locale.levelup.choice2)
  231.  
  232. local sel = select(
  233. mob_name(special.levelup_quest[lev][1]).." "..special.levelup_quest[lev][2]..locale.levelup.kill_count,
  234. mob_name(special.levelup_quest[lev][3]).." "..special.levelup_quest[lev][4]..locale.levelup.kill_count
  235. )
  236.  
  237. setskin(SCROLL)
  238. setbgimage('level_bg.tga')
  239. say("")
  240. say("")
  241. say("")
  242. pc.setqf("select", sel)
  243.  
  244. local img_name = special.levelup_img[special.levelup_quest[lev][sel*2-1]]
  245.  
  246. if img_name == nil then
  247. img_name = special.levelup_quest[lev][sel*2-1]..".tga"
  248. end
  249.  
  250. addimage(20, 12, img_name)
  251.  
  252. setcolor(0, 0, 0)
  253. 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])
  254.  
  255. raw_script(locale.reward..":".. special.levelup_quest[lev][5].."% "..locale.exp)
  256.  
  257. if lev <= table.getn(special.levelup_reward1) then
  258. raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
  259. elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
  260. raw_script(","..locale.levelup.random_item)
  261. end
  262. if lev>=21 then
  263. raw_script(","..locale.levelup.gold)
  264. end
  265. raw_script(newline)
  266.  
  267. levelup.show_mob_pos(lev)
  268.  
  269. local s = select(locale.levelup.lets_go)
  270.  
  271. if s == 1 then
  272. setskin(NOWINDOW)
  273. pc.setqf("remain", special.levelup_quest[lev][sel*2])
  274. syschat("<"..locale.quest_word.."> ", mob_name(special.levelup_quest[lev][sel*2-1]), " ", special.levelup_quest[lev][sel*2], locale.levelup.kill_count)
  275. 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)
  276. q.set_counter(locale.levelup.remain_count, pc.getqf("remain"))
  277. q.start()
  278. end
  279.  
  280. setskin(NOWINDOW)
  281. clearmapsignal()
  282.  
  283. elseif pc.getqf("buttonstate") == 1 then
  284. -- Áö³­¹ø Äù½ºÆ®°¡ ³¡³ªÁö ¾Ê¾Æ¼­ ·Î±×ÀÎ ½Ã¿¡ ´Ù½Ã º¸¿©ÁÙ ¶§
  285. local s = pc.getqf("select")
  286. if s == 0 then s = 1 end
  287.  
  288. local lev = pc.getqf("current")
  289.  
  290. if lev != 0 then
  291. say(locale.levelup.prev_quest1..mob_name(special.levelup_quest[lev][s*2-1]).." "..pc.getqf("remain")..locale.levelup.prev_quest2)
  292. local ss = select(locale.levelup.prev_quest_info, locale.levelup.prev_quest_go)
  293.  
  294. if ss == 1 then
  295. setskin(SCROLL)
  296. setbgimage('level_bg.tga')
  297. say("")
  298. say("")
  299. say("")
  300.  
  301. local img_name = special.levelup_img[special.levelup_quest[lev][s*2-1]]
  302.  
  303. if img_name == nil then
  304. img_name = special.levelup_quest[lev][s*2-1]..".tga"
  305. end
  306.  
  307. addimage(20, 12, img_name)
  308. setcolor(0, 0, 0)
  309.  
  310. 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])
  311.  
  312. raw_script(locale.reward..":".. special.levelup_quest[lev][5].."% "..locale.exp)
  313.  
  314. if lev <= table.getn(special.levelup_reward1) then
  315. raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
  316. elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
  317. raw_script(","..locale.levelup.random_item)
  318. end
  319. if lev>=21 then
  320. raw_script(","..locale.levelup.gold)
  321. end
  322.  
  323. raw_script(newline)
  324.  
  325.  
  326. select(locale.confirm)
  327. setskin(NOWINDOW)
  328. clearmapsignal()
  329.  
  330. end
  331.  
  332. setskin(NOWINDOW)
  333. 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)
  334. q.set_counter(locale.levelup.remain_count, pc.getqf("remain"))
  335. --q.set_icon(string.format("level_%02d.sub", lev))
  336. q.start()
  337. end
  338. end
  339.  
  340. pc.setqf("buttonstate", -1)
  341. end
  342.  
  343. when levelup begin
  344. local lev = pc.getqf("current");
  345.  
  346. if lev == 0 then
  347. lev = pc.level
  348.  
  349. -- ·¹º§ 2ºÎÅÍ 60±îÁö¸¸ Äù½ºÆ®°¡ ½ÇÇàµÇ¾î¾ß ÇÑ´Ù.
  350. if lev < 2 or lev > 60 then return end
  351.  
  352. pc.setqf("buttonstate", 2)
  353. makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.start)
  354. pc.setqf("current", lev)
  355. pc.setqf("select", 1)
  356. pc.setqf("remain", special.levelup_quest[lev][2])
  357. setskin(NOWINDOW)
  358. end
  359. end
  360.  
  361. when kill begin
  362. local sel = pc.getqf("select")
  363.  
  364. if sel == 0 then
  365. sel = 1
  366. end
  367.  
  368. local lev = pc.getqf("current")
  369.  
  370. if lev != 0 and npc.race == (special.levelup_quest[lev][sel*2-1]) and pc.getqf("buttonstate") == -1 then
  371. local remain = pc.getqf("remain") - 1
  372.  
  373. if remain <= 0 then
  374. pc.setqf("remain", 0)
  375. q.set_counter_value(0)
  376. setskin(NOWINDOW)
  377. makequestbutton(locale.level..lev..' '..locale.quest_word..' - '..locale.complete)
  378. pc.setqf("buttonstate", 3)
  379. else
  380. pc.setqf("remain", remain)
  381. q.set_counter_value(remain)
  382. end
  383. end
  384. end
  385.  
  386. function show_mob_pos(lev)
  387. map_index = pc.get_map_index()
  388.  
  389. if map_index <= 0 then
  390. test_chat("show_mob_pos: map_index("..map_index..") < 0")
  391. return
  392. end
  393.  
  394. if map_index > table.getn(special.lvq_map) then
  395. test_chat("show_mob_pos: map_index("..map_index..") > max("..table.getn(special.lvq_map)..")")
  396. return
  397. end
  398.  
  399. lev_quest_list = special.lvq_map[map_index]
  400. if not lev_quest_list then
  401. test_chat("show_mob_pos: special.lvq_map[map_index("..map_index..")] is nil")
  402. return
  403. end
  404.  
  405. mob_pos_list = lev_quest_list[lev]
  406. if not mob_pos_list then
  407. test_chat("show_mob_pos: special.lvq_map[map_index("..map_index..")][lev("..lev..")] is nil")
  408. return
  409. end
  410.  
  411. table.foreachi(
  412. mob_pos_list,
  413. function (n, mob_pos)
  414. test_chat("addmapsignal("..mob_pos[1]..", "..mob_pos[2]..")")
  415. addmapsignal(mob_pos[1]*100, mob_pos[2]*100)
  416. end
  417. )
  418. setmapcenterposition(200, 0)
  419. end
  420. end
  421.  
  422. end
Advertisement
Add Comment
Please, Sign In to add comment