Advertisement
Guest User

levelup.quest

a guest
Dec 5th, 2022
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.70 KB | Gaming | 0 0
  1. quest levelup begin
  2. state start begin
  3. when login begin
  4. local current = pc.getqf("current")
  5. local completed_level = pc.getqf("complete");
  6.  
  7. if current == 0 and
  8. pc.get_level() > completed_level and
  9. pc.get_level() > 1 and
  10. pc.get_level() < 90 then
  11.  
  12. local lev = pc.get_level()
  13. pc.setqf("buttonstate", 2)
  14. makequestbutton(string.format(gameforge.levelup._10_makequestbutton, lev))
  15. pc.setqf("current", lev)
  16. pc.setqf("select", 1)
  17. pc.setqf("remain", special.levelup_quest[lev][2])
  18. setskin(NOWINDOW)
  19. end
  20.  
  21. setstate(start)
  22. end
  23. end
  24.  
  25. state start begin
  26. when info begin
  27. local lev = pc.getqf("current")
  28. if lev == 0 then return end
  29.  
  30. setskin(SCROLL)
  31. setbgimage('level_bg.tga')
  32. say("")
  33. say("")
  34. say("")
  35. local s = pc.getqf("select")
  36. if s == 0 then s = 1 end
  37. addimage(20,12,special.levelup_img[special.levelup_quest[lev][s*2-1]])
  38. setcolor(0,0,0)
  39.  
  40. say(string.format(gameforge.levelup._20_say,mob_name(special.levelup_quest[lev][s*2-1])))
  41. say(string.format(gameforge.levelup._26_say,special.levelup_quest[lev][s*2]))
  42.  
  43. raw_script(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))
  44.  
  45. say("")
  46.  
  47. if lev <= table.getn(special.levelup_reward1) then
  48. raw_script(item_name(special.levelup_reward1[lev][pc.job+1]))
  49. elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
  50. raw_script(locale.levelup.random_item)
  51. end
  52. if lev>=21 then
  53. local reward_gold = special.levelup_reward_gold21
  54. if lev >= 31 and lev <= 40 then
  55. reward_gold = special.levelup_reward_gold31
  56. elseif lev >= 41 and lev <= 50 then
  57. reward_gold = special.levelup_reward_gold41
  58. elseif lev >= 51 and lev <= 83 then
  59. reward_gold = special.levelup_reward_gold51
  60. elseif lev >= 84 and lev <= 90 then
  61. reward_gold = special.levelup_reward_gold51
  62. end
  63. local max_gold_i = table.getn(reward_gold)
  64. raw_script(reward_gold[1][1].."-"..reward_gold[max_gold_i][1].." "..locale.gold)
  65. end
  66.  
  67. raw_script(newline)
  68.  
  69. levelup.show_mob_pos(lev)
  70.  
  71. select(gameforge.locale.confirm)
  72.  
  73. clearmapsignal()
  74. setskin(NOWINDOW)
  75. end
  76.  
  77. when login begin
  78. local lev = pc.getqf("current")
  79.  
  80. if lev != 0 then
  81. if pc.getqf("remain") <= 0 then
  82. setskin(NOWINDOW)
  83. pc.setqf("buttonstate", 3)
  84. makequestbutton(string.format(gameforge.levelup._30_makequestbutton, lev))
  85. else
  86. setskin(NOWINDOW)
  87. pc.setqf("buttonstate", 1)
  88. makequestbutton(string.format(gameforge.levelup._40_makequestbutton, lev))
  89. end
  90. end
  91. end
  92.  
  93. when button begin
  94. local lev = pc.getqf("current")
  95.  
  96. if lev == 0 then return end
  97.  
  98. if pc.getqf("buttonstate") == 3 then
  99.  
  100. if pc.getqf("complete") != lev then
  101. pc.setqf("complete", lev)
  102.  
  103. local s = pc.getqf("select")
  104. if s == 0 then s = 1 end
  105.  
  106. say_title(string.format(gameforge.levelup._50_sayTitle, lev))
  107. say(gameforge.levelup._60_say)
  108. say("")
  109.  
  110. if lev <= 20 then
  111. if lev <= table.getn(special.levelup_reward1) then
  112. pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give,
  113. special.levelup_reward1[lev][pc.job+1])
  114. else
  115. local v = number(1,100)
  116.  
  117. if v <= special.levelup_reward3[1][1] then
  118. pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[1][2],special.levelup_reward3[1][3])
  119. elseif v <= special.levelup_reward3[2][1] then
  120. pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[2][2],special.levelup_reward3[2][3])
  121. elseif v <= special.levelup_reward3[3][1] then
  122. pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[3][2],special.levelup_reward3[3][3])
  123. elseif v <= special.levelup_reward3[4][1] then
  124. pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[4][2],special.levelup_reward3[4][3])
  125. else
  126. pc.give_item(gameforge.levelup._64_give..lev..gameforge.levelup._65_give, special.levelup_reward3[5][2],special.levelup_reward3[5][3])
  127. end
  128. end
  129.  
  130. pc.give_exp_perc(gameforge.levelup._64_give..lev..gameforge.levelup._66_give, lev, special.levelup_quest[lev][5])
  131.  
  132. if lev == 12 or lev == 14 or lev == 16 or lev == 18 or lev == 20 then
  133. pc.give_item2(50083)
  134. say_reward(string.format(gameforge.levelup._70_sayReward, item_name(50083) ))
  135. wait()
  136. end
  137.  
  138. else
  139.  
  140. local ll = lev - 20
  141. if lev < 26 then
  142.  
  143. local n = table.getn(special.levelup_reward_item_21[ll])
  144. local t = special.levelup_reward_item_21[ll][number(1, n)]
  145. say_reward(gameforge.levelup._80_sayReward)
  146. if type(t) == 'table' then
  147. pc.give_item2(t[1], t[2])
  148. say_reward(string.format(gameforge.levelup._90_sayReward, item_name(t[1]).. " "..t[2]))
  149. else
  150. pc.give_item2(t)
  151. say_reward(string.format(gameforge.levelup._100_sayReward, item_name(t)))
  152. end
  153.  
  154. end
  155. local reward_gold = special.levelup_reward_gold21
  156. local reward_exp = special.levelup_reward_exp21
  157.  
  158. if lev >= 31 and lev <= 40 then
  159. reward_gold = special.levelup_reward_gold31
  160. reward_exp = special.levelup_reward_exp31
  161. elseif lev >= 41 and lev <= 50 then
  162. reward_gold = special.levelup_reward_gold41
  163. reward_exp = special.levelup_reward_exp41
  164. elseif lev >= 51 and lev <= 83 then
  165. reward_gold = special.levelup_reward_gold51
  166. reward_exp = special.levelup_reward_exp51
  167. elseif lev >= 84 and lev <= 90 then
  168. reward_gold = special.levelup_reward_gold51
  169. reward_exp = special.levelup_reward_exp84
  170. end
  171.  
  172.  
  173. n = number(0, 99)
  174. local i = 0
  175. for i = 1, table.getn(reward_gold) do
  176. if n < reward_gold[i][2] then
  177. pc.change_money(reward_gold[i][1])
  178. say_reward(string.format(gameforge.levelup._110_sayReward, reward_gold[i][1]))
  179. break
  180. else
  181. n = n - reward_gold[i][2]
  182. end
  183. end
  184.  
  185.  
  186. n = number(0, 99)
  187. i = 0
  188. for i = 1, table.getn(reward_exp) do
  189. if n < reward_exp[i][2] then
  190. pc.give_exp_perc(gameforge.levelup._64_give..lev..gameforge.levelup._66_give, lev, reward_exp[i][1])
  191. say_reward(string.format(gameforge.levelup._120_sayReward, reward_exp[i][1]))
  192. break
  193. else
  194. n = n - reward_exp[i][2]
  195. end
  196. end
  197.  
  198. say("")
  199.  
  200. wait()
  201. end
  202. end
  203.  
  204. local old_lev = lev
  205.  
  206. lev = lev + 1
  207.  
  208.  
  209. if lev > 1 and lev < 90 and pc.level >= lev then
  210. pc.setqf("buttonstate", 2)
  211. makequestbutton(string.format(gameforge.levelup._130_makequestbutton, lev))
  212. pc.setqf("current", lev)
  213. pc.setqf("select", 1)
  214. pc.setqf("remain",special.levelup_quest[lev][2])
  215. setskin(NOWINDOW)
  216. return
  217. else
  218. pc.setqf("current", 0)
  219. q.done()
  220. end
  221.  
  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_title(gameforge.levelup._140_sayTitle)
  230.  
  231. say(gameforge.levelup._150_say)
  232. local sel = select(
  233. mob_name(special.levelup_quest[lev][1]).." "..special.levelup_quest[lev][2]..gameforge.levelup._155_say,
  234. mob_name(special.levelup_quest[lev][3]).." "..special.levelup_quest[lev][4]..gameforge.levelup._155_say
  235. )
  236.  
  237.  
  238. setskin(SCROLL)
  239. setbgimage('level_bg.tga')
  240. say("")
  241. say("")
  242. say("")
  243. pc.setqf("select", sel)
  244. addimage(20, 12, special.levelup_img[special.levelup_quest[lev][sel*2-1]])
  245. setcolor(0,0,0)
  246.  
  247. say(string.format(gameforge.levelup._20_say, mob_name(special.levelup_quest[lev][sel*2-1])))
  248. say(string.format(gameforge.levelup._26_say,special.levelup_quest[lev][sel*2]))
  249.  
  250. say(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))
  251.  
  252. if lev <= table.getn(special.levelup_reward1) then
  253. raw_script(", "..item_name(special.levelup_reward1[lev][pc.job+1]))
  254. elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
  255. raw_script(", "..locale.levelup.random_item)
  256. end
  257. if lev>=21 then
  258. raw_script(", "..locale.gold)
  259. end
  260. raw_script(newline)
  261.  
  262. levelup.show_mob_pos(lev)
  263.  
  264. local s = select(gameforge.levelup._160_select)
  265.  
  266. if s == 1 then
  267. setskin(NOWINDOW)
  268. pc.setqf("remain",special.levelup_quest[lev][sel*2])
  269. syschat(string.format(gameforge.levelup._170_chat, mob_name(special.levelup_quest[lev][sel*2-1])," ".. special.levelup_quest[lev][sel*2]))
  270. q.set_title(string.format(gameforge.levelup._180_qSetTitle, mob_name(special.levelup_quest[lev][sel*2-1])))
  271. q.set_counter(gameforge.levelup._250_say, pc.getqf("remain"))
  272. q.start()
  273. end
  274.  
  275. setskin(NOWINDOW)
  276. clearmapsignal()
  277.  
  278. elseif pc.getqf("buttonstate") == 1 then
  279.  
  280. local s = pc.getqf("select")
  281. if s == 0 then s = 1 end
  282.  
  283. local lev = pc.getqf("current")
  284.  
  285. if lev != 0 then
  286. say_title(gameforge.levelup._140_sayTitle)
  287. say(string.format(gameforge.levelup._190_say, pc.getqf("remain")..gameforge.levelup._195_say..mob_name(special.levelup_quest[lev][s*2-1])))
  288. local ss = select(gameforge.levelup._200_select, gameforge.locale.levelup.prev_quest_go)
  289.  
  290.  
  291. if ss == 1 then
  292. setskin(SCROLL)
  293. setbgimage('level_bg.tga')
  294. say("")
  295. say("")
  296. say("")
  297. addimage(20,12,special.levelup_img[special.levelup_quest[lev][s*2-1]])
  298. setcolor(0,0,0)
  299.  
  300. say(string.format(gameforge.levelup._20_say,mob_name(special.levelup_quest[lev][s*2-1])))
  301. say(string.format(gameforge.levelup._26_say,special.levelup_quest[lev][s*2]))
  302.  
  303. raw_script(string.format(gameforge.levelup._27_say,special.levelup_quest[lev][5]))
  304.  
  305. say("")
  306.  
  307. if lev <= table.getn(special.levelup_reward1) then
  308. raw_script(","..item_name(special.levelup_reward1[lev][pc.job+1]))
  309. elseif lev> table.getn(special.levelup_reward1) and lev < 26 then
  310. raw_script(","..locale.levelup.random_item)
  311. end
  312.  
  313. if lev>=21 then
  314. raw_script(","..locale.gold)
  315. end
  316.  
  317. raw_script(newline)
  318.  
  319. select(gameforge.locale.confirm)
  320. setskin(NOWINDOW)
  321. clearmapsignal()
  322.  
  323. end
  324.  
  325. setskin(NOWINDOW)
  326. q.set_title(string.format(gameforge.levelup._180_qSetTitle, mob_name(special.levelup_quest[lev][s*2-1])))
  327. q.set_counter(gameforge.levelup._250_say,pc.getqf("remain"))
  328. q.start()
  329. end
  330. end
  331.  
  332. pc.setqf("buttonstate", -1)
  333. end
  334.  
  335. when levelup begin
  336. local lev = pc.getqf("current");
  337.  
  338. if lev == 0 then
  339. lev = pc.level
  340.  
  341.  
  342. if lev < 2 or lev > 90 then return end
  343.  
  344. pc.setqf("buttonstate", 2)
  345. makequestbutton(string.format(gameforge.levelup._10_makequestbutton, lev))
  346. pc.setqf("current", lev)
  347. pc.setqf("select", 1)
  348. pc.setqf("remain", special.levelup_quest[lev][2])
  349. setskin(NOWINDOW)
  350. end
  351. end
  352.  
  353. when kill begin
  354. local sel = pc.getqf("select")
  355.  
  356. if sel == 0 then
  357. sel = 1
  358. end
  359.  
  360. local lev = pc.getqf("current")
  361.  
  362. if lev != 0 and npc.race == (special.levelup_quest[lev][sel*2-1]) and pc.getqf("buttonstate") == -1 then
  363. local remain = pc.getqf("remain") - 1
  364.  
  365. if remain <= 0 then
  366. pc.setqf("remain", 0)
  367. q.set_counter_value(0)
  368. setskin(NOWINDOW)
  369. makequestbutton(string.format(gameforge.levelup._50_sayTitle, lev))
  370. pc.setqf("buttonstate", 3)
  371. else
  372. pc.setqf("remain", remain)
  373. q.set_counter_value(remain)
  374. end
  375. end
  376. end
  377.  
  378. function show_mob_pos(lev)
  379. map_index = pc.get_map_index()
  380.  
  381. if map_index <= 0 then
  382. test_chat(string.format(gameforge.levelup._210_chat, map_index))
  383. return
  384. end
  385.  
  386. if map_index > table.getn(special.lvq_map) then
  387. test_chat(string.format(gameforge.levelup._220_chat, map_index..") > max("..table.getn(special.lvq_map)))
  388. return
  389. end
  390.  
  391. lev_quest_list = special.lvq_map[map_index]
  392. if not lev_quest_list then
  393. test_chat(string.format(gameforge.levelup._230_chat, map_index))
  394. return
  395. end
  396.  
  397. mob_pos_list = lev_quest_list[lev]
  398. if not mob_pos_list then
  399. test_chat(string.format(gameforge.levelup._230_chat, map_index..")][lev("..lev))
  400. return
  401. end
  402.  
  403. table.foreachi(
  404. mob_pos_list,
  405. function (n, mob_pos)
  406. test_chat(string.format(gameforge.levelup._240_chat, mob_pos[1],mob_pos[2]))
  407. addmapsignal(mob_pos[1]*100, mob_pos[2]*100)
  408. end
  409. )
  410. setmapcenterposition(200, 0)
  411. end
  412. end
  413. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement