Guest User

Untitled

a guest
Feb 11th, 2014
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.43 KB | None | 0 0
  1. quest training_grandmaster_skill begin
  2. state start begin
  3. when 40004.use begin
  4. say_title("Kamien[??°?µ???] Duchowy")
  5.  
  6. if pc.get_skill_group() == 0 then
  7. say("Nie wybrales jeszcze swojej drogi duchowej!"..pc.get_skill_group())
  8. return
  9. end
  10.  
  11. if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
  12. if pc.is_skill_book_no_delay() then
  13. say("Uczenie sie spowoduje usuniecie")
  14. say("efektu Zwoju Egzorcyzmu")
  15. say("")
  16. wait()
  17. say_title("Kamien[??°?µ???] Duchowy")
  18. else
  19. say("Musisz poczekac 24h lub uzyc Zwoju egzorcyzmu zanim bedziesz szkolil swoje umiejetnosci ponownie!")
  20. return
  21. end
  22. end
  23.  
  24. local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
  25.  
  26. local vnum_list = result[1]
  27. local name_list = result[2]
  28.  
  29. if table.getn(vnum_list) == 0 then
  30. say("Nie masz zadnych umiejetnosci do szkolenia![??°?µ???]")
  31. return
  32. end
  33.  
  34. say("Wybierz umiejetnosc [??°?µ???]ktora chcesz szkolic")
  35. say("")
  36.  
  37. local menu_list = {}
  38. table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
  39. table.insert(menu_list, "Anuluj")
  40.  
  41. local s=select_table(menu_list)
  42. if table.getn(menu_list) == s then
  43. return
  44. end
  45.  
  46. local skill_name=name_list[s]
  47. local skill_vnum=vnum_list[s]
  48. local skill_level = pc.get_skill_level(skill_vnum)
  49. local cur_alignment = pc.get_real_alignment()
  50. local need_alignment = 1000+500*(skill_level-30)
  51.  
  52. test_chat("Ranga: "..cur_alignment)
  53. test_chat("Potrzebujesz punktow rangi: "..need_alignment)
  54.  
  55. local title=string.format("Szkolenie umiejetnosci %s", skill_name)
  56.  
  57. say_title(title)
  58. say("Czy chcesz szkolic ta umiejetnosc?")
  59. say("Szkolenie odbierze twoje punkty dobra!")
  60. say("")
  61.  
  62. if cur_alignment<-19000+need_alignment then
  63. say_reward("Nie masz wystarczajaco duzo rangi!")
  64. return
  65. end
  66.  
  67. if cur_alignment<0 then
  68. say_reward(string.format("Potrzebujesz: %d -> %d punktow rangi!", need_alignment, need_alignment*2))
  69. say_reward("Jesli szkolenie powiedzie sie, zostanie odebrane 2x wiecej punktow!")
  70. need_alignment=need_alignment*2
  71. elseif cur_alignment<need_alignment then
  72. say_reward(string.format("Potrzebujesz: %d punktow rangi", need_alignment))
  73. say_reward("")
  74. else
  75. say_reward(string.format("Potrzebujesz: %d punktow rangi", need_alignment))
  76. end
  77. say("")
  78.  
  79. local s=select("Kontynuuj")
  80. if s==2 then
  81. return
  82. end
  83.  
  84.  
  85. if cur_alignment>=0 and cur_alignment<need_alignment then
  86. say_title(string.format("%s", title))
  87. say("Niestety, twoje punkty rangi")
  88. say("sa na minusie.")
  89. say("Aby szkolic umiejetnosc musisz")
  90. say("wpisac w to pole:")
  91. say("")
  92. say_reward("Trenuj")
  93. say("")
  94. say("UWAGA! Duze litery sie licza!")
  95. local s=input()
  96. if s!="Trenuj" then
  97. return
  98. end
  99. end
  100.  
  101. if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
  102. if pc.is_skill_book_no_delay() then
  103. pc.remove_skill_book_no_delay()
  104. else
  105. say("[°???µ???]§???­×?m??»~: ???§¤¤")
  106. return
  107. end
  108. end
  109.  
  110. pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
  111.  
  112. if need_alignment>0 then
  113. if pc.learn_grand_master_skill(skill_vnum) then
  114. pc.change_alignment(-need_alignment)
  115.  
  116.  
  117. say_title(string.format("%s", title))
  118. if 40 == pc.get_skill_level(skill_vnum) then
  119. say(string.format("%s [°???µ???]", skill_name))
  120. else
  121. say(string.format("[°???µ???]", skill_name, skill_level-30+1+1))
  122. end
  123. say("")
  124. say_reward("Udalo sie, twoja umiejetnosci zostala wyszkolona!")
  125. say_reward(string.format("Zostalo odjetych %d punktow rangi.", need_alignment))
  126. say("")
  127. else
  128. say_title(string.format("%s", title))
  129. say("Nie udalo sie!")
  130. say("")
  131. say_reward("Zadne punkty rangi nie zostaly odebrane!")
  132. say("")
  133. pc.change_alignment(-number(need_alignment/3, need_alignment/2))
  134. end
  135. end
  136.  
  137. item.remove()
  138. end
  139. function BuildGrandMasterSkillList(job, group)
  140. GRAND_MASTER_SKILL_LEVEL = 30
  141. PERFECT_MASTER_SKILL_LEVEL = 40
  142.  
  143. local skill_list = special.active_skill_list[job+1][group]
  144. local ret_vnum_list = {}
  145. local ret_name_list = {}
  146.  
  147. -- test_chat(string.format("job=%d, group=%d", job, group))
  148.  
  149. table.foreach(skill_list,
  150. function(i, skill_vnum)
  151. local skill_level = pc.get_skill_level(skill_vnum)
  152.  
  153. -- test_chat(string.format("[%d]=%d", skill_vnum, skill_level))
  154. if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
  155.  
  156. table.insert(ret_vnum_list, skill_vnum)
  157. local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
  158. if name == nil then name=skill_vnum end
  159. table.insert(ret_name_list, name)
  160. end
  161. end)
  162. return {ret_vnum_list, ret_name_list}
  163.  
  164.  
  165. --return {ret_vnum_list, ret_name_list}
  166. end
  167. end
  168. end
Advertisement
Add Comment
Please, Sign In to add comment