JachuPL

hunting.quest

Oct 27th, 2013
925
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.66 KB | None | 0 0
  1. quest hunting begin
  2.     state start begin
  3.         function setting()
  4.             return {
  5.                 ["hTytul"] = "Łowiectwo",
  6.                 ["hOpis1"] = "Udaj się na łowy, aby podszkolić się w bezlitosnym",
  7.                 ["hOpis2"] = "zabijaniu równie bezlitosnych potworów!",
  8.                 ["hOpis3"] = "Na każdy poziom postaci możesz wybrać spośród ",
  9.                 ["hOpis4"] = "czterech potworów, które chcesz zabić.",
  10.                 ["hOpis5"] = "Za wykonanie misji czeka nagroda. Śpiesz się.",
  11.                 ["hOpis6"] = "Udaj się do Yang-Shin, aby zacząć się szkolić!.",
  12.                 ["hDisc1"] = "Yang-Shin wysłał Cię na polowanie.[ENTER]Twoim celem jest:",
  13.                 ["hDisc2a"] = "Musisz zabić jeszcze",
  14.                 ["hDisc2b"] = "takich[ENTER]potworów",
  15.                 ["hDisc3"] = "Do tej pory uśmierciłeś ",
  16.                 ["hNagTytul"] = "Nagroda",
  17.                 ["hNag1"] = "Za wykonanie zadania masz prawo wybrać jedną z dwóch nagród.",
  18.                 ["hNag2"] = "Wybierz mądrze.",
  19.                 ["hYouCant1"] = "Nie mogę Ci dać kolejnej misji. Musisz najpierw się trochę podszkolić!",
  20.                 ["hYouCant2"] = "Wróć, gdy osiągniesz kolejny poziom doświadczenia.",
  21.                 ["hNoMission1"] = "Niestety, nie mam dla Ciebie żadnej misji.",
  22.                 ["hNoMission2"] = "Wróć do mnie, gdy staniesz się silniejszy.",
  23.                
  24.                 --[[ W tej tablicy przechowywane są odpowiednio
  25.                     [poziom] = {id 1 moba, ilość, id 2 moba, ilość, id 3 moba, ilość, id 4 moba, ilość, id nagrody 1, ilość, id nagrody 2, ilość, yang za misję, exp za misję}, ]]--
  26.                 ["hMobSetTable"] =
  27.                 {
  28.                   --[idx] = {id1, count1, id2, count2, id3, count3, id4, count4, reward_id1, count_reward1, reward_id2, count_reward2, yang, exp},
  29.                     [1] =  {101, 10, 171, 10, 102, 7, 103, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 1500, ["EXP"] = 500},
  30.                     [2] =  {102, 10, 172, 10, 103, 7, 104, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 2500, ["EXP"] = 1000},
  31.                     [3] =  {103, 10, 173, 10, 104, 7, 105, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 3500, ["EXP"] = 1500},
  32.                     [4] =  {104, 10, 174, 10, 105, 7, 106, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 4500, ["EXP"] = 2000},
  33.                     [5] =  {105, 10, 175, 10, 106, 7, 107, 5, ["ID_R1"] = 8001, ["C_R1"] = 100, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 5500, ["EXP"] = 2500},
  34.                     [6] =  {106, 10, 176, 10, 107, 7, 108, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 6500, ["EXP"] = 3000},
  35.                     [7] =  {107, 10, 177, 10, 108, 7, 109, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 7500, ["EXP"] = 3500},
  36.                     [8] =  {108, 10, 178, 10, 109, 7, 110, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 8500, ["EXP"] = 4000},
  37.                     [9] =  {109, 10, 179, 10, 110, 7, 111, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 9500, ["EXP"] = 4500},
  38.                     [10] =  {110, 10, 180, 10, 111, 7, 112, 5, ["ID_R1"] = 8001, ["C_R1"] = 100, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 10500, ["EXP"] = 5000},
  39.                     [11] =  {111, 10, 181, 10, 112, 7, 113, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 11500, ["EXP"] = 6000},
  40.                     [12] =  {112, 10, 182, 10, 113, 7, 114, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 12500, ["EXP"] = 6500},
  41.                     [13] =  {113, 10, 183, 10, 114, 7, 115, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 13500, ["EXP"] = 7000},
  42.                     [14] =  {114, 10, 184, 10, 115, 7, 131, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 14500, ["EXP"] = 7500},
  43.                     [15] =  {115, 10, 185, 10, 131, 7, 132, 5, ["ID_R1"] = 8001, ["C_R1"] = 100, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 15500, ["EXP"] = 8000},
  44.                     [16] =  {131, 10, 132, 10, 133, 7, 134, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 16500, ["EXP"] = 8500},
  45.                     [17] =  {132, 10, 133, 10, 134, 7, 135, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 17500, ["EXP"] = 9000},
  46.                     [18] =  {133, 10, 134, 10, 135, 7, 136, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 18500, ["EXP"] = 9500},
  47.                     [19] =  {134, 10, 135, 10, 136, 7, 137, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 19500, ["EXP"] = 10000},
  48.                     [20] =  {135, 10, 136, 10, 137, 7, 138, 5, ["ID_R1"] = 8001, ["C_R1"] = 100, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 20500, ["EXP"] = 10500},
  49.                     [21] =  {301, 10, 351, 10, 303, 7, 304, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 1500, ["EXP"] = 500},
  50.                     [22] =  {302, 10, 352, 10, 304, 7, 353, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 2500, ["EXP"] = 1000},
  51.                     [23] =  {303, 10, 353, 10, 354, 7, 331, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 3500, ["EXP"] = 1500},
  52.                     [24] =  {391, 10, 392, 10, 393, 10, 394, 10, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 4500, ["EXP"] = 2000},
  53.                     [25] =  {191, 5, 192, 5, 193, 5, 194, 5, ["ID_R1"] = 8001, ["C_R1"] = 100, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 5500, ["EXP"] = 2500},
  54.                     [26] =  {395, 10, 396, 10, 396, 10, 398, 10, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 6500, ["EXP"] = 3000},
  55.                     [27] =  {401, 10, 402, 10, 403, 7, 404, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 7500, ["EXP"] = 3500},
  56.                     [28] =  {402, 10, 403, 10, 404, 7, 405, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 8500, ["EXP"] = 4000},
  57.                     [29] =  {403, 10, 404, 10, 405, 7, 406, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 9500, ["EXP"] = 4500},
  58.                     [30] =  {404, 10, 405, 10, 406, 7, 431, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 40500, ["EXP"] = 5000},
  59.                     [31] =  {405, 10, 406, 10, 431, 7, 432, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 11500, ["EXP"] = 6000},
  60.                     [32] =  {406, 10, 431, 10, 432, 7, 433, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 12500, ["EXP"] = 6500},
  61.                     [33] =  {431, 10, 432, 10, 433, 7, 434, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 13500, ["EXP"] = 7000},
  62.                     [34] =  {432, 10, 433, 10, 434, 7, 435, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 14500, ["EXP"] = 7500},
  63.                     [35] =  {433, 10, 434, 10, 435, 7, 436, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 15500, ["EXP"] = 8000},
  64.                     [36] =  {434, 10, 435, 10, 436, 7, 451, 5, ["ID_R1"] = 71001, ["C_R1"] = 5, ["ID_R2"] = 71095, ["C_R2"] = 1, ["YANG"] = 16500, ["EXP"] = 8500},
  65.                     [37] =  {435, 10, 436, 10, 451, 7, 452, 5, ["ID_R1"] = 71084, ["C_R1"] = 3, ["ID_R2"] = 72702, ["C_R2"] = 1, ["YANG"] = 17500, ["EXP"] = 9000},
  66.                     [38] =  {436, 10, 451, 10, 452, 7, 453, 5, ["ID_R1"] = 71085, ["C_R1"] = 2, ["ID_R2"] = 7005, ["C_R2"] = 1, ["YANG"] = 18500, ["EXP"] = 9500},
  67.                     [39] =  {451, 10, 452, 10, 453, 7, 454, 5, ["ID_R1"] = 90001, ["C_R1"] = 8, ["ID_R2"] = 15, ["C_R2"] = 1, ["YANG"] = 19500, ["EXP"] = 40000},
  68.                     [40] =  {452, 10, 453, 10, 454, 20, 455, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13004, ["C_R2"] = 1, ["YANG"] = 20500, ["EXP"] = 40500},
  69.                     [41] =  {531, 10, 532, 10, 533, 20, 534, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13023, ["C_R2"] = 1, ["YANG"] = 22500, ["EXP"] = 41500},
  70.                     [42] =  {631, 10, 632, 10, 633, 20, 634, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13042, ["C_R2"] = 1, ["YANG"] = 25000, ["EXP"] = 42500},
  71.                     [43] =  {651, 10, 652, 10, 653, 20, 654, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13042, ["C_R2"] = 1, ["YANG"] = 27500, ["EXP"] = 43500},
  72.                     [44] =  {701, 10, 702, 10, 703, 20, 704, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13042, ["C_R2"] = 1, ["YANG"] = 27500, ["EXP"] = 43500},
  73.                     [45] =  {702, 10, 703, 10, 704, 20, 705, 5, ["ID_R1"] = 8001, ["C_R1"] = 400, ["ID_R2"] = 13042, ["C_R2"] = 1, ["YANG"] = 27500, ["EXP"] = 43500},
  74.                 },
  75.                 ["hEnableQuestIMG"] = 0,
  76.                
  77.             }
  78.         end
  79.                
  80.         when 20019.chat."Łowiectwo" begin
  81.            
  82.             local settings = hunting.setting()
  83.             local mobs_table = {}               --pusta tablica, którą zaraz zapełnimy
  84.            
  85.             say_title(mob_name(npc.get_race())..":")
  86.             say("Witaj, "..pc.get_name()..". Jestem "..mob_name(npc.get_race()).." i szkolę młodych")
  87.             say("ludzi pod kątem zostania wielkim łowcą, takim jak ja. Haha!")
  88.             say("Jeśli chcesz, pomogę Ci się podszkolić.")
  89.             say()
  90.             wait()
  91.             say_title(mob_name(npc.get_race())..":")
  92.            
  93.             if pc.get_level() < pc.getqf("current")+1 then  --w ten sposób sprawdzam dostępność misji na aktualny poziom.
  94.                                                             --pc.getqf("current") jeśli wcześniej nie był ustawiany, wynosi 0, dlatego, żeby postać mogła otrzymać misję na swój poziom (rodzi się
  95.                                                             --z poziomem 1) muszę dodać do niego 1
  96.                 say(settings.hYouCant1)
  97.                 say()
  98.                 say_reward(settings.hYouCant2)
  99.                 return
  100.             end
  101.             if settings.hMobSetTable[pc.getqf("current")+1] == nil then --jeśli nie ma w tablicy misji na mój poziom, a wszystkie poniżej już zrobiłem, to pokazuje się komunikat, że nie ma misji
  102.                 say(settings.hNoMission1)
  103.                 say(settings.hNoMission2)
  104.                 return
  105.             end
  106.            
  107.             say("Świetnie! Na co chcesz dzisiaj zapolować? ")
  108.            
  109.             for i=1,7,2 do                              --ta pętla pobiera ID potworów możliwych do zabicia w misji i wrzuca ich nazwy do pustej tablicy mobs_table
  110.                 table.insert(mobs_table, mob_name(settings.hMobSetTable[pc.getqf("current")+1][i]))
  111.             end
  112.             table.insert(mobs_table, "Anuluj")          --do tablicy wrzucam sobie jeszcze przycisk "Anuluj"
  113.             local s=select_table(mobs_table)            --po czym wybieram sobie tablicę
  114.            
  115.             if s == table.getn(mobs_table) then         --zawraca, jeśli wybrany element jest równy wielkości tablicy (tablica ma 5 elementów, a piątym elementem jest przycisk "Anuluj")
  116.                 return
  117.             end
  118.             pc.setqf("current", pc.getqf("current")+1)  --Tutaj ustawiam sobie Current do aktualnej misji
  119.             local current = pc.getqf("current")
  120.             pc.setqf("kill_vnum", settings.hMobSetTable[current][s*2-1])    --tutaj ustawiam sobie moba do zabicia. s * 2 - 1 zawsze daje ID potwora z tablicy zgodnie z wybranym przyciskiem
  121.                                                                             -- -1 jest dlatego, że komórki od potworów mają nieparzyste ID, 1, 3, 5, 7. 1*2 to 2, 2*2 to 4 -1 to 3 (bo 3 jest 2 w tablicy) itd
  122.             pc.setqf("kill_count", settings.hMobSetTable[current][s*2])     --zaś tutaj wrzucam sobie ilość
  123.             pc.setqf("killed_count", 0)
  124.             --syschat(current.." | "..pc.getqf("kill_vnum").." | "..pc.getqf("kill_count")) --używałem do debugowania
  125.             set_state(zabij)
  126.         end
  127.     end
  128.     state zabij begin
  129.         when letter begin
  130.             q.set_counter(mob_name(pc.getqf("kill_vnum")), pc.getqf("kill_count")-pc.getqf("killed_count")) --licznik w queście pod klawiszem N
  131.             send_letter("Łowiectwo")
  132.         end
  133.         when button or info begin
  134.             local settings = hunting.setting()
  135.             --[[ Tutaj wyświetlam sobie teksty i obrazek ]]--
  136.             if hunting.setting().hEnableQuestIMG == 1 then         
  137.                 setskin(SCROLL)
  138.                 setbgimage('level_bg.tga')
  139.                 addimage(20, 12, special.levelup_img[pc.getqf("kill_vnum")])
  140.             end
  141.             say_title(settings.hTytul)
  142.             say_title(settings.hDisc1..""..mob_name(pc.getqf("kill_vnum")))
  143.             say_title(settings.hDisc2a.." "..pc.getqf("kill_count")-pc.getqf("killed_count").." "..settings.hDisc2b)
  144.             say_title(settings.hDisc3.." "..pc.getqf("killed_count").." "..mob_name(pc.getqf("kill_vnum")))        
  145.         end
  146.        
  147.         when kill with not npc.is_pc() begin    --event zabicia
  148.             local settings = hunting.setting()
  149.             local current = pc.getqf("current")
  150.             if npc.get_race() == pc.getqf("kill_vnum") then
  151.                 pc.setqf("killed_count", pc.getqf("killed_count") + 1)  --zwiększam ilość zabitych, jeśli ID zabitego zgadza się z ID potwora który mam zabić
  152.                 q.set_counter(mob_name(pc.getqf("kill_vnum")), pc.getqf("kill_count")-pc.getqf("killed_count")) --aktualizuję licznik pod N
  153.                 if pc.getqf("killed_count") >= pc.getqf("kill_count") then  --jeśli to wszystkie zabite...
  154.                     --[[ Wyświetlam sobie okienko z wyborem nagrody ]]--
  155.                     say_title(settings.hNagTytul)
  156.                     say(settings.hNag1)
  157.                     local s=select(item_name(tonumber(settings.hMobSetTable[pc.getqf("current")].ID_R1)).."x"..settings.hMobSetTable[pc.getqf("current")].C_R1, item_name(tonumber(settings.hMobSetTable[pc.getqf("current")].ID_R2)).."x"..settings.hMobSetTable[pc.getqf("current")].C_R2)
  158.                     --[[
  159.                    
  160.                     Tych syschatów używałem do debugowania
  161.                    
  162.                     syschat(settings.hMobSetTable[pc.getqf("current")].ID_R1.."x"..settings.hMobSetTable[pc.getqf("current")].C_R1)
  163.                     syschat(settings.hMobSetTable[pc.getqf("current")].ID_R2.."x"..settings.hMobSetTable[pc.getqf("current")].C_R2)
  164.                     syschat(item_name(tonumber(settings.hMobSetTable[pc.getqf("current")].ID_R1)).."x"..settings.hMobSetTable[pc.getqf("current")].C_R1)
  165.                     syschat(item_name(tonumber(settings.hMobSetTable[pc.getqf("current")].ID_R2)).."x"..settings.hMobSetTable[pc.getqf("current")].C_R2)
  166.                    
  167.                     Zaś w poniższym ifie daję wybraną nagrodę
  168.                     ]]--
  169.                     if s==1 then
  170.                         pc.give_item2(settings.hMobSetTable[pc.getqf("current")].ID_R1, settings.hMobSetTable[pc.getqf("current")].C_R1)
  171.                     else
  172.                         pc.give_item2(settings.hMobSetTable[pc.getqf("current")].ID_R2, settings.hMobSetTable[pc.getqf("current")].C_R2)
  173.                     end
  174.                     pc.change_money(settings.hMobSetTable[pc.getqf("current")].YANG)
  175.                     pc.give_exp2(settings.hMobSetTable[pc.getqf("current")].EXP)
  176.                     clear_letter()
  177.                     set_state(start)
  178.                 end
  179.             end
  180.         end
  181.     end
  182. end
Advertisement
Add Comment
Please, Sign In to add comment