Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Komnata Smoka


~bonzo

Rekomendowane odpowiedzi

Opublikowano

Napisałbym, że zbijam procenty ale zdziwko mam 0 :O

http://wklej.to/PqrNo
-- wow kłest by nismo łoł aplkacje takie złożone
quest komnata_smoka begin
	state start begin
		function main()
			say_title(mob_name(npc.race)..":")
			say("Chcesz wejść do Komnaty Smoka?")
			say("Oczywiście, tylko musisz spełniać ")
			say("odpowiednie warunki.")
			say()
			say_reward("Na pewno chcesz tam wejść?")
			local s = select("Chcę tam wejść!","Jakie muszę spełniać warunki?","Anuluj")
			if s == 1 then
				komnata_smoka.tp()
			elseif s == 2 then
				komnata_smoka.rules()
			end
		end
		function tp()
			if pc.getqf("metiny_bonus") > get_time() then
				say_title(mob_name(npc.race)..":")
				say("Musisz jeszcze odczekać swój limit!")
				local time = (pc.getqf("metiny_bonus") - get_time()) / 3600
				local h = math.floor(time)
				local min = (time - h)*60
				local m = math.floor(min)
				say_title("Pozostały czas: "..h.." godzin, "..m.." min.")
			--	return
			end
			-- if pc.level < 80 then
				-- say_title(mob_name(npc.race)..":")
				-- say("Nie masz 80 poziomu!")
			-- else
				-- if !party.is_party() then
					-- say_title(mob_name(npc.race)..":")
					-- say("Nie jesteś w grupie!")
				-- else
					-- if party.get_near_count() < 3 then
						-- say_title(mob_name(npc.race)..":")
						-- say("Twoja grupa musi mieć przynajmniej 3 osoby!")
					-- else
						-- if pc.count_item(70023) < 1 then
							-- say_title(mob_name(npc.race)..":")
							-- say("Potrzebujesz tego przedmiotu:")
							-- say_item_vnum(70023)
						-- else
							say_title(mob_name(npc.race)..":")
							say("Zostaniecie przeniesieni.")
							wait()
							pc.setqf("komnata_smoka", 1)
							pc.setqf("komnata_smoka_count", party.get_near_count())
							d.join(208)
							notice_all("<<Komnata Smoka>> Gracz "..pc.name.." <"..pc.level.." lv> wchodzi ze swoją grupą do Komnaty Smoka!")
						-- end
					-- end
				-- end
			-- end
		end
		function rules()
			say_title(mob_name(npc.race)..":")
			say("Oto zasady obowiązujące w Komnacie Smoka.")
			say_reward("1. Poziom")
			say("Musisz mieć przynajmniej 80 poziom postaci.")
			say_reward("2. Grupa")
			say("Musisz mieć przynajmniej 3 osobową grupę i być jej liderem.")
			say_reward("3. Przedmiot.")
			say("Musisz mieć przedmiot:")
			say_item_vnum(70023)
			if select("Wstecz","Anuluj") == 1 then
				komnata_smoka.main()
			end
		end
		when 20091.chat."Komnata Smoka" begin
			komnata_smoka.main()
		end
		when login with pc.in_dungeon() and pc.getqf("komnata_smoka") == 1 and pc.get_map_index() >= 208*10000 and pc.get_map_index() < 209*10000 begin
			d.notice("Witajcie w Komnacie Smoka!")
			d.notice("Waszym pierwszym celem będzie rozbicie czterech metinów.")
			d.notice("Po zabiciu ich dostaniecie 10% przeciwko potworom na czas trwania wyzwania.")
			d.notice("Powodzenia!")
			d.regen_file("data/dungeon/komnata_smoka_metiny.txt")
			pc.setqf("komnata_smoka", 0)
			d.setf("metiny", 0)
			pc.setqf("is_in_dc", 1)
			pc.setqf("dc_time1", get_time())
		end
		when kill or party_kill with npc.race == 8027 and pc.get_map_index() >= 208*10000 and pc.get_map_index() < 209*10000 begin
			d.setf("metiny", d.getf("metiny")+1)
			if d.getf("metiny") < 4 then
				d.notice("Pozostało wam do zabicia jeszcze "..4-d.getf("metiny").."!")
			elseif d.getf("metiny") == 4 then
				d.notice("Udało Wam się zniszczyć metiny! Dostajecie bonus na 30 minut.")
				d.notice("Za 10 sekund pojawi się główny przeciwnik. Przygotujcie się!")
				timer("komnata", 10)
				d.setf("metiny", 0)
			end
		end
		when komnata.timer begin
			affect.add_collect(63, 10, 60*30)
			pc.setqf("metiny_bonus", get_time()+60*30)
			d.notice("Otrzymaliście bonus. Smok właśnie się pojawił!")
			d.regen_file("data/dungeon/komnata_smoka_beran.txt")
			timer("beran", 60*10)
		end
		when beran.timer begin
			d.notice("Pozostało 20 minut!")
			timer("beran2", 60*10)
		end
		when beran2.timer begin
			d.notice("Pozostało 10 minut!")
			timer("beran3", 60*5)
		end
		when beran3.timer begin
			d.notice("Pozostało 5 minut!")
			timer("beran4", 60*4)
		end
		when beran4.timer begin
			d.notice("Pozostała minuta!")
			timer("beran5", 60)
		end
		when beran5.timer begin
			d.notice("Nie udało Wam się zabić smoka. Zostaniecie przeniesieni do miasta.")
			npc.purge()
			timer("beran6", 5)
		end
		when beran6.timer begin
			d.exit_all_to_start_position()
		end
		when kill or party_kill with npc.race == 2493 and pc.get_map_index() >= 208*10000 and pc.get_map_index() < 209*10000 begin
			d.notice("Udało Wam się zabić smoka!")
			d.notice("Macie 30 sekund na uzbieranie dropu.")
			d.notice("Po 30 sekundach zostaniecie przeniesieni do miasta.")
			timer("beran_out", 30)
			pc.setqf("dc_time2", get_time())
		end
		when beran_out.timer begin
			d.exit_all_to_start_position()
			pc.setqf("is_in_dc", 0)
			pc.setqf("dc_time", pc.getqf("dc_time2")-pc.getqf("dc_time1"))
			local time = pc.getqf("dc_time")/60
			local m = math.floor(time)
			local s0 = (time - m)*60
			local s = math.floor(s0)
			say_title(locale.servername.." ~ Komnata Smoka")
			say("Gratulujemy "..pc.name.."!")
			say("Ty oraz Twoja grupa pokonaliście Smoka")
			say("W czasie "..m.." minut i "..s.." sekund!")
			notice_all("<<Komnata Smoka>> Gracz "..pc.name.." <"..pc.level.." lv> ukończył wyzwanie z czasem "..m.." minut i "..s.." sekund!")
			pc.delqf("komnata_smoka_count")
		end
		when login or logout with pc.in_dungeon() and pc.getqf("is_in_dc") == 1 and pc.get_map_index() != 208*10000 begin
			d.exit_all_to_start_position()
			pc.delqf("komnata_smoka_count")
			pc.setqf("komnata_smoka", 0)
			pc.setqf("is_in_dc", 0)
			d.setf("metiny", 0)
		end
	end
