Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest drop_event begin
- state start begin
- function setting()
- return {
- ["deGMMinLevel"] = 3, --minimalna ranga GM, od której można sterować questem
- ["deTytul"] = "Eventy Dropowe",
- ["deOpis1"] = "Witaj w konsoli sterowania eventami dropowymi.",
- ["deOpis2"] = "Wybierz opcję, która Ci odpowiada:",
- ["deListaTytul"] = "Lista aktywnych eventów dropowych:",
- --[[W tej tablicy przechowywane są niektóre eventy dropowe, wraz z opisami i informacjami niezbędnymi do działania skryptu]]--
- ["deEventConfigTable"] = {
- --typy działania:
- --0 - brak znaczenia liczby
- --1 - im mniejszy tym rzadziej
- --2 - im większy tym rzadziej
- --3 - event nie działa lub jest zbugowany
- [1] = {["deName"] = "Refine Box Drop", ["deDesc1"] = "Według Legendy dropią szkatułki z itemami do ulepszania", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "refine_box_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 3},
- [2] = {["deName"] = "Skarpetki", ["deDesc1"] = "Skarpetki, które można zawiesić na Choince", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50010, ["deEventFlagName"] = "xmas_sock", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 0},
- [3] = {["deName"] = "Szkat. Blasku Księż.", ["deDesc1"] = "Szkatułki Blasku Księżyca", ["deDesc2"] = "Częściej wypadają z potworów o większym stopniu", ["deDesc3"] = "np. Cung-Mok > Dziki Pies", ["deItemVnum"] = 50011, ["deEventFlagName"] = "drop_moon", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 0},
- [4] = {["deName"] = "Kamień Glyph", ["deDesc1"] = "Według Legendy dropi kamień glyph", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 30178, ["deEventFlagName"] = "hc_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 0},
- [5] = {["deName"] = "Heksagonalna Szkatułka", ["deDesc1"] = "Z potworów wypada Heksagonalna Szkatułka", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "2006_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [6] = {["deName"] = "Nie wiadomo co", ["deDesc1"] = "Według Legendy dropi chuj wie co", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50043, ["deEventFlagName"] = "2007_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 0},
- [7] = {["deName"] = "Chińska Ogn. Petarda", ["deDesc1"] = "Z potworów dropi Chińska Ognista Petarda", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50107, ["deEventFlagName"] = "newyear_fire", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [8] = {["deName"] = "Słodkości", ["deDesc1"] = "Z potworów dropią: Słodki Ryż, Pasta Cukrowa, Pasta Owocowa, Pasta Fasolowa", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "newyear_moon", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [9] = {["deName"] = "Walentynki", ["deDesc1"] = "Z potworów dropi Czerw. Róża i Czekolada", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "valentine_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [10] = {["deName"] = "Lody", ["deDesc1"] = "Z potworów wypadają Lody", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50123, ["deEventFlagName"] = "icecream_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [11] = {["deName"] = "Halloween", ["deDesc1"] = "Z potworów wypadają Upiorne Dynie", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 30321, ["deEventFlagName"] = "halloween_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [12] = {["deName"] = "Rogaliki <Ramadan>", ["deDesc1"] = "Z potworów wypadają Rogaliki czy coś takiego", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 30315, ["deEventFlagName"] = "ramadan_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [13] = {["deName"] = "Wielkanoc", ["deDesc1"] = "Z potworów wypadają Jajka Wielkanocne", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "easter_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [14] = {["deName"] = "Piłka", ["deDesc1"] = "Z potworów wypadają Piłki nożne", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50096, ["deEventFlagName"] = "football_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [15] = {["deName"] = "Whiteday", ["deDesc1"] = "Z potworów wypadają Żółte Róże i Cukierki", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "whiteday_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [16] = {["deName"] = "Dzień Dziecka", ["deDesc1"] = "Z potworów dropią szkatułki z zagadką ", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50034, ["deEventFlagName"] = "kids_day_drop", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 100, ["deWorkType"] = 2},
- [17] = {["deName"] = "Three Skill Drop", ["deDesc1"] = "Podobno dropi Kamień Duchowy", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50513, ["deEventFlagName"] = "three_skill_item", ["deEventFlagMin"] = 1, ["deEventFlagMax"] = 1000, ["deWorkType"] = 3},
- [18] = {["deName"] = "Części Medalu Bohatera", ["deDesc1"] = "Według Legendy dropią części Medalu Bohatera", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 1, ["deEventFlagName"] = "refine_box_drop", ["deEventFlagMin"] = 50, ["deEventFlagMax"] = 100, ["deWorkType"] = 3},
- [19] = {["deName"] = "Dragon Boat", ["deDesc1"] = "z potworówy wypada Nasionko", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 50085, ["deEventFlagName"] = "dragon_boat_festival_drop", ["deEventFlagMin"] = 100, ["deEventFlagMax"] = 1000, ["deWorkType"] = 2},
- [20] = {["deName"] = "Mars Drop", ["deDesc1"] = "Według Legendy dropią magiczne rudy miedzi", ["deDesc2"] = "", ["deDesc3"] = "", ["deItemVnum"] = 70035, ["deEventFlagName"] = "mars_drop", ["deEventFlagMin"] = 1000, ["deEventFlagMax"] = 1500, ["deWorkType"] = 3},
- },
- ["deActivate"] = "Aktywować wydarzenie? ",
- ["deDeactivate"] = "Wyłączyć wydarzenie? ",
- ["deActivateSucc"] = "Wydarzenie zostało pomyślnie aktywowane!",
- ["deDeactivateSucc"] = "Wydarzenie zostało pomyślnie wyłączone!",
- ["deCannotEventBugged"] = "Nie możesz włączyć tego eventu, ponieważ został on oznaczony jako zbugowany.",
- ["deMoreIsBetter"] = "Im większa wartość tym większy drop",
- ["deValueCannotBeOverTheLimit"] = "Wartość nie może być poza limitem!",
- ["deEventIsActive"] = "Wydarzenie jest aktywne.",
- ["deEventIsNotActive"] = "Wydarzenie nie jest aktywne.",
- }
- end
- function say_red(name) say(color256(255, 0, 0)..name..color256(196, 196, 196)) end
- function say_green(name) say(color256(0, 238, 0)..name..color256(196, 196, 196)) end
- function antibug(value) --Ta funkcja została napisana przez Nismo., jest to zabezpieczenie do inputa ;)
- if value == "" or value == nil or string.find(value, "nan") then
- return false
- else
- return true
- end
- end
- when 70021.use with pc.is_gm() and pc.get_gm_level() >= drop_event.setting().deGMMinLevel begin
- local settings = drop_event.setting()
- --[[ Deklaruję 5 pustych tablic, w których będę przechowywał wydarzenia ]]--
- local table1_5 = {}
- local table2_5 = {}
- local table3_5 = {}
- local table4_5 = {}
- local table5_5 = {}
- --[[ Teksty z opisami ]]--
- say_title(settings.deTytul)
- say(settings.deOpis1)
- say(settings.deOpis2)
- for i = 1, table.getn(settings.deEventConfigTable) do --dzięki tej pętli wypełniam sobie tablice wydarzeniami. Żadne wydarzenie nie powtarza się w innej
- if i >= 1 and i <= 4 then
- table.insert(table1_5, settings.deEventConfigTable[i].deName)
- elseif i >= 5 and i <= 8 then
- table.insert(table2_5, settings.deEventConfigTable[i].deName)
- elseif i >= 9 and i <= 12 then
- table.insert(table3_5, settings.deEventConfigTable[i].deName)
- elseif i >= 13 and i <= 16 then
- table.insert(table4_5, settings.deEventConfigTable[i].deName)
- else
- table.insert(table5_5, settings.deEventConfigTable[i].deName)
- end
- end
- local s=select("Część nr 1", "Część nr 2", "Część nr 3", "Część nr 4", "Część nr 5", "Anuluj")
- if s == 6 then return end
- --[[tutaj będę sobie pobierał wydarzenia z każdej z tablic w zależności od wybranej "części"]]--
- local s1
- if s == 1 then
- s1 = select_table(table1_5)
- elseif s == 2 then
- s1 = select_table(table2_5)
- elseif s == 3 then
- s1 = select_table(table3_5)
- elseif s == 4 then
- s1 = select_table(table4_5)
- elseif s == 5 then
- s1 = select_table(table5_5)
- else return end
- if s1 == 6 then return end
- say_title(settings.deEventConfigTable[(s-1) * 4 + s1].deName) --Pokazuję sobie nazwę eventu
- --say(game.get_event_flag(settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagName))
- if game.get_event_flag(settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagName) != 0 then --jeśli wybrany event jest aktywny
- say()
- drop_event.say_green(settings.deEventIsActive) --informacja, że jest aktywny
- say(settings.deDeactivate) --pytanie, czy wyłączyć
- local sel1=select(locale.yes, locale.no) --wybór tak nie
- if sel1==2 then return end --jeśli nie, to wychodzi
- game.set_event_flag(settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagName, 0) --w przeciwnym razie wyłącza event
- drop_event.say_green(settings.deDeactivateSucc) --i informuje o tym gm
- return --i wychodzi
- end
- --[[ Teraz zajmę się aktywowaniem eventu.
- Pokazuję sobie opisy wydarzenia]]--
- say(settings.deEventConfigTable[(s-1) * 4 + s1].deDesc1)
- say(settings.deEventConfigTable[(s-1) * 4 + s1].deDesc2)
- say(settings.deEventConfigTable[(s-1) * 4 + s1].deDesc3)
- if tonumber(settings.deEventConfigTable[(s-1) * 4 + s1].deItemVnum) != 1 then --jeśli ID przedmiotu w tablicy z eventem jest różne od 1
- say_item_vnum(tonumber(settings.deEventConfigTable[(s-1) * 4 + s1].deItemVnum)) --pokazuje obrazek przedmiotu. Tam, gdzie jest 1 nie miałem przedmiotu na serwerze lub było ich wiele (np. Walentynki)
- end
- if tonumber(settings.deEventConfigTable[(s-1) * 4 + s1].deWorkType) == 3 then --Teraz zajmę się przetwarzaniem typów działania, bo to od nich zależy sposób uruchomienia wydarzenia
- drop_event.say_red(settings.deCannotEventBugged) --Jeśli typ jest 3, nie możemy odpalić wydarzenia bo nie działa lub jest zbugowane
- return
- elseif tonumber(settings.deEventConfigTable[(s-1) * 4 + s1].deWorkType) == 2 then --jeśli typ jest dwa, wyprowadzam na czacie informację, że im większa wartość, tym większy drop
- drop_event.say_green(settings.deMoreIsBetter)
- end
- drop_event.say_red(settings.deEventIsNotActive) --informuję, że event nie jest aktywny (bo aktywność rozpatrywaliśmy wyżej)
- say(settings.deActivate) --pytanie o aktywowanie
- local sel = select(locale.yes, locale.no) --wybór tak nie
- if sel==2 then return end --jeśli nie to zawraca
- say_title(settings.deEventConfigTable[(s-1) * 4 + s1].deName)
- if tonumber(settings.deEventConfigTable[(s-1) * 4 + s1].deWorkType) != 0 then --jeśli typ działania jest różny od 0
- say("Minimalna wartość dla tego eventu wynosi: "..settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagMin) --informacje o minimalnych i maksymalnych wartościach do inputa
- say("Maksymalna wartość dla tego eventu wynosi: "..settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagMax)
- local i=tonumber(input()) --wasz upragniony input
- if drop_event.antibug(i) == true then --antybug
- if settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagMin <= i and settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagMax >= i then --sprawdzanie, czy wartość zawiera się w "widełkach"
- game.set_event_flag(settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagName, i) --jeśli tak to włącza event
- else
- say(settings.deValueCannotBeOverTheLimit) --a jeśli nie to informuje o nieprawidłowościach
- return --i wraca
- end
- else --a jeśli jest zbugowane (jest nan, nil, pusty string itd) to wraca
- return
- end
- else
- game.set_event_flag(settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagName, settings.deEventConfigTable[(s-1) * 4 + s1].deEventFlagMax) --jeśli jednak typ działania jest równy 0 to włącza wydarzenie z maksymalną wartością
- end
- drop_event.say_green(settings.deActivateSucc)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment