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

Rekomendowane odpowiedzi

Opublikowano

Witam, czy ktoś mógłby mi skrócić tego questa, tak żeby nie zajmował tyle linijek? Wszystko się w nim powtarza, a jak zrobię go dla pozostałych profesji to będzie 2 razy dłuższy.

quest mozliwosc_czytania_kamoli begin
	state start begin	
		when 20089.chat."Trening" with pc.get_level() >= 35 and pc.get_job() == 0 begin
			local body = {50401, 50402, 50403, 50404, 50405}
			local mental = {50416, 50417, 50418, 50419, 50420}
			say_yellow("Trener:")
			say("Jeżeli chcesz trenować umiejętności dostarcz mi ")
			say("każdą z Instrukcji Umiejętności Twojej profesji.")
			say("")
			wait()
			say_yellow("Trener:")
			say("Czy chcesz oddać Instrukcje?")
			local s = select("Tak", "Nie")
			if s == 2 then
				return
			else
				if pc.get_job() == 0 and pc.get_skill_group()== 1 then
					if pc.count_item(body[1]) and pc.count_item(body[2]) and pc.count_item(body[3]) and pc.count_item(body[4]) and 
						pc.count_item(body[5]) >= 1 then
						pc.remove_item(body[1], 1)
						pc.remove_item(body[2], 1)
						pc.remove_item(body[3], 1)
						pc.remove_item(body[4], 1)
						pc.remove_item(body[5], 1)
						pc.setf("trening2", "ok", 1)
					else
						say_yellow("Trener:")
						say_red("Nie posiadasz wszystkich Instrukcji!")
						say("Wróć do mnie gdy zdobędziesz wszystkie.")
						say("")
					end
				elseif pc.get_job() == 0 and pc.get_skill_group()== 2 then
					if pc.count_item(mental[1]) and pc.count_item(mental[2]) and pc.count_item(mental[3]) and pc.count_item(mental[4]) and 
						pc.count_item(mental[5]) >= 1 then
						pc.remove_item(mental[1], 1)
						pc.remove_item(mental[2], 1)
						pc.remove_item(mental[3], 1)
						pc.remove_item(mental[4], 1)
						pc.remove_item(mental[5], 1)
						pc.setf("trening2", "ok", 1)
					else
						say_yellow("Trener:")
						say_red("Nie posiadasz wszystkich Instrukcji!")
						say("Wróć do mnie gdy zdobędziesz wszystkie.")
						say("")
					end
				end
			end
		end
		when 20093.chat."Trening" with pc.get_level() >= 35 and pc.get_job() == 1 begin
			local dagger = {50431, 50432, 50433, 50434, 50435}
			local archer = {50446, 50447, 50448, 50449, 50450}
			say_yellow("Trener:")
			say("Jeżeli chcesz trenować umiejętności dostarcz mi ")
			say("każdą z Instrukcji Umiejętności Twojej profesji.")
			say("")
			wait()
			say_yellow("Trener:")
			say("Czy chcesz oddać Instrukcje?")
			local s = select("Tak", "Nie")
			if s == 2 then
				return
			else
				if pc.get_job() == 1 and pc.get_skill_group()== 1 then
					if pc.count_item(dagger[1]) and pc.count_item(dagger[2]) and pc.count_item(dagger[3]) and pc.count_item(dagger[4]) and 
						pc.count_item(dagger[5]) >= 1 then
						pc.remove_item(dagger[1], 1)
						pc.remove_item(dagger[2], 1)
						pc.remove_item(dagger[3], 1)
						pc.remove_item(dagger[4], 1)
						pc.remove_item(dagger[5], 1)
						pc.setf("trening2", "ok", 1)
					else
						say_yellow("Trener:")
						say_red("Nie posiadasz wszystkich Instrukcji!")
						say("Wróć do mnie gdy zdobędziesz wszystkie.")
						say("")
					end
				elseif pc.get_job() == 1 and pc.get_skill_group()== 2 then
					if pc.count_item(archer[1]) and pc.count_item(archer[2]) and pc.count_item(archer[3]) and pc.count_item(archer[4]) and 
						pc.count_item(archer[5]) >= 1 then
						pc.remove_item(archer[1], 1)
						pc.remove_item(archer[2], 1)
						pc.remove_item(archer[3], 1)
						pc.remove_item(archer[4], 1)
						pc.remove_item(archer[5], 1)
						pc.setf("trening2", "ok", 1)
					else
						say_yellow("Trener:")
						say_red("Nie posiadasz wszystkich Instrukcji!")
						say("Wróć do mnie gdy zdobędziesz wszystkie.")
						say("")
					end
				end
			end
		end
	end
end

Opublikowano

Nie testowany.