end

do locale.lua dodać:

locale.servername="Nazwa_Serwera"

regeny w załączniku do ../data/dungeon

Ważne: Aby wszystkie warunki działały trzeba 'odkomentować' linijki: 26-56

komnata_smoka_beran.txt

komnata_smoka_metiny.txt

gwo9.jpg


Opublikowano

wow taki styl pisania, wow taki przypis, uszanowanko

wow uszanowanko wow. Pieseł taki kłester. Dużo kodu. błędów nie ma. Pieseł taka Gessler, poleca.

57199140501148694665.png

Opublikowano

Quen nie szalej bo chłopakowi siekę w głowię narobisz :|

Idź dalej robić poradniki o 'zmiennych globalnych', heh.

 

Jak robisz komentarze wieloliniowe proponuję jednak tak:

--[[ <coś>

<coś2>

<coś3>

]]

Ja to wiem, tylko że akurat w notepadzie jest taka fajna opcja który komentuje zaznaczone linie, której używam.

gwo9.jpg


Opublikowano

Idź dalej robić poradniki o 'zmiennych globalnych', heh.

 

Ja to wiem, tylko że akurat w notepadzie jest taka fajna opcja który komentuje zaznaczone linie, której używam.

Srsl, opcja? Naprawdę, użycie znaku komentarza (tzn --) musi być mocno wymagające..

@Bonus

Ahh! I moje poradniki są pro (jeśli jeszcze tego nie zauważyłeś..).

Opublikowano

@up

CTRL + Q na wszystkie zaznaczone linie automatycznie daje nam je w komentarz, a gdy zaznaczamy ich przykładowo 10, to po co robić to ręcznie? wytłumaczenie jest.

 

@top

10% dostajemy dopiero, gdy mamy wrzucone dodatkowe informacje do settings.lua(czy jakoś tak)

nie zauważyłem, że mamy tam już dodanie bonusu. Ale sam fakt, że gdy mamy uzupełniony ten plik to dzieją się różne rzeczy.

 

umarł

  • 1 miesiąc temu...
Opublikowano

w załączniku nie ma regenów są tylko bossy i metiny.

Ja się nie znam, ale to chyba tak ten dungeon działa :O

  • 1 miesiąc temu...
  • 1 miesiąc temu...
Opublikowano

A to trzeba dopisać sobie u jakiego npc rozpoczyna się to czy jest to zawarte już. bo nie widzę.   Gdzie rozpocząć teleport? 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...