Opublikowano 30 Marca30 Mar @Rain94 No to jak juz się zaoferowałeś ze jesteś w stanie napisać questa i wrzucisz go tutaj za free, w pełni sprawnego i działającego (najlepiej jakbyś jeszcze nagrał jak ty go piszesz)No to dungeon.Pierwsze Piętro = wybicie metinów resp 30 metków na losowych koordynatach, czyli z kazdym wejściem na dunga, są w innych pozycjach oraz musi zostać zabity prawidłowy, w momencie zabicia fałszywego metina, rozpoczynasz zadanie od nowa.Czyli respi się ponownie ten zabity fałszywy metin przez Ciebie.Drugie Piętro = Ubicie Wszystkich mobów łącznie w regenie ma być ich 2000 i to zadanie czasowe, gracz ma posiadać minutę na wykonanie tego zadania = jeśli nie wykona, zostaje wyrzucony z dunga oraz nalicza czas blokady na ponowne jego wejścieTrzecie piętro = Walka z mini bossami, respią się 4 minibossy w momencie ich respawnu, gracz otrzymuje debuffy, Nie mozesz uzywać skilli, nie mozesz wypić zadnej rosy, mikstury, czegokolwiek oraz usuwa obecne affecty aury miecza, silnego ciała itp (łącznie z buffami)Walka ma trwać na zasadzie hitów, wraz z zadaniem 100 hit'boxów ABS miniboss'a ma się zwiększać o x % zadanych obrazen, czyli po 100 hitach abs bossa zwiększa się o 5% (nie nie bazujemy na hp i jego spadku, bazujemy na hitach)Czwarte piętro = Insygnia przetrwania, co 30 sekund respi się boss z nowym id i jego damage ma być zwiększony kilkukrotnie, w tym czasie gracz musi ubijać potwory jak i metiny aby dropnąć pieczęcie do aktywacji. Jeśli boss zrespi się po 30 sekundach, zada skill a następnie ten boss ma być purgowany, za kazdym razem po upływie 30 sekund, ma się pojawić, zadać ogromne obrazenia, i zniknąć, a w przypadku gdy gracz się wypierdoli, cofa go o jeden poziom dungeonu, (nie wyrzuca całkiem) tylko znaczyna od nowa od etapu trzeciego.Piąte Piętro = Wszystkie potwory zyskują zwiększone absy kilkukrotnie, i z potworów wypada przedmiot, i po jego uzyciu absy mobów maleja jakaś mikstura czy coś, Dopiero gdy dropnie 10 takich mikstur = wtedy moby na dungu stracą całkiem absy po uzyciu 10 miksturPo zabiciu wszystkich mobów jest boss końcowy i boss wraz z spadkiem jego % hp ma otrzymywać losowe bonusy w stylu jeśli poziom jego hp osiągnie 80% wtedy jego skill obszarowy który zadaje dmg, zwiększa się. Jeśli poziom hp spadnie do 60% wtedy boss ma przywoływać swoich podopiecznych = moby, może się wykonać regen specjalny który aktywuje się dopiero gdy boss ma 60% hp. jesli % bossa hp spadnie do 40% wtedy respią się metiny, i dopóki gracz ich nie zabije, zadaje 0 dmg w boss'a oraz całkowicie blokuje się regeneracja hp bossa, zostaje na 40%.Dopiero po ubiciu metinów, mozesz kontynuować walkę z bossem, i teraz najlepsze = jeśli % hp bossa spadnie do 10% to automatycznie na graczach nie działają autopoty, zwykłe poty, gracz nie może regenerować swojego hp w zaden inny sposób niz poza bonusem w eq "Regeneracja Pz"Dodatkowe Warunki:W zalezności od tego jaka jest pora dzien/noc tym dungeon i wszystkie jego % są inne, jeśli wchodzisz za dnia, jest łatwiej, jeśli w nocy, jest trudniej
Opublikowano 30 Marca30 Mar 2 minuty temu, Sevence napisał(a):A to kolega gdzieś się deklarował? bo nie jestem w temacie. 😁
Opublikowano 30 Marca30 Mar Przyznam szczerze, że jeszcze takiego nie pisałem. Ale podejmuje rękawice, od jutra zaczynam po pracy
Opublikowano 30 Marca30 Mar 9 minut temu, YeeeY napisał(a):ChatGPT dołączył do czatu.GENEROWANIE... XDquest dungeon_quest begin state start begin when 9001.chat("Wejście do dungeonu") with pc.get_level() >= 30 begin say("Czy chcesz wejść do dungeonu?") local s = select("Tak", "Nie") if s == 2 then return end if party.is_party() and not party.is_leader() then say("Tylko lider grupy może rozpocząć dungeon!") return end if party.is_party() and party.get_near_count() < 2 then say("W grupie musi być co najmniej 2 graczy!") return end d.new_jump(5001, 100, 100) -- ID mapy dungeonu d.setf("stage", 1) d.setf("fail_count", 0) d.notice("Pierwsze piętro: Znajdź i zniszcz właściwy metin!") dungeon_spawn_metins() end function dungeon_spawn_metins() for i = 1, 30 do local x = math.random(50, 150) local y = math.random(50, 150) local metin_id = (math.random(1, 30) == 1) and 8001 or 8002 d.spawn_mob(metin_id, x, y) end end when kill with d.getf("stage") == 1 and npc.is_metin() begin if npc.get_race() == 8001 then -- Prawidłowy metin d.notice("Znalazłeś prawidłowy metin! Przechodzisz dalej.") d.setf("stage", 2) d.set_regen_file("data/dungeon_mob.txt") d.set_warp_location(5001, 200, 200) d.jump_all(5001, 200, 200) d.notice("Drugie piętro: Masz minutę na zabicie 2000 potworów!") d.setf("timer", d.getf("timer") + 60) else d.notice("Zły metin! Musisz zacząć od nowa!") dungeon_spawn_metins() end end when kill with d.getf("stage") == 2 begin if d.get_kill_count() >= 2000 then d.notice("Wszystkie potwory zabite! Przechodzisz dalej.") d.setf("stage", 3) d.jump_all(5001, 300, 300) d.notice("Trzecie piętro: Pokonaj 4 mini bossy!") dungeon_spawn_minibosses() end end when timer.end with d.getf("stage") == 2 begin d.notice("Nie zdążyłeś! Zostajesz wyrzucony i masz blokadę.") d.exit_all() end function dungeon_spawn_minibosses() for i = 1, 4 do d.spawn_mob(9001, 320, 320) end d.setf("hit_count", 0) end when hit with d.getf("stage") == 3 begin d.setf("hit_count", d.getf("hit_count") + 1) if d.getf("hit_count") % 100 == 0 then d.notice("Mini bossy wzmacniają się o 5%!") end end when kill with d.getf("stage") == 3 begin if d.get_kill_count() >= 4 then d.notice("Mini bossy pokonane! Przechodzisz dalej.") d.setf("stage", 4) d.jump_all(5001, 400, 400) d.notice("Czwarte piętro: Przetrwaj ataki bossów!") end end when kill with d.getf("stage") == 5 begin if d.get_kill_count() >= 100 then d.notice("Przechodzisz do ostatniego piętra!") d.setf("stage", 6) d.jump_all(5001, 500, 500) d.notice("Piąte piętro: Pokonaj bossa końcowego!") d.spawn_mob(9999, 500, 500) end end end end
Opublikowano 30 Marca30 Mar Godzinę temu, Arta napisał(a):GENEROWANIE... XDquest dungeon_quest begin state start begin when 9001.chat("Wejście do dungeonu") with pc.get_level() >= 30 begin say("Czy chcesz wejść do dungeonu?") local s = select("Tak", "Nie") if s == 2 then return end if party.is_party() and not party.is_leader() then say("Tylko lider grupy może rozpocząć dungeon!") return end if party.is_party() and party.get_near_count() < 2 then say("W grupie musi być co najmniej 2 graczy!") return end d.new_jump(5001, 100, 100) -- ID mapy dungeonu d.setf("stage", 1) d.setf("fail_count", 0) d.notice("Pierwsze piętro: Znajdź i zniszcz właściwy metin!") dungeon_spawn_metins() end function dungeon_spawn_metins() for i = 1, 30 do local x = math.random(50, 150) local y = math.random(50, 150) local metin_id = (math.random(1, 30) == 1) and 8001 or 8002 d.spawn_mob(metin_id, x, y) end end when kill with d.getf("stage") == 1 and npc.is_metin() begin if npc.get_race() == 8001 then -- Prawidłowy metin d.notice("Znalazłeś prawidłowy metin! Przechodzisz dalej.") d.setf("stage", 2) d.set_regen_file("data/dungeon_mob.txt") d.set_warp_location(5001, 200, 200) d.jump_all(5001, 200, 200) d.notice("Drugie piętro: Masz minutę na zabicie 2000 potworów!") d.setf("timer", d.getf("timer") + 60) else d.notice("Zły metin! Musisz zacząć od nowa!") dungeon_spawn_metins() end end when kill with d.getf("stage") == 2 begin if d.get_kill_count() >= 2000 then d.notice("Wszystkie potwory zabite! Przechodzisz dalej.") d.setf("stage", 3) d.jump_all(5001, 300, 300) d.notice("Trzecie piętro: Pokonaj 4 mini bossy!") dungeon_spawn_minibosses() end end when timer.end with d.getf("stage") == 2 begin d.notice("Nie zdążyłeś! Zostajesz wyrzucony i masz blokadę.") d.exit_all() end function dungeon_spawn_minibosses() for i = 1, 4 do d.spawn_mob(9001, 320, 320) end d.setf("hit_count", 0) end when hit with d.getf("stage") == 3 begin d.setf("hit_count", d.getf("hit_count") + 1) if d.getf("hit_count") % 100 == 0 then d.notice("Mini bossy wzmacniają się o 5%!") end end when kill with d.getf("stage") == 3 begin if d.get_kill_count() >= 4 then d.notice("Mini bossy pokonane! Przechodzisz dalej.") d.setf("stage", 4) d.jump_all(5001, 400, 400) d.notice("Czwarte piętro: Przetrwaj ataki bossów!") end end when kill with d.getf("stage") == 5 begin if d.get_kill_count() >= 100 then d.notice("Przechodzisz do ostatniego piętra!") d.setf("stage", 6) d.jump_all(5001, 500, 500) d.notice("Piąte piętro: Pokonaj bossa końcowego!") d.spawn_mob(9999, 500, 500) end end endendGodzinę temu, YeeeY napisał(a):ChatGPT dołączył do czatu.Cloude też dołączył, generowanie.... https://pastebin.com/sZ8H1Lwp Edytowane 30 Marca30 Mar przez kris006
Opublikowano 30 Marca30 Mar 4 minuty temu, kris006 napisał(a):Cloude też dołączył, generowanie....quest piekielny_dungeon begin state start begin -- Definicja konfiguracji w tablicy: mapa, ID i dane pięter local config = { map = 666, -- Indeks mapy dungeonu (zmień na swój) ids = {npc = 9001, metin = 8001, mob = 1001, miniboss = 2001, boss = 4001, seal = 50001, potion = 50002, reward = 50003}, -- ID NPC, mobów, przedmiotów floors = { [1] = {metins = 30}, -- Piętro 1: 30 metinów [2] = {mobs = 2000, time = 60}, -- Piętro 2: 2000 mobów, 60 sekund [3] = {minibosses = 4, abs_increase = 5}, -- Piętro 3: 4 minibossy, ABS +5% [4] = {seals = 5, boss_timer = 30}, -- Piętro 4: 5 pieczęci, boss co 30 sekund [5] = {potions = 10, boss_stages = {80, 60, 40, 10}} -- Piętro 5: 10 mikstur, etapy bossa } } -- Sprawdzenie, czy gracz jest w dungeonie po zalogowaniu/awansie when login or levelup with pc.getqf("active") == 1 and pc.get_map_index() == config.map begin piekielny_dungeon.progress() -- Kontynuacja postępu end -- Rozmowa z NPC do wejścia (pierwsze wywołanie questa) when config.ids.npc.chat."Wejdź do Dungeonu" begin say("Gotów na Piekielny Dungeon?") -- Dialog NPC if select("Tak", "Nie") == 1 then -- Wybór gracza if pc.getqf("block") > os.time() then -- Sprawdzenie blokady czasowej say("Poczekaj " .. (pc.getqf("block") - os.time()) .. " sekund.") return end pc.setqf("active", 1) -- Aktywacja dungeonu pc.setqf("floor", 1) -- Start od 1. piętra pc.setqf("day_night", piekielny_dungeon.get_bonus()) -- Ustawienie mnożnika dzień/noc pc.warp(config.map * 10000, config.map * 10000) -- Teleport na mapę dungeonu piekielny_dungeon.progress() -- Rozpoczęcie postępu end end -- Funkcja obliczająca bonus dzień/noc (0.8 za dnia, 1.2 w nocy) function get_bonus() return (tonumber(os.date("%H")) >= 6 and tonumber(os.date("%H")) < 18) and 0.8 or 1.2 end -- Główna funkcja postępu, wybiera aktualne piętro function progress() local f = pc.getqf("floor") -- Pobranie aktualnego piętra if f == 1 then piekielny_dungeon.floor_1(config.floors[1]) -- Piętro 1 elseif f == 2 then piekielny_dungeon.floor_2(config.floors[2]) -- Piętro 2 elseif f == 3 then piekielny_dungeon.floor_3(config.floors[3]) -- Piętro 3 elseif f == 4 then piekielny_dungeon.floor_4(config.floors[4]) -- Piętro 4 elseif f == 5 then piekielny_dungeon.floor_5(config.floors[5]) -- Piętro 5 end end -- Piętro 1: Metiny function floor_1(data) if not d.getf("spawned") then -- Jeśli metiny nie zrespione d.setf("spawned", 1) -- Oznaczenie respawnu for i = 1, data.metins do -- Respawn 30 metinów d.spawn_mob(config.ids.metin, math.random(100, 900) * 100, math.random(100, 900) * 100) -- Losowe koordynaty end d.setf("correct", math.random(1, data.metins)) -- Losowy prawidłowy metin end when config.ids.metin.kill begin -- Po zabiciu metina if d.get_unique_vid() == d.getf("correct") then -- Jeśli prawidłowy pc.setqf("floor", 2) -- Przejście na 2. piętro d.purge() -- Czyszczenie mapy piekielny_dungeon.progress() -- Kontynuacja else -- Jeśli fałszywy d.kill_unique(d.get_unique_vid()) -- Usunięcie zabitego metina d.spawn_mob(config.ids.metin, math.random(100, 900) * 100, math.random(100, 900) * 100) -- Respawn nowego end end end -- Piętro 2: 2000 mobów z limitem czasowym function floor_2(data) if not d.getf("spawned") then -- Jeśli moby nie zrespione d.setf("spawned", 1) -- Oznaczenie respawnu d.setf("killed", 0) -- Licznik zabitych mobów for i = 1, data.mobs do -- Respawn 2000 mobów d.spawn_mob(config.ids.mob, math.random(100, 900) * 100, math.random(100, 900) * 100) -- Losowe koordynaty end timer("time_up", data.time) -- Timer 60 sekund end when config.ids.mob.kill begin -- Po zabiciu moba d.setf("killed", d.getf("killed") + 1) -- Zwiększenie licznika if d.getf("killed") >= data.mobs then -- Jeśli wszystkie zabite pc.setqf("floor", 3) -- Przejście na 3. piętro d.purge() -- Czyszczenie mapy piekielny_dungeon.progress() -- Kontynuacja end end when time_up.timer begin -- Po upływie czasu pc.setqf("active", 0) -- Dezaktywacja dungeonu pc.setqf("block", os.time() + 300) -- Blokada na 5 minut pc.warp(10000, 10000) -- Wyrzucenie do miasta end end -- Piętro 3: Minibossy z debuffami i ABS na hity function floor_3(data) if not d.getf("spawned") then -- Jeśli minibossy nie zrespione d.setf("spawned", 1) -- Oznaczenie respawnu d.setf("killed", 0) -- Licznik zabitych minibossów for i = 1, data.minibosses do -- Respawn 4 minibossów d.spawn_mob(config.ids.miniboss, math.random(100, 900) * 100, math.random(100, 900) * 100) -- Losowe koordynaty end affect.remove_all() -- Usunięcie wszystkich affectów (buffów) pc.setqf("no_skills", 1) -- Blokada skilli pc.setqf("no_potions", 1) -- Blokada mikstur end when config.ids.miniboss.kill begin -- Po zabiciu minibossa local hits = pc.getqf("hits") + 1 -- Licznik hitów pc.setqf("hits", hits) if hits % 100 == 0 then -- Co 100 hitów d.setf("abs", d.getf("abs") + data.abs_increase) -- Zwiększenie ABS o 5% end d.setf("killed", d.getf("killed") + 1) -- Zwiększenie licznika zabitych if d.getf("killed") >= data.minibosses then -- Jeśli wszystkie zabite pc.setqf("floor", 4) -- Przejście na 4. piętro pc.setqf("no_skills", 0) -- Odblokowanie skilli pc.setqf("no_potions", 0) -- Odblokowanie mikstur pc.setqf("hits", 0) -- Reset licznika hitów d.purge() -- Czyszczenie mapy piekielny_dungeon.progress() -- Kontynuacja end end end -- Piętro 4: Insygnia przetrwania, boss co 30 sekund function floor_4(data) if not d.getf("spawned") then -- Jeśli mapa nie zainicjowana d.setf("spawned", 1) -- Oznaczenie startu d.setf("boss_count", 0) -- Licznik bossów timer("boss_spawn", data.boss_timer) -- Timer bossa co 30 sekund d.regen_file("data/dungeon/floor4_regen.txt") -- Regen mobów i metinów end when config.ids.mob.kill or config.ids.metin.kill begin -- Drop pieczęci z mobów/metinów if math.random(1, 10) == 1 then pc.give_item2(config.ids.seal, 1) end -- 10% szansy end when boss_spawn.timer begin -- Respawn bossa co 30 sekund d.spawn_mob(config.ids.boss + d.getf("boss_count"), 500 * 100, 500 * 100) -- Nowy boss z kolejnym ID d.setf("boss_count", d.getf("boss_count") + 1) -- Zwiększenie licznika bossów timer("boss_purge", 5) -- Timer na purgovanie bossa po 5 sekundach timer("boss_spawn", data.boss_timer) -- Kolejny boss za 30 sekund end when boss_purge.timer begin -- Usunięcie bossa po ataku d.purge() -- Czyszczenie mapy z bossa end when config.ids.seal.use begin -- Użycie pieczęci if pc.count_item(config.ids.seal) >= data.seals then -- Jeśli gracz ma 5 pieczęci pc.remove_item(config.ids.seal, data.seals) -- Usunięcie pieczęci pc.setqf("floor", 5) -- Przejście na 5. piętro d.purge() -- Czyszczenie mapy piekielny_dungeon.progress() -- Kontynuacja end end when kill with pc.get_hp() <= 0 begin -- Śmierć gracza pc.setqf("floor", 3) -- Cofnięcie na 3. piętro pc.warp(config.map * 10000, config.map * 10000) -- Powrót na start dungeonu end end -- Piętro 5: Moby z ABS, boss z etapami function floor_5(data) if not d.getf("spawned") then -- Jeśli mapa nie zainicjowana d.setf("spawned", 1) -- Oznaczenie startu d.setf("potions", 0) -- Licznik mikstur d.setf("boss_spawned", 0) -- Flaga bossa d.regen_file("data/dungeon/floor5_regen.txt") -- Regen mobów z wysokim ABS end when config.ids.mob.kill begin -- Drop mikstur z mobów if math.random(1, 20) == 1 then -- 5% szansy pc.give_item2(config.ids.potion, 1) -- Dodanie mikstury d.setf("potions", d.getf("potions") + 1) -- Zwiększenie licznika end if d.getf("potions") >= data.potions and not d.getf("boss_spawned") then -- Jeśli 10 mikstur d.purge() -- Czyszczenie mobów d.spawn_mob(config.ids.boss, 500 * 100, 500 * 100) -- Respawn bossa d.setf("boss_spawned", 1) -- Oznaczenie bossa end end when config.ids.boss.hit begin -- Etapy bossa na podstawie % HP local hp = d.get_hp_percent() -- Procent HP bossa if hp <= data.boss_stages[1] and not d.getf("s1") then -- 80% HP d.setf("s1", 1) -- Zwiększony skill obszarowy (dostosuj w regen) elseif hp <= data.boss_stages[2] and not d.getf("s2") then -- 60% HP d.setf("s2", 1) d.spawn_mob(config.ids.mob, 500 * 100, 500 * 100, 10) -- Przywołanie 10 mobów elseif hp <= data.boss_stages[3] and not d.getf("s3") then -- 40% HP d.setf("s3", 1) for i = 1, 5 do -- Respawn 5 metinów d.spawn_mob(config.ids.metin, math.random(100, 900) * 100, math.random(100, 900) * 100) end d.set_regen_stop(true) -- Blokada regeneracji HP bossa elseif hp <= data.boss_stages[4] and not d.getf("s4") then -- 10% HP d.setf("s4", 1) pc.setqf("no_potions", 1) -- Blokada regeneracji HP gracza end end when config.ids.metin.kill with d.getf("s3") == 1 begin -- Zniszczenie metinów na 40% HP bossa if d.count_monster() == 0 then -- Jeśli wszystkie metiny zabite d.set_regen_stop(false) -- Odblokowanie regeneracji HP bossa d.setf("s3", 0) -- Reset flagi end end when config.ids.boss.kill begin -- Po zabiciu bossa pc.setqf("active", 0) -- Zakończenie dungeonu pc.give_item2(config.ids.reward, 1) -- Nagroda pc.warp(10000, 10000) -- Powrót do miasta end end endendwygląda mega dobrze jak wojna w 25tym
Opublikowano 30 Marca30 Mar @Arta@kris006 Jak możecie dajcie w spojler kod bo scrollowania od chu`ya xD
Opublikowano 30 Marca30 Mar Czemu się tak na gościa uwzięliście? Widziałem jakieś posty, ale w sumie żadnych konkretnych info
Opublikowano 3 Kwietnia3 Kwi Z tego co wiem to chlop robi zwrot (przelew) na 100 zł ale coś od 2 dni mu nie wychodzi xd więc na questa możecie poczekać 😀
Opublikowano 3 Kwietnia3 Kwi 28 minut temu, przemek napisał(a):Z tego co wiem to chlop robi zwrot (przelew) na 100 zł ale coś od 2 dni mu nie wychodzi xd więc na questa możecie poczekać 😀Kupiles cos od niego XD?
Opublikowano 4 Kwietnia4 Kwi 9 godzin temu, ARK napisał(a):Kupiles cos od niego XD?Ja nie 😀 ale ktoś się skusiłDodam tylko że chcialem kupić stronę, ale nasz biznesmen ma tylko zagraniczne konta, więc zrezygnowałem :(Dodatkowo kolega z forum poinformował mnie o sytuacji z nie zwróconych 100zl (XD!) Które zapłacił za "unikalny" system 1:1 z turka hehe Edytowane 4 Kwietnia4 Kwi przez przemek
Opublikowano 4 Kwietnia4 Kwi 1 godzinę temu, przemek napisał(a):Ja nie 😀 ale ktoś się skusiłDodam tylko że chcialem kupić stronę, ale nasz biznesmen ma tylko zagraniczne konta, więc zrezygnowałem :(Dodatkowo kolega z forum poinformował mnie o sytuacji z nie zwróconych 100zl (XD!) Które zapłacił za "unikalny" system 1:1 z turka hehe Edytowane 4 Kwietnia4 Kwi przez ARK
Opublikowano 4 Kwietnia4 Kwi Autor W dniu 30.03.2025 o 20:37, Rain94 napisał(a):Przyznam szczerze, że jeszcze takiego nie pisałem. Ale podejmuje rękawice, od jutra zaczynam po pracyNo czekamy, już parę dni, gdzie quest lub jakiś postęp ukazany z gry czy cokolwiek?
Opublikowano 4 Kwietnia4 Kwi Swoją drogą długo takiego quest'a piszeGodzinę temu, Hydro napisał(a):No czekamy, już parę dni, gdzie quest lub jakiś postęp ukazany z gry czy cokolwiek?Coś ty, nagle przestał się wypowiadać na forum to się nie doczekamy
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.