quest mozliwosc_czytania_kamoli begin
	state start begin	
		when 20089.chat."Trening" with pc.get_level() >= 35 begin
			local k = pc.get_job()
			local p = pc.get_skill_group()

			local ITEM = {
				[0] = { -- wojownik
					[1] = {50401, 50402, 50403, 50404, 50405}, -- body
					[2] = {50416, 50417, 50418, 50419, 50420}, -- mental
				},
				[1] = { -- ninja
					[1] = {50431, 50432, 50433, 50434, 50435}, -- dagger
					[2] = {50446, 50447, 50448, 50449, 50450}, -- archer
				},
			},	
			say_yellow("Trener:")
			say("Jeżeli chcesz trenować umiejętności dostarcz mi ")
			say("każdą z Instrukcji Umiejętności Twojej profesji.")
			say("")
			wait()
			say_yellow("Trener:")
			say("Czy chcesz oddać Instrukcje?")
			local s = select("Tak", "Nie")
			if s == 2 then
				return
			else
				if pc.count_item(ITEM[k][p][1]) and pc.count_item(ITEM[k][p][2]) and pc.count_item(ITEM[k][p][3]) and pc.count_item(ITEM[k][p][4]) and pc.count_item(ITEM[k][p][5]) >= 1 then
					for i = 1, 5 do
						pc.remove_item(ITEM[k][p][i], 1)
					end
					pc.setf("trening2", "ok", 1)
				else
					say_yellow("Trener:")
					say_red("Nie posiadasz wszystkich Instrukcji!")
					say("Wróć do mnie gdy zdobędziesz wszystkie.")
					say("")
				end
			end
		end
	end
end

Opublikowano

Dzięki, teraz pytanie, jeżeli mam 4 NPC o różnym ID to muszę dla każdego NPC napisać to samo (4x when), tylko po prostu pozmieniać id książek? Czy da się to jeszcze zapisać skrócenie dla 4 npc?

Opublikowano

Jeśli chcesz aby ten quest można było wywołać u innych npc to wystarczy dopisać ich id w when

when ID_NPC1.chat or ID_NPC2.chat or ID_NPC3.chat or ID_NPC4.chat."Trening" with pc.get_level() >= 35 begin

Powiększasz jedynie tablicę 

[2] = { -- sura

        [1] = {}, -- wp

        [2] = {}, -- bm

},

[3] = { -- szaman

        [1] = {}, -- smok

        [2] = {}, -- heal

},

Opublikowano

tak, o tym wiem, że mogę zrobić or, lecz zależy mi na tym, aby dana klasa postaci mogła  rozmawiać tylko z danym npc (np. ninja - 20089, wojownik 20090) itd.

dlaczego jak próbuję napisać to w ten sposób:

when 20089.chat."Trening" with pc.get_job() == 0 or 20091.chat."Trening" with pc.get_job() == 1 then

to otrzymuję błąd?

Opublikowano

Aktualnie nie przychodzi mi nic innego do głowy ;/

quest mozliwosc_czytania_kamoli begin
	state start begin	
		when ID_NPC1.chat or ID_NPC2.chat or ID_NPC3.chat or ID_NPC4.chat."Trening" with pc.get_level() >= 35 begin
			local n = npc.get_race()
			local k = pc.get_job()
			local p = pc.get_skill_group()
			
			local TAB = {
				[ID_NPC1] = {
					[0] = { -- wojownik
						[1] = {50401, 50402, 50403, 50404, 50405}, -- body
						[2] = {50416, 50417, 50418, 50419, 50420}, -- mental
					},
				},
				[ID_NPC2] = {

					[1] = { -- ninja
						[1] = {50431, 50432, 50433, 50434, 50435}, -- dagger
						[2] = {50446, 50447, 50448, 50449, 50450}, -- archer
					},
				},
				[ID_NPC3] = {
					[2] = { -- sura
						[1] = {}, -- wp
						[2] = {}, -- bm
					},
				},
				[ID_NPC4] = {
					[3] = { -- szaman
						[1] = {}, -- smok
						[2] = {}, -- heal
					},
				},
			},
			
			say_yellow("Trener:")
			say("Jeżeli chcesz trenować umiejętności dostarcz mi ")
			say("każdą z Instrukcji Umiejętności Twojej profesji.")
			say("")
			wait()
			say_yellow("Trener:")
			say("Czy chcesz oddać Instrukcje?")
			local s = select("Tak", "Nie")
			if s == 2 then
				return
			else
				if pc.count_item(TAB[n][k][p][1]) and pc.count_item(TAB[n][k][p][2]) and pc.count_item(TAB[n][k][p][3]) and pc.count_item(TAB[n][k][p][4]) and pc.count_item(TAB[n][k][p][5]) >= 1 then
					for i = 1, 5 do
						pc.remove_item(TAB[n][k][p][i], 1)
					end
					pc.setf("trening2", "ok", 1)
				else
					say_yellow("Trener:")
					say_red("Nie posiadasz wszystkich Instrukcji!")
					say("Wróć do mnie gdy zdobędziesz wszystkie.")
					say("")
				end
			end
		end
	end
end

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...