Guest User

Untitled

a guest
Sep 23rd, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.38 KB | None | 0 0
  1. quest train_master_skill begin
  2. state start begin
  3. when 30182.use begin
  4. say_title("Zaawansowane Szkolenie Umiejętności")
  5. if pc.get_skill_group() == 0 then
  6. say_title("Zaawansowane Szkolenie Umiejętności")
  7. say("Nie wybrałeś jeszcze drogi duchowej."..pc.get_skill_group())
  8. return
  9. end
  10. if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
  11. if pc.is_skill_book_no_delay() then
  12. say("Trening spowoduje usunięcie efektu")
  13. say("Zwoju Egzorcyzmu.")
  14. wait()
  15. say_title("Zaawansowane Szkolenie Umiejętności")
  16. else
  17. say("Musisz użyć Zwoju Egzorcyzmu zanim ponownie")
  18. say("rozpoczniesz trening przed upływem 8 godzin.")
  19. return
  20. end
  21. end
  22. local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
  23. local vnum_list = result[1]
  24. local name_list = result[2]
  25. if table.getn(vnum_list) == 0 then
  26. say("Nie możesz trenować żadnej umiejętności.")
  27. return
  28. end
  29. say("Proszę wybrać umiejętność, którą chcesz trenować.")
  30. say("")
  31. local menu_list = {}
  32. table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
  33. table.insert(menu_list, "Anuluj")
  34. local s=select_table(menu_list)
  35. if table.getn(menu_list) == s then
  36. return
  37. end
  38. local skill_name=name_list[s]
  39. local skill_vnum=vnum_list[s]
  40. local skill_level = pc.get_skill_level(skill_vnum)
  41. local cur_alignment = pc.get_real_alignment()
  42. local need_alignment = 100+50*(skill_level-20)
  43. test_chat("˛{¦bµ˝´c­Č: "..cur_alignment)
  44. test_chat("»Ý­nµ˝´c­Č: "..need_alignment)
  45. local title=string.format("Trening %s Wielki Mistrz", skill_name)
  46. say_title(title)
  47. say("Jeśli będziesz używać swoich punktów rangi")
  48. say("podczas treningu Umiejętności, może się zdarzyć,")
  49. say("że twoja Ranga stanie się negatywna.")
  50. if cur_alignment<-19000+need_alignment then
  51. say_reward("Nie masz wystarczającej ilości punktów Rangi.")
  52. return
  53. end
  54. if cur_alignment<0 then
  55. say_reward(string.format("Wymagane punkty rangi: %d -> %d", need_alignment, need_alignment*2))
  56. say_reward("Jeśli trening zakończy się powodzeniem,")
  57. say_reward("zużyjesz 2 razy więcej punktów Rangi.")
  58. need_alignment=need_alignment*2
  59. elseif cur_alignment<need_alignment then
  60. say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
  61. say_reward("Jeśli będziesz teraz trenować, twoja ranga")
  62. say_reward("stanie się negatywna.")
  63. else
  64. say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
  65. end
  66. say("")
  67. local s=select("Dalej", "Anuluj")
  68. if s==2 then
  69. return
  70. end
  71. if cur_alignment>=0 and cur_alignment<need_alignment then
  72. say_title(title)
  73. say_reward("Kontynuuj")
  74. say("Jeśli będziesz kontynuował trening umiejętności,")
  75. say("możliwe jest, że twoje punkty rangi przyjmą ")
  76. say("wartość ujemną i będziesz miał negatywną Rangę.")
  77. say("Jeśli chcesz kontynuować, wpisz poniżej słowo")
  78. say("")
  79. say_reward("Trenuj")
  80. say("Jeżeli nie chcesz już trenować, wciśnij 'ENTER'.")
  81. local s=input()
  82. if s!="Trenuj" then
  83. return
  84. end
  85. end
  86. if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
  87. if pc.is_skill_book_no_delay() then
  88. pc.remove_skill_book_no_delay()
  89. else
  90. say("[°ŞŻĹµĄŻĹ]§ŢŻŕ­×˝mżů»~: Ąđ®§¤¤")
  91. return
  92. end
  93. end
  94. pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
  95. if need_alignment>0 then
  96. if pc.learn_grand_master_skill(skill_vnum) then
  97. pc.change_alignment(-need_alignment)
  98. say_title(title)
  99. if 30 == pc.get_skill_level(skill_vnum) then
  100. say_reward("Powodzenie!")
  101. say("Gratulacje! Udało się!")
  102. say(string.format("%s jest teraz na poziomie Mistrz.", skill_name))
  103. say("To oznacza, że osiągnąłeś poziom Wielkiego Mistrza tej")
  104. say("umiejętności. Dalsze jej szkolenie jest")
  105. say("niemożliwe.")
  106. else
  107. say_reward("Powodzenie!")
  108. say("Gratulacje! Udało się!")
  109. say(string.format("%s jest teraz na poziomie Mistrz.", skill_name))
  110. end
  111. say_reward("Pomyślnie podnisłeś poziom!")
  112. say_reward(string.format("Zużyłeś %d punktów rangi.", need_alignment))
  113. say("")
  114. else
  115. say_title(title)
  116. say_reward("Niepowodzenie!")
  117. say("Nie udało się ulepszyć umiejętności.")
  118. say_reward("Straciłeś trochę punktów rangi.")
  119. say("")
  120. pc.change_alignment(-number(need_alignment/3, need_alignment/2))
  121. end
  122. end
  123. item.remove()
  124. end
  125. function BuildGrandMasterSkillList(job, group)
  126. GRAND_MASTER_SKILL_LEVEL = 20
  127. PERFECT_MASTER_SKILL_LEVEL = 30
  128. local skill_list = special.active_skill_list[job+1][group]
  129. local ret_vnum_list = {}
  130. local ret_name_list = {}
  131. table.foreach(skill_list,
  132. function(i, skill_vnum)
  133. local skill_level = pc.get_skill_level(skill_vnum)
  134. if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
  135. table.insert(ret_vnum_list, skill_vnum)
  136. local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
  137. if name == nil then name=skill_vnum end
  138. table.insert(ret_name_list, name)
  139. end
  140. end)
  141. return {ret_vnum_list, ret_name_list}
  142. end
  143. end
  144. end
Advertisement
Add Comment
Please, Sign In to add comment