Opublikowano 23 Marca23 Mar Siemano, nie widziałem tematu na forum to zapytam dla siebie i dla potomnych.Quest pochodzi z nostalgicznego forum który edytowałem delikatnie zmieniając index mapy oraz wymóg pt.Chciałby ktoś wyjaśnić dwie sprawy:Dlaczego "when login with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.getqf("spider_dungeon")" jest tak wielki? Quest pozwoli mi normalnie wejść na dunga ale mam dwa problemy:nie wyświetla mi w ogóle "d.notice("<Informacja>" oraz nie pojawiają się potwory.quest spider_dungeon begin state start begin when 20095.chat."Wejdź do Komnaty Baronówny Pająków " begin say_green(""..mob_name(20095)..":") say("Witaj! ") say("W dzisiejszych czasach mało tak odważnych ") say("wojowników, widocznie jesteś jakimś odmiennikiem. ") say("Baronówna jest wściekła uważajcie na siebie! ") say("Musicie spełnić warunki:") say_reward("Minimalnie 75 poziom lidera grupy.") say_reward("Posiadać Pajęczy Klucz.") say_reward("Przynajmniej 1 osobową grupe.") wait() if pc.get_level() < 75 then say_green(""..mob_name(20095)..":") say("Wybacz, mogę wpuszczać tylko osoby od 75 poziomu. ") party.chat("Lider grupy nie posiada 75 poziomu. ") return elseif pc.countitem(19) < 1 then say_green(""..mob_name(20095)..":") say("Nie posiadasz:") say_item_vnum(19) return else say_green(""..mob_name(20095)..":") say("Spełniacie wszystkie warunki! ") say("Czy aby na pewno chcecie wejść? ") local x = select("Tak!", "Nie!") if x == 2 then return elseif x == 1 then pc.remove_item(19, 1) pc.setqf("spider_dungeon", 1) pc.setqf("eldorado", 1) d.join(22) end end end when login with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.getqf("spider_dungeon") 1 and pc.getqf("eldorado") 1 and pc.in_dungeon() begin pc.setqf("spider_dungeon", 0) pc.setqf("eldorado", 0) d.notice("<Informacja> Witajcie w Komnacie Baronówny Pająków! ") d.notice("<Informacja> Odpierajcie ataki wroga w tym czasie musicie rozbić 5 Pajęczych Jaj, następnie czeka Was kolejne wyzwanie!") d.notice("<Informacja> Macie na to 20 minut.") d.notice("<Informacja> Powodzenia!") d.spawn_mob(2095, 357, 577) d.spawn_mob(2095, 378, 578) d.spawn_mob(2095, 376, 598) d.spawn_mob(2095, 357, 596) d.spawn_mob(2095, 367, 585) timer("regen", 2) timer("eldoka", 1200) end when eldoka.timer with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin d.notice("<Informacja> Czas się skończył! Zostaniecie wyrzuceni z Komnaty Baronówenj!") d.exit_all() end when regen.timer with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin d.regen_file("data/dungeon/spider_dungeon_regen.txt") end when 2095.party_kill with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin d.setf("metin", d.getf("metin")+1) if d.getf("metin") == 1 then d.notice("<Informacja> Jedeo Pajęcze Jajo został zniszczony!") elseif d.getf("metin") == 2 then d.notice("<Informacja> Dwa Pajęcze Jaja zostały zniszczone!") elseif d.getf("metin") == 3 then d.notice("<Informacja> Trzy Pajęcze Jaja zostały zniszczone!") elseif d.getf("metin") == 4 then d.notice("<Informacja> Cztery Pajęcze Jaja zostały zniszczone!") elseif d.getf("metin") == 5 then d.kill_all() d.jump_all(368+512, 523+5632) d.notice("<Informacja> Zbiliście wszystkie Pajęcze Jaja. ") d.notice("<Informacja> Teraz musicie zabić wszystkie potwory, następnie pokonajcie Baronówne Pająków! ") timer("regenikxd", 2) end end when regenikxd.timer with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin d.regen_file("data/dungeon/spider_dungeon_regen.txt") end when 2074.party_kill with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin d.set_warp_at_eliminate(2, d.get_map_index(), 512+368, 5632+523, "data/dungeon/spider_dungeon_regen1.txt") end when 2092.party_kill with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin timer("Exit_Z", 40) d.notice("<Informacja> Doskonała robota Baronówna pokonana! ") d.notice("<Informacja> Macie 40 sekund zanim Was wyrzuci, pospieszcie się! ") end when Exit_Z.timer with pc.get_map_index() >= 22000000 and pc.get_map_index() < 23000000 and pc.in_dungeon() begin d.exit_all() end endend
Opublikowano 23 Marca23 Mar Weź tego questa daj do kosza, wygląda jak z 2008 roku. Jak chcesz to Ci napisze normalnego dunga za jakieś grosze.
Opublikowano 23 Marca23 Mar Rozwiązanie d.join(22) -> 22 to id twojej mapy dungeona. Prywatna instancja tworzy index mapy mnożąc base id razy 10 000. Tzn pierwsza instancja dungeonu bedzie miala id w twoim przpadku 220000 kolejna 220001 itd... az do restartu serwera. Wiec warunek powinienes poprawic na:when login with pc.get_map_index() >= 220000 and pc.get_map_index() < 230000 and pc.getqf("spider_dungeon") begin.when login with pc.get_map_index() >= 220000and pc.get_map_index() < 230000 and d.getqf("spider_dungeon") == 1 and pc.in_dungeon() begind.notice("<Informacja> Witajcie w Komnacie Baronówny Pająków! ")Powinno wtedy zadziałać.I lepiej uzywac zmiennych przypisanych do dungeona d. niz postaci pc. moim zdaniem.Zamiast pc.setqf("spider_dungeon", 1) to d.setqf("spider_dungeon", 1) zaraz po d.join()Chociaż i bez tego by sie obeszło.I zamiast zwyklych timerów to server timery lepiej uzywac, przekazująć w arg() id prywatnej instancji dungeona, zwykle timery ci padną jak wywali postac i mozesz zapomniec o powrocie na dunga na takim quescie + mają jeszcze inne wady.
Opublikowano 23 Marca23 Mar 30 minut temu, ouiai napisał(a):d.join(22) -> 22 to id twojej mapy dungeona. Prywatna instancja tworzy index mapy mnożąc base id razy 10 000. Tzn pierwsza instancja dungeonu bedzie miala id w twoim przpadku 220000 kolejna 220001 itd... az do restartu serwera. Wiec warunek powinienes poprawic na:when login with pc.get_map_index() >= 220000 and pc.get_map_index() < 230000 and pc.getqf("spider_dungeon") begin.when login with pc.get_map_index() >= 220000and pc.get_map_index() < 230000 and d.getqf("spider_dungeon") == 1 and pc.in_dungeon() begind.notice("<Informacja> Witajcie w Komnacie Baronówny Pająków! ")Powinno wtedy zadziałać.I lepiej uzywac zmiennych przypisanych do dungeona d. niz postaci pc. moim zdaniem.Zamiast pc.setqf("spider_dungeon", 1) to d.setqf("spider_dungeon", 1) zaraz po d.join()Chociaż i bez tego by sie obeszło.I zamiast zwyklych timerów to server timery lepiej uzywac, przekazująć w arg() id prywatnej instancji dungeona, zwykle timery ci padną jak wywali postac i mozesz zapomniec o powrocie na dunga na takim quescie + mają jeszcze inne wady.Co ma wspólnego server_timer z powrotem na dungeon?34 minuty temu, Rain94 napisał(a):Weź tego questa daj do kosza, wygląda jak z 2008 roku. Jak chcesz to Ci napisze normalnego dunga za jakieś grosze.Darmowe lepsze
Opublikowano 23 Marca23 Mar 2 minuty temu, KoYGeR napisał(a):Co ma wspólnego server_timer z powrotem na dungeon?Darmowe lepszeJak zwyklym timerem bedzie mialo np. rozpocząc kolejny stage dungeonu "za 10 sekund" np. zrespić bossa/spota/metka i wywali postac zanim ten timer dojdzie do konca, to timer sie nie wykona bo jest przypisany do postaci, ktorej nie ma i calego dunga szlak trafi nawet jak postać na niego wróci powrotem na dungeona, to instancja juz bedzie "zbugowana". Trzeba byloby oflagowywac doatkowe warunki "co jesli sie odjebie to i to...". Same problemy z tego tytułu. A sever timer wykona swoje zadanie nawet jesli postaci nie ma na dungeonie ani w grze. No chyba, ze sie myle to prosze mnie wyprowadzic z bledu, może sie przekonam zeby uzywac zwyklych tiemrow niz server_tiemrow, jesli przedstawisz zalety tego pierwszego.A i tam wyzej sie jeblem nie d.getqf i d.setqf tylko d.getf i d.setf
Opublikowano 23 Marca23 Mar 26 minut temu, ouiai napisał(a):Jak zwyklym timerem bedzie mialo np. rozpocząc kolejny stage dungeonu "za 10 sekund" np. zrespić bossa/spota/metka i wywali postac zanim ten timer dojdzie do konca, to timer sie nie wykona bo jest przypisany do postaci, ktorej nie ma i calego dunga szlak trafi nawet jak postać na niego wróci powrotem na dungeona, to instancja juz bedzie "zbugowana". Trzeba byloby oflagowywac doatkowe warunki "co jesli sie odjebie to i to...". Same problemy z tego tytułu. A sever timer wykona swoje zadanie nawet jesli postaci nie ma na dungeonie ani w grze. No chyba, ze sie myle to prosze mnie wyprowadzic z bledu, może sie przekonam zeby uzywac zwyklych tiemrow niz server_tiemrow, jesli przedstawisz zalety tego pierwszego.A i tam wyzej sie jeblem nie d.getqf i d.setqf tylko d.getf i d.setfJa nigdzie nie napisałem, że server_timer nie jest odpowiednim rozwiązaniem tutaj. Chodziło o to, że server_timer nie ma nic wspólnego z powrotem na dungeon, bo ani tego nie umożliwia, ani tego nie blokuje. W podstawowym src metina nie ma możliwości powrotu na dungeon (z wyjątkiem może dungeonów grupowych i to w szczególnych przypadkach, choć nie sprawdzałem tego tylko wolałem to zrobić jak trzeba). Natomiast to prawda - zwykły timer nie wykona się jeśli naszą postać wyloguje. Napisałeś to chaotycznie i nie zrozumiałem przekazu. Edytowane 23 Marca23 Mar przez KoYGeR
Opublikowano 23 Marca23 Mar 15 minut temu, KoYGeR napisał(a):Ja nigdzie nie napisałem, że server_timer nie jest odpowiednim rozwiązaniem tutaj. Chodziło o to, że server_timer nie ma nic wspólnego z powrotem na dungeon, bo ani tego nie umożliwia, ani tego nie blokuje. W podstawowym src metina nie ma możliwości powrotu na dungeon (z wyjątkiem może dungeonów grupowych i to w szczególnych przypadkach, choć nie sprawdzałem tego tylko wolałem to zrobić jak trzeba). Natomiast to prawda - zwykły timer nie wykona się jeśli naszą postać wyloguje. Napisałeś to chaotycznie i nie zrozumiałem przekazu.No właśnie, otóż to. Bezpośrednio server_timer nie ma nic wspolnego z powrotem na dungeon, jednak pośrednio już tak, bo co z tego, że ktoś wróci na dungeon jak go już do końca nie dociągnie, bo bedzie zbugowany przez uzycie zlego timeru. Nie sztuką wgrać se system "rozszerzający" pewną funkcjonalność bazową, jeśli ona sama w sobie będzie chujowo napisana. A co do tematu to warto dzielić się dobrymi praktykami z innymi i tlumaczyc pewne aspekty a nie rzucać tekstami "wal na priv, zrobie ci gotowca za $$$" bo duzo osób jest ambitnych i wolą zrobić coś samemu i przy okazji sie czegoś nauczyć. To forum rozwojowe, dyskusyjne a nie pchli market czy jakiś bazar. To sie tyczy Obu Panów powyżej...
Opublikowano 23 Marca23 Mar Autor @ouiai Dzięki za wyjaśnienie co jest 5 w questach dungów. Zrobiłem tako jaki swój pod dunga i trybi. Temat można zamknąć, jednak nie czyta ze zrozumieniem ^^