Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.
Testy nowej platformy wystartowały chcesz pomóc kształtować nowa wersje portalu - daj znać na priv a podrzucimy dostęp do wczesnej wersji

Baronówka (MISJA)

Featured Replies

Opublikowano

Hej, bawiłem się teraz w misję na dungeon z baronówką. Generalnie to zależy mi właśnie na tych zasadach jakie napisałem w queście. 3 osoby w pt minimum, tylko baronówka do sklepania, wymóg od każdego członka przepustki, oraz godzinny cooldown. Próbowałem zrobić to na zasadzie questów dungeonowych od plechito, a że jestem zielony to ciężko mi się połapać co mogłem zrobić źle, bądz czego nie dodałem. Jeśli ktoś ma czas by na to zerknąć i chętnie by pomógł to by było super.

baron_dungeon.luaNiedostępne

Rozwiązane przez Gargamel

Opublikowano
  • Rozwiązanie
HTMLKod został skopiowany
--[[    Quest: Kryjówka Baronówny    Edit by: Gargamel    Data: 15.10.2024    Opis: edit dla uzytkownika forum sharegon.pl]] quest baron begin	state start begin	function settings()		return		{			["baron_dungeon_index"] = 193,			["baron_dungeon_warp"] = {881,6148},			["index_out"] = 193,			["out_pos"] = {691, 6118},			["level_check"] = {				["minimum"] = 60,				["maximum"] = 70			},			["pass"] = 30324,			["main_npc"] = 9257, 							["main_npc_pos"] = {178, 485},			["baron"] = 2092, 							["baron_pos"] = {371, 589},		};	end		--------PARTY AND ENTER	function party_get_member_pids()		return party.get_member_pids()	end		function is_baroned()		local pMapIndex = pc.get_map_index();		local data = baron_dungeon.settings();		local map_index = data["baron_dungeon_index"]; 		return pc.in_dungeon() and pMapIndex >= map_index*10000 and pMapIndex < (map_index+1)*10000;	end		function clear_barondungeon()		d.clear_regen();		d.kill_all();	end		function clear_barontimers()		clear_server_timer("baron_dungeon_wave_kill", get_server_timer_arg())		clear_server_timer("baron_dungeon_20min_left", get_server_timer_arg())		clear_server_timer("baron_dungeon_10min_left", get_server_timer_arg())		clear_server_timer("baron_dungeon_5min_left", get_server_timer_arg())		clear_server_timer("baron_dungeon_1min_left", get_server_timer_arg())		clear_server_timer("baron_dungeon_0min_left", get_server_timer_arg())		clear_server_timer("baron_dungeon_final", get_server_timer_arg())	end		function check_enter()		say("")		say("")		say("")		say_title(mob_name(9257))		local settings = baron_dungeon.settings()				if ((get_global_time() - pc.getf("baron_dungeon","exit_baron_dungeon_time")) < 60*60) then					local remaining_wait_time = (pc.getf("baron_dungeon","exit_baron_dungeon_time") - get_global_time() + 60*60)			say("Musisz zaczekać godzinę, jeśli chcesz wejść ponownie.")			say_reward("Możesz wejść ponownie za: "..get_time_remaining(remaining_wait_time)..'[ENTER]')			return		end				if party.is_party() then						if not party.is_leader() then				say_reward("Pozwól, że porozmawiam z twoim Liderem.")				return			end 			if party.get_near_count() < 3 then				say_reward("Twoja grupa musi zawierać minimum")				say_reward("3 członków, którzy muszą")				say_reward("znajdować się w pobliżu.")				return false;			end						local levelCheck = true			local passCheck = true			local MemberHaveLowLevel = {}			local MemberHaveHighLevel = {}			local MemberHaveNoTicket = {}			local pids = {party.get_member_pids()}						if not party.is_map_member_flag_lt("exit_baron_dungeon_time", get_global_time() - 60 * 60 ) then				say_reward("Niektórzy członkowie grupy muszą")				say_reward("jeszcze chwilę poczekać.")				return false;			end									for i, pid in next, pids, nil do				q.begin_other_pc_block(pid)				if pc.get_level(pid) < settings["level_check"]["minimum"] then					table.insert(MemberHaveLowLevel, pc.get_name())					levelCheck = false				end				q.end_other_pc_block()			end 			if not levelCheck then				say_reward("Jeśli chcesz wejść na dungeon,")				say_reward("każdy członek grupy musi posiadać minimum 60 poziom.")				say_reward("")				say_reward("Gracze bez odpowiedniego poziomu: ")				for i, n in next, MemberHaveLowLevel, nil do					say_title("- "..n)				end				return			end						for i, pid in next, pids, nil do				q.begin_other_pc_block(pid)				if pc.get_level(pid) > settings["level_check"]["maximum"] then					table.insert(MemberHaveHighLevel, pc.get_name())					levelCheck = false				end				q.end_other_pc_block()			end 			if not levelCheck then				say_reward("Jeśli chcesz wejść na dungeon,")				say_reward("każdy członek grupy musi posiadać maksymalnie 70 poziom.")				say("")				say_reward("Gracze bez odpowiedniego poziomu:")				for i, n in next, MemberHaveHighLevel, nil do					say_title("- "..n)				end				return			end						for i, pid in next, pids, nil do				q.begin_other_pc_block(pid)				if pc.count_item(settings.pass) < 1 then					table.insert(MemberHaveNoTicket, pc.get_name())					passCheck = false				end				q.end_other_pc_block()			end 			if not passCheck then				say_reward("Jeśli chcesz wejść na dungeon,")				say_reward("każdy członek grupy musi posiadać:")				say_item("Pajęczy Klucz", settings["pass"], "")				say("")				say_reward("Gracze bez Pajęczego Klucza:")				for i, n in next, MemberHaveNoTicket, nil do					say_title("- "..n)				end				return			end			else					if ((get_global_time() - pc.getf("baron_dungeon","exit_baron_dungeon_time")) < 60*60) then							local remaining_wait_time = (pc.getf("baron_dungeon","exit_baron_dungeon_time") - get_global_time() + 60*60)				say("Musisz zaczekać przed ponownym wejściem do lochu.")				say_reward("Możesz udać się ponownie za: "..get_time_remaining(remaining_wait_time)..'[ENTER]')				return			end						if (pc.get_level() < settings["level_check"]["minimum"]) then				say(string.format("Minimalny poziom by wejść do lochu to %d.", settings["level_check"]["minimum"]))				return false;			end						if (pc.get_level() > settings["level_check"]["maximum"]) then				say(string.format("Maksymalny poziom by wejść do lochu to %d.", settings["level_check"]["maximum"]))				return false;			end						if (pc.count_item(settings["pass"]) < 1) then				say_reward("Jeśli chcesz wejść na dungeon,")				say_reward("musisz posiadać ")				say_item("Pajęczy Klucz", settings["pass"], "")				return false;			end		end				return true;	end		------------CREATE DUNGEON	function create_dungeon()		local setting = baron_dungeon.settings()		local pids = {party.get_member_pids()}				if party.is_party() then			for i, pid in next, pids, nil do				q.begin_other_pc_block(pid)				pc.remove_item(setting["pass"], 1)				q.end_other_pc_block()			end			d.new_jump_party(setting["baron_dungeon_index"], setting["baron_dungeon_warp"][1], setting["baron_dungeon_warp"][2])			d.setf("baron_dungeon_level", 1)			server_timer("baron_dungeon_20min_left", 20*60, d.get_map_index()) -- Zmieniono czas na 20 minut		else			pc.remove_item(setting["pass"], 1)			d.new_jump(setting["baron_dungeon_index"], setting["baron_dungeon_warp"][1]*100, setting["baron_dungeon_warp"][2]*100)			d.setf("baron_dungeon_level", 1)			server_timer("baron_dungeon_20min_left", 20*60, d.get_map_index()) -- Zmieniono czas na 20 minut		end	end		-----------LOGIN IN DUNGEON [OUT COORDS SETTING]		when login with baron_dungeon.is_baroned() begin			local settings = baron_dungeon.settings()									d.set_warp_location(settings["baron_dungeon_index_out"], settings["out_pos"][1], settings["out_pos"][2]);			if not pc.is_gm() then				if not pc.in_dungeon() then					pc.warp(settings["baron_dungeon_index_out"], settings["out_pos"][1]*100, settings["out_pos"][2]*100)				end			end		end 		--DUNGEON ENTER		when 9257.chat."Kryjówka Baronówny" with not baron_dungeon.is_baroned() begin			local settings = baron_dungeon.settings()			say_title(mob_name(9257))			say("")			say("Witaj wojowniku!")			say("Jestem strażnikiem tego oto.")			say("Świętego Nagrobka")			say("Nagrobek ten, często jest nawiedzany.")			say("przez Baronównę pająków.")			say("Jeśli chcesz, wpuszczę cię tam.")			say("Tylko nie myśl o tym, by iść samemu.")			say("Baronówna posiada ogromną moc.")			wait()			say("")			say_title(mob_name(9257))			say("")			say("Czy chcesz spróbować?.")			if (select ("Tak", "Nie") == 1) then				if baron_dungeon.check_enter() then					say_reward("Bądź ostrożny, masz tylko 20 minut")					say_reward("na zabicie Baronówny.")					say_reward("Następnie, teleportuję cię do siebie.")					wait()					baron_dungeon.create_dungeon()				end			end		end				---TIME RESET - ONLY FOR GM		when 9257.chat."Resetuj Czas" with pc.is_gm() and not baron_dungeon.is_baroned() begin			addimage(25, 10, "baron_bg_01.tga")			say("")			say("")			say("")			if select('Resetuj Czas','Zamknij') == 2 then return end				say("")				say("")				say("")				say_title(mob_name(9257))				say("")				say("Czas został zresetowany.")				pc.setf('baron_dungeon','exit_baron_dungeon_time', 0)								-- Dungeon Info				pc.setqf("rejoin_time", get_time() - 3600)		end				when login with baron_dungeon.is_baroned() begin			local settings = baron_dungeon.settings()						d.notice("Kryjówka Baronówny: Jest i ona!")			d.notice(string.format("Kryjówka Baronówny: %s nadchodzi!", mob_name(settings["baron"])))			d.spawn_mob(settings["baron"], settings["baron_pos"][1], settings["baron_pos"][2])					end			when kill with baron_dungeon.is_baroned() and not npc.is_pc() and npc.get_race() == 2092 and d.getf("baron_dungeon_level") == 1 begin			baron_dungeon.clear_barondungeon()			d.notice("Kryjówka Baronówny: Pomyślnie przeszedłeś przez Kryjówkę!")			d.notice("Kryjówka Baronówny: Zostaniesz teleportowany za 2 minuty")			d.notice("Kryjówka Baronówny: z Kryjówki.")			server_timer("baron_dungeon_is_done", 115, d.get_map_index())			d.setf("baron_dungeon_level", 2)		end 		when baron_dungeon_20min_left.server_timer begin			if d.select(get_server_timer_arg()) then				d.notice("Kryjówka Baronówny: 15 minut do końca!!!")				server_timer("baron_dungeon_10min_left", 5*60, d.get_map_index())			end		end				when baron_dungeon_10min_left.server_timer begin			if d.select(get_server_timer_arg()) then				d.notice("Kryjówka Baronówny: 10 minut do końca!! Dawaj!")				server_timer("baron_dungeon_5min_left", 5*60, d.get_map_index())			end		end				when baron_dungeon_5min_left.server_timer begin			if d.select(get_server_timer_arg()) then				d.notice("Kryjówka Baronówny: 5 minut do końca!! Zegar tyka!!")				server_timer("baron_dungeon_1min_left", 4*60, d.get_map_index())			end		end				when baron_dungeon_1min_left.server_timer begin			if d.select(get_server_timer_arg()) then				d.notice("Kryjówka Baronówny: 1 minuta!! Zaraz wszystko przepadnie!")				server_timer("baron_dungeon_0min_left", 60, d.get_map_index())			end		end				when baron_dungeon_0min_left.server_timer begin			if d.select(get_server_timer_arg()) then				d.notice("Kryjówka Baronówny: Czas się skończył. Zostajecie wydaleni z kryjówki.")				server_timer("baron_dungeon_final", 5, d.get_map_index())			end		end				when baron_dungeon_final.server_timer begin			if d.select(get_server_timer_arg()) then												d.exit_all()			end		end				when logout with baron_dungeon.is_baroned() begin 			pc.setf("baron_dungeon","exit_baron_dungeon_time", get_global_time())			pc.setqf("baron_dungeon", get_time() + 3600)		end	endend

 

 

 

Wprowadzone zmiany:

  • Poprawione odwołania do poziomu graczy przy użyciu pid w funkcji check_enter. (sprawdź jak to działa, nie jestem pewny)
  • Doprecyzowanie komunikatów o czekaniu.
  • Poprawione timery, aby odpowiadały rzeczywistym wartościom, w tym czas na 20 minut w lochu.
  • Poprawki w dialogach.
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.