Guest User

Untitled

a guest
Dec 4th, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.62 KB | None | 0 0
  1. quest biolog begin
  2. state start begin
  3. function settings()
  4. return {
  5. ['Poziom'] = {1, 15, 30, 50, 75, 100, 125, 150},
  6. ['Tytul'] = {
  7. [1] = {"Analiza Biologa - Nefryty"},
  8. [15] = {"Analiza Biologa - Magiczne Pylki"},
  9. [30] = {"Analiza Biologa - Haczyki"},
  10. [50] = {"Analiza Biologa - Fioletowe Luski"},
  11. [75] = {"Analiza Biologa - Diamenty"},
  12. [100] = {"Analiza Biologa - Mroczne Zwoje"},
  13. [125] = {"Analiza Biologa - Ogniste Kamienie"},
  14. [150] = {"Analiza Biologa - Szpony"},
  15. },
  16. ['Szukany'] = {
  17. [1] = {['vnum'] = 30006, ['count'] = 10},
  18. [15] = {['vnum'] = 30047, ['count'] = 15},
  19. [30] = {['vnum'] = 30015, ['count'] = 20},
  20. [50] = {['vnum'] = 30050, ['count'] = 30},
  21. [75] = {['vnum'] = 30165, ['count'] = 40},
  22. [100] = {['vnum'] = 30166, ['count'] = 50},
  23. [125] = {['vnum'] = 30167, ['count'] = 60},
  24. [150] = {['vnum'] = 30168, ['count'] = 20},
  25. },
  26. ['Potwory'] = {
  27. [1] = {101, 102, 103, 104, 105, 106, 107, 171, 172, 173, 174, 175, 176, 177},
  28. [15] = {401, 402, 403, 431, 432, 551, 552},
  29. [30] = {12, 13, 14, 15},
  30. [50] = {1107, 1137},
  31. [75] = {3001, 3002, 3003, 3004, 3005},
  32. [100] = {3701, 3702, 3703, 3704, 3705},
  33. [125] = {3555, 3554, 3553, 3552, 3551},
  34. [150] = {17},
  35. },
  36. ['DropItem'] = {
  37. [1] = {['canDrop'] = false, ['prob'] = 1},
  38. [15] = {['canDrop'] = false, ['prob'] = 1},
  39. [30] = {['canDrop'] = false, ['prob'] = 1},
  40. [50] = {['canDrop'] = false, ['prob'] = 1},
  41. [75] = {['canDrop'] = false, ['prob'] = 1},
  42. [100] = {['canDrop'] = true, ['prob'] = 5},
  43. [125] = {['canDrop'] = true, ['prob'] = 5},
  44. [150] = {['canDrop'] = true, ['prob'] = 90},
  45. },
  46. ['duration'] = {
  47. [1] = 0,
  48. [15] = 0,
  49. [30] = 60*10,
  50. [50] = 60*30,
  51. [75] = 60*45,
  52. [100] = 60*60,
  53. [125] = 60*60*3,
  54. [150] = 60*60*5,
  55. },
  56. ['ProbItem'] = {
  57. [1] = {['n'] = 40, ['y'] = 100},
  58. [15] = {['n'] = 40, ['y'] = 100},
  59. [30] = {['n'] = 40, ['y'] = 100},
  60. [50] = {['n'] = 40, ['y'] = 100},
  61. [75] = {['n'] = 40, ['y'] = 100},
  62. [100] = {['n'] = 40, ['y'] = 100},
  63. [125] = {['n'] = 40, ['y'] = 100},
  64. [150] = {['n'] = 65, ['y'] = 100},
  65. },
  66. ['Kamien'] = {
  67. [1] = 30220,
  68. [15] = 30221,
  69. [30] = 30222,
  70. [50] = 30223,
  71. [75] = 30224,
  72. [100] = 30225,
  73. [125] = 30226,
  74. [150] = 30227,
  75. },
  76. ['StoneProb'] = {
  77. [1] = 3,
  78. [15] = 2,
  79. [30] = 1,
  80. [50] = 1,
  81. [75] = 1,
  82. [100] = 1,
  83. [125] = 1,
  84. [150] = 60,
  85. },
  86. ['NagrodaBonus'] = {
  87. [1] = {
  88. {['aff'] = 560, ['nazwa'] = "+50 Obrony ", ['vnum'] = 54, ['count'] = 50},
  89. {['aff'] = 568, ['nazwa'] = "+5% Szansy Na Krytyczne Uderzenie ", ['vnum'] = 15, ['count'] = 5},
  90. },
  91. [15] = {
  92. {['aff'] = 561, ['nazwa'] = "+15% Predkosci Poruszania Sie ", ['vnum'] = 8, ['count'] = 15},
  93. {['aff'] = 569, ['nazwa'] = "+5% Szansy Na Przeszywajace Uderzenie ", ['vnum'] = 16, ['count'] = 5},
  94. },
  95. [30] = {
  96. {['aff'] = 562, ['nazwa'] = "+20% Regeneracji HP ", ['vnum'] = 10, ['count'] = 20},
  97. {['aff'] = 570, ['nazwa'] = "+6% Szansy Na Otrucie ", ['vnum'] = 12, ['count'] = 6},
  98. },
  99. [50] = {
  100. {['aff'] = 563, ['nazwa'] = "+2000 Max HP ", ['vnum'] = 1, ['count'] = 2000},
  101. {['aff'] = 571, ['nazwa'] = "+100 Wartosci Ataku", ['vnum'] = 8, ['count'] = 15},
  102. },
  103. [75] = {
  104. {['aff'] = 564, ['nazwa'] = "+20% Szybkosci Zaklecia ", ['vnum'] = 9, ['count'] = 20},
  105. {['aff'] = 572, ['nazwa'] = "+100 Wartosci Ataku Magicznego ", ['vnum'] = 55, ['count'] = 100},
  106. {['aff'] = 573, ['nazwa'] = "+10% Silny Przeciwko Potworom ", ['vnum'] = 63, ['count'] = 10},
  107. },
  108. [100] = {
  109. {['aff'] = 565, ['nazwa'] = "+15% Silny Przeciwko Ludziom ", ['vnum'] = 17, ['count'] = 15},
  110. {['aff'] = 574, ['nazwa'] = "+10% Odpornosci Na Trucizne ", ['vnum'] = 41, ['count'] = 10%},
  111. },
  112. [125] = {
  113. {['aff'] = 566, ['nazwa'] = "+10% Odpornosci Na Wojowników", ['vnum'] = 78, ['count'] = 10},
  114. {['aff'] = 575, ['nazwa'] = "+10% Odpornosci Na Sury ", ['vnum'] = 79, ['count'] = 10},
  115. {['aff'] = 576, ['nazwa'] = "+10% Odpornosci Na Ninje", ['vnum'] = 80, ['count'] = 10},
  116. {['aff'] = 577, ['nazwa'] = "+10% Odpornosci Na Szamanów", ['vnum'] = 81, ['count'] = 10},
  117. {['aff'] = 578, ['nazwa'] = "+10% Szansy Na Blok Ciosów ", ['vnum'] = 39, ['count'] = 10},
  118. },
  119. [150] = {
  120. {['aff'] = 567, ['nazwa'] = "+7% Obrazen Umiejetnosci ", ['vnum'] = 71, ['count'] = 7},
  121. {['aff'] = 567, ['nazwa'] = "+15% Srednich Obrazen ", ['vnum'] = 72, ['count'] = 15},
  122. },
  123. },
  124. ['NagrodaYang'] = {
  125. [1] = {true, 200000, "200.000"},
  126. [15] = {true, 500000, "500.000"},
  127. [30] = {true, 1500000, "1.500.000"},
  128. [50] = {true, 5000000, "5.000.000"},
  129. [75] = {true, 75000000, "7.500.000"},
  130. [100] = {true, 10000000, "10.000.000"},
  131. [125] = {true, 20000000, "20.000.000"},
  132. [150] = {true, 50000000, "50.000.000"},
  133. },
  134. ['NagrodaExp'] = {
  135. [1] = {true, 6000, "6.000"},
  136. [15] = {true, 25000, "25.000"},
  137. [30] = {true, 150000, "150.000"},
  138. [50] = {true, 3500000, "3.500.000"},
  139. [75] = {true, 15000000, "15.000.000"},
  140. [100] = {true, 6500000, "65.000.000"},
  141. [125] = {true, 250000000, "250.000.000"},
  142. [150] = {true, 0, "0"},
  143. },
  144. ['NagrodaItem'] = {
  145. [1] = {
  146. ['job_rew'] = {true, 11229,11429,11629,11829},
  147. ['adma'] = {
  148. {0,0},
  149. },
  150. },
  151. [15] = {
  152. ['job_rew'] = {false, 0,0,0,0},
  153. ['adma'] = {
  154. {0,0},
  155. },
  156. },
  157. [30] = {
  158. ['job_rew'] = {false, 0,0,0,0},
  159. ['adma'] = {
  160. {0,0},
  161. },
  162. },
  163. [50] = {
  164. ['job_rew'] = {false, 0,0,0,0},
  165. ['adma'] = {
  166. {0,0},
  167. },
  168. },
  169. [75] = {
  170. ['job_rew'] = {false, 0,0,0,0},
  171. ['adma'] = {
  172. {0,0},
  173. },
  174. },
  175. [100] = {
  176. ['job_rew'] = {false, 0,0,0,0},
  177. ['adma'] = {
  178. {0,0},
  179. },
  180. },
  181. [125] = {
  182. ['job_rew'] = {false, 0,0,0,0},
  183. ['adma'] = {
  184. {0,0},
  185. },
  186. },
  187. [150] = {
  188. ['job_rew'] = {false, 0,0,0,0},
  189. ['adma'] = {
  190. {0,0},
  191. },
  192. },
  193. },
  194. }
  195. end
  196. when login or levelup or levelup begin
  197. local settings = biolog.settings()
  198. if pc.get_level() >= settings.Poziom[pc.getqf("biologMisja")+1] then
  199. pc.setqf("biologPoziom", settings.Poziom[pc.getqf("biologMisja")+1])
  200. set_state(rozmowa)
  201. end
  202. end
  203. end
  204.  
  205. state rozmowa begin
  206. when letter begin
  207. local settings = biolog.settings()
  208. target.vid("__TARGET__", find_npc_by_vnum(20084), "AnalizaBiologa")
  209. send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
  210. end
  211.  
  212. when info or button begin
  213. local settings = biolog.settings()
  214. say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
  215. say()
  216. say("Biolog Chaegirab, uczeñ Baek-Goa,")
  217. say("w³aœnie Cie szuka³. Proszê idŸ ")
  218. say("do niego i zaoferuj mu swojı pomoc.")
  219. say()
  220. end
  221.  
  222. when __TARGET__.target.click or 20084.chat."ZnajdŸ Biologa" begin
  223. local settings = biolog.settings()
  224. target.delete("__TARGET__")
  225. say("Biolog Chaegirab:")
  226. say("Niebiosa, proszê pomóż mi... ")
  227. say("Badam wszystkie rodzaje roœlin w tym ")
  228. say("imperium. Jest bardzo dużo rzeczy, ")
  229. say("które muszı zostaĉ zbadane. Nie mam ")
  230. say("czasu abym móg³ sam wybraĉ siê na wyprawê. ")
  231. say("Proszê, pomóż mi. ")
  232. wait()
  233. say("Aktualnie celem moich badañ jest")
  234. say_item_vnum(settings.Szukany[pc.getqf("biologPoziom")].vnum)
  235. say("Muszê przeprowadziĉ kilka eksperymentów,")
  236. say("dlatego potrzebuje egzemplarzy tego przedmiotu.")
  237. say("Przynieœ mi ".. settings.Szukany[pc.getqf("biologPoziom")].count .." tego przedmiotu.")
  238. say("")
  239. set_state(wydrop)
  240. end
  241. end
  242.  
  243. state wydrop begin
  244. when letter begin
  245. local settings = biolog.settings()
  246. send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
  247. end
  248.  
  249. when info or button begin
  250. local settings = biolog.settings()
  251. say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
  252. say()
  253. say("Aktualnie szukany przedmiot:")
  254. say_item_vnum(settings.Szukany[pc.getqf("biologPoziom")].vnum)
  255. say("Pozosta³a iloœĉ do oddania: ".. ((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")))
  256. say()
  257. end
  258.  
  259. when kill with not npc.is_pc() begin
  260. local settings = biolog.settings()
  261. if settings.DropItem[pc.getqf("biologPoziom")].canDrop then
  262. if table_is_in(settings.Potwory[pc.getqf("biologPoziom")], npc.get_race()) then
  263. if number(1,100) <= settings.DropItem[pc.getqf("biologPoziom")].prob then
  264. game.drop_item_with_ownership(settings.Szukany[pc.getqf("biologPoziom")].vnum)
  265. end
  266. end
  267. end
  268. end
  269.  
  270. when 71035.use or 76020.use or 70021.use begin
  271. if get_time() < pc.getqf("limitCzasowy") and pc.getqf("eliksirPoszukiwacza") < 1 then
  272. pc.setqf("limitCzasowy", 0)
  273. pc.setqf("eliksirPoszukiwacza", 1)
  274. chat("Możesz już oddaĉ przedmiot biologowi!")
  275. syschat("B³ogos³awieñstwo Anio³a zostaje usuniête!")
  276. pc.remove_item(item.get_vnum(), 1)
  277. else
  278. syschat("Nie możesz użyĉ teraz tego przedmiotu.")
  279. return
  280. end
  281. end
  282.  
  283. when 20084.chat."Oddaj przedmiot!" begin
  284. local settings = biolog.settings()
  285. if pc.count_item(settings.Szukany[pc.getqf("biologPoziom")].vnum) == 0 then
  286. say_title("Biolog Chaegirab:")
  287. say()
  288. say("Nie przy sobie odpowiedniego przedmiotu.")
  289. return
  290. end
  291.  
  292. if pc.getqf("limitCzasowy") > get_time() then
  293. local time = (pc.getqf("limitCzasowy")-get_time())/3600
  294. local h = math.floor(time)
  295. local min = (time-h)*60
  296. local m = math.floor(min)
  297. say_title("Biolog Chaegirab:")
  298. say()
  299. say("Możesz oddac przedmiot za "..h.." godzin, "..m.." minut.")
  300. say()
  301. return
  302. end
  303. say_title("Biolog Chaegirab:")
  304. say()
  305. say("Oh! Znalaz³eœ obiekt moich ostatnich badañ...")
  306. say("Pozwól, że rzucê na niego okiem.")
  307. say("Poczekaj jeszcze chwilkê.")
  308. say("")
  309. pc.remove_item(settings.Szukany[pc.getqf("biologPoziom")].vnum, 1)
  310. wait()
  311. local szansa
  312. if pc.getqf("eliksirPoszukiwacza") == 1 then
  313. szansa = settings.ProbItem[pc.getqf("biologPoziom")].y
  314. pc.setqf("eliksirPoszukiwacza", 0)
  315. else
  316. szansa = settings.ProbItem[pc.getqf("biologPoziom")].n
  317. end
  318. if number(1,100) <= szansa then
  319. say_title("Biolog Chaegirab:")
  320. say()
  321. say_green("Ten przedmiot jest doskona³ej jakoœci.")
  322. say("Dziêkujê Ci bardzo!")
  323. say()
  324. pc.setqf("oddanaIlosc", pc.getqf("oddanaIlosc")+1)
  325. if pc.getqf("oddanaIlosc") == settings.Szukany[pc.getqf("biologPoziom")].count then
  326. say("To już wszystkie przedmioty, które potrzebowa³em!")
  327. say("Jednak do ukoñczenia badañ potrzebujê jeszcze jednego przedmiotu...")
  328. say_item_vnum(settings.Kamien[pc.getqf("biologPoziom")])
  329. say("Powodzenia w poszukiwaniach!")
  330. say()
  331. pc.setqf("oddanaIlosc", 0)
  332. pc.setqf("limitCzasowy", 0)
  333. set_state(kamien)
  334. else
  335. say("Potrzebujê jeszcze "..((settings.Szukany[pc.getqf("biologPoziom")].count)-pc.getqf("oddanaIlosc")).." sztuk.")
  336. say()
  337. pc.setqf("limitCzasowy", get_time()+settings.duration[pc.getqf("biologPoziom")])
  338. say("Liczê na Ciebie!")
  339. end
  340. else
  341. say_title("Biolog Chaegirab:")
  342. say()
  343. say_red("Wybacz, ale ten przedmiot jest zbyt zniszczony.")
  344. say()
  345. return
  346. end
  347. end
  348. end
  349.  
  350. state kamien begin
  351. when letter begin
  352. local settings = biolog.settings()
  353. send_letter(settings.Tytul[pc.getqf("biologPoziom")][1])
  354. end
  355.  
  356. when info or button begin
  357. local settings = biolog.settings()
  358. say_title(settings.Tytul[pc.getqf("biologPoziom")][1])
  359. say()
  360. say("Aktualnie szukany przedmiot:")
  361. say_item_vnum(settings.Kamien[pc.getqf("biologPoziom")])
  362. say()
  363. end
  364.  
  365. when kill with not npc.is_pc() begin
  366. local settings = biolog.settings()
  367. if table_is_in(settings.Potwory[pc.getqf("biologPoziom")], npc.get_race()) then
  368. if number(1,100) <= settings.StoneProb[pc.getqf("biologPoziom")] then
  369. game.drop_item_with_ownership(settings.Kamien[pc.getqf("biologPoziom")])
  370. end
  371. end
  372. end
  373. when 20084.chat."Oddaj przedmiot!" begin
  374. local settings = biolog.settings()
  375. if pc.count_item(settings.Kamien[pc.getqf("biologPoziom")]) < 1 then
  376. say_title("Biolog Chaegirab:")
  377. say()
  378. say("Nie przy sobie odpowiedniego przedmiotu.")
  379. return
  380. end
  381.  
  382. say_title("Biolog Chaegirab:")
  383. say()
  384. say("Oh! Znalaz³eœ obiekt moich ostatnich badañ...")
  385. say("Nie wiem jak mogê Ci siê odwdziêczyĉ...")
  386. say("Mam nadziejê, że ta nagroda Cie usatysfakcjonuje.")
  387. say("")
  388. pc.remove_item(settings.Kamien[pc.getqf("biologPoziom")], 1)
  389. if settings.NagrodaYang[pc.getqf("biologPoziom")][1] == true then
  390. pc.change_gold(settings.NagrodaYang[pc.getqf("biologPoziom")][2])
  391. say_reward("Otrzyma³eœ "..settings.NagrodaYang[pc.getqf("biologPoziom")][3].." Yang.")
  392. end
  393. if settings.NagrodaExp[pc.getqf("biologPoziom")][1] then
  394. pc.give_exp2(settings.NagrodaExp[pc.getqf("biologPoziom")][2])
  395. say_reward("Otrzyma³eœ "..settings.NagrodaExp[pc.getqf("biologPoziom")][3].." Punktów Doœwiadczenia.")
  396. end
  397. if settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[1] then
  398. say_reward("Otrzyma³eœ "..item_name(settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[pc.get_job()+2]))
  399. pc.give_item2(settings.NagrodaItem[pc.getqf("biologPoziom")].job_rew[pc.get_job()+2], 1)
  400. end
  401. for i = 1, table.getn(settings.NagrodaItem[pc.getqf("biologPoziom")].adma) do
  402. say_reward("Otrzyma³eœ "..item_name(settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][1]))
  403. pc.give_item2(settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][1], settings.NagrodaItem[pc.getqf("biologPoziom")].adma[i][2])
  404. end
  405. for i = 1, table.getn(settings.NagrodaBonus[pc.getqf("biologPoziom")]) do
  406. say_reward("Otrzyma³eœ bonus: "..settings.NagrodaBonus[pc.getqf("biologPoziom")][i].nazwa)
  407. affect.add_new_bonus(settings.NagrodaBonus[pc.getqf("biologPoziom")][i].aff, settings.NagrodaBonus[pc.getqf("biologPoziom")][i].vnum, settings.NagrodaBonus[pc.getqf("biologPoziom")][i].count, 60*60*24*365*60)
  408. end
  409. pc.setqf("biologMisja", pc.getqf("biologMisja")+1)
  410. clear_letter()
  411. set_state(start)
  412. end
  413. end
  414. end
Advertisement
Add Comment
Please, Sign In to add comment