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

Problem z pet menu/game 2089


Rekomendowane odpowiedzi

Opublikowano

Siemka, mam problem jak w temacie, questy dodałem prawidlowo, peta przywoluje, ale gdy klikam na niego nic się nie dzieje, dodalem do quest functions i do quest lib :)?

Opublikowano


horse_summon.quest

5_Przezroczyste.png

 

Jeśli szukasz forum na silniku Invision Power Board,Serwer dedykowanego,czy nawet Strony www pod twój serwer metin2 zapraszam na GG : 47637476

 

 

Opublikowano

własnie i nic 

quest horse_summon begin
	state start begin
		function get_horse_summon_prob_pct() 
			local prob = {10,15,20,30,40,50,60,70,80,90,100}
			local skill_level = pc.get_skill_level(131) + 1
			return prob[skill_level]
		end
		
		when 20349.chat."Nowa Księga Zwykłego Konia " with horse.get_grade()==1 and pc.countitem("50051")<1 begin
			say_title("Stajenny:")
			say("Zgubiłeś Księgę Zwykłego Konia! ")
			say("Mogę dać Ci nową za 500.000 Yang.")
			local b=select("Tak", "Nie")
			if 1==b then
				if pc.money>=10000 then
					pc.changemoney(-10000)
					say_title("Informacja:")
					say("Oto nowa Księga Zwykłego Konia! [ENTER]Tym razem spróbuj jej nie zgubić! ")
					pc.give_item2("50051", 1)
				else
					say_title("Informacja:")
					say("Nie masz wystarczająco dużo yang!")
				end
			else
				return
			end
		end
		when 20349.chat."Nowa Księga Opancerz. Konia " with horse.get_grade()==2 and pc.countitem("50052")<1 begin
			say_title("Stajenny:")
			say("Zgubiłeś Księgę Opancerz. Konia! ")
			say("Mogę dać Ci nową za 500.000 Yang.")
			local b=select("Tak", "Nie")
			if 1==b then
				if pc.money>=50000 then
					pc.changemoney(-50000)
					say_title("Informacja:")
					say("Oto nowa Księga Opancerz. Konia![ENTER]Tym razem spróbuj jej nie zgubić! ")
					pc.give_item2("50052", 1)
				else
					say_title("Informacja:")
					say("Nie masz wystarczająco dużo yang!")
				end
			else
				return
			end
		end
		when 20349.chat."Nowa Księga Wojskowego Konia " with horse.get_grade()==3 and pc.countitem("50053")<1 begin
			say_title("Stajenny:")
			say("Zgubiłeś Księgę Wojskowego Konia! ")
			say("Mogę dać Ci nową za 500.000 Yang.")
			local b=select("Tak", "Nie")
			if 1==b then
				if pc.money>=100000 then
					pc.changemoney(-100000)
					say_title("Informacja:")
					say("Oto nowa Księga Wojskowego Konia![ENTER]Tym razem spróbuj jej nie zgubić! ")
					pc.give_item2("50053", 1)
				else
					say_title("Informacja:")
					say("Nie masz wystarczająco dużo yang!")
				end
			else
				return
			end
		end
		when 50051.use with horse.get_grade()==0 begin
			say_title("Informacja:")
			say_reward("Przywołanie konia jest nie możliwe.[ENTER]Nie posiadasz go!")
		end
		when 50051.use with horse.get_grade()==1 begin
		if PetSystem.IsPetLevel(horse.get_level()) then
				say("Vous avez fait n'importe quoi avec les")
				say("commande GM. Mettez le niveau du cheval")
				say("puis essayez ŕ nouveau.[ENTER]")				
				return					
			end	
			if pc.getsp()>=100 then
				if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
					say_title("Informacja:")
					say_reward("Koń został przywołany. ")
					say("")
					horse.summon()
				else
					say_title("Informacja:")
					say_reward("Przywołanie Konia dla profesjonalistów nie ")
					say_reward("powiodło się. ")
					say_reward("Możesz zwiększyć szansę na pomyślne ")
					say_reward("przywołanie poprzez trening swoich umiejętności.")
					say("")
				end
				pc.change_sp(-100)
			else
				say_title("Informacja:")
				say_reward("Masz za mało Punktów Energii. Aby przywołać ")
				say_reward("Konia, potrzebujesz ich co najmniej 300. ")
				say("")
			end
		end
		when 50051.use with horse.get_grade()==2 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50051.use with horse.get_grade()==3 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50052.use with horse.get_grade()==0 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50052.use with horse.get_grade()==1 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50052.use with horse.get_grade()==2 begin
		if PetSystem.IsPetLevel(horse.get_level()) then
				say("Vous avez fait n'importe quoi avec les")
				say("commande GM. Mettez le niveau du cheval")
				say("puis essayez ŕ nouveau.[ENTER]")				
				return					
			end	
			if pc.getsp()>=200 then
				if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
					say_title("Informacja:")
					say_reward("Koń został przywołany.")
					say("")
					horse.summon()
				else
					say_title("Informacja:")
					say_reward("Przywołanie Konia powiodło się. ")
					say_reward("Możesz zwiększyć szansę na pomyślne ")
					say_reward("przywołanie poprzez trening swoich umiejętności.")
					say("")
				end
				pc.change_sp(-200)
			else
				say_title("Informacja:")
				say_reward("Masz za mało Punktów Energii. Aby przywołać ")
				say_reward("Konia, potrzebujesz ich co najmniej 300. ")
				say("")
			end
		end
		when 50052.use with horse.get_grade()==3 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==0 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==1 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==2 begin
			say_title("Informacja:")
			say_reward("Ta księga nie jest odpowiednia!")
		end
		when 50053.use with horse.get_grade()==3 begin
		if PetSystem.IsPetLevel(horse.get_level()) then
				say("Vous avez fait n'importe quoi avec les")
				say("commande GM. Mettez le niveau du cheval")
				say("puis essayez ŕ nouveau.[ENTER]")				
				return					
			end	
			if pc.getsp()>=300 then
				if number(1, 100)<=horse_summon.get_horse_summon_prob_pct() then
					say_title("Informacja:")
					say_reward("Koń został przywołany.")
					say("")
					horse.summon()
				else
					say_title("Informacja:")
					say_reward("Przywołanie Konia nie powiodło się. ")
					say_reward("Możesz zwiększyć szansę na pomyślne ")
					say_reward("przywołanie poprzez trening swoich umiejętności. ")
					say("")
				end
				pc.change_sp(-300)
			else
				say_title("Informacja:")
				say_reward("Masz za mało Punktów Energii. Aby przywołać ")
				say_reward("Konia, potrzebujesz ich co najmniej 300. ")
				say("")
			end
		end
	
		-----***** Richiamo Pet
		when 53001.use or 53002.use or 53003.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use begin
			if not PetSystem.IsActive() then
				local PetNumber = {[53001]=1,[53002]=2,[53003]=3,[53005]=4,[53006]=5,[53007]=6,[53008]=7,[53009]=8}
				local petIndex = PetNumber[item.get_vnum()]
				if horse.is_dead() then
					say_title("Informacja:")
					say("Nie można przywołać martwego zwierzęcia.")
					say("Ożyw zwierze.[ENTER]")
					return
				end			
				local horse_lev = horse.get_level()
				local horse_name = horse.get_name()
				PetSystem.SetActivePet(petIndex)
				PetSystem.AddBonus(petIndex)
				PetSystem.SetHorseData(PetSystem[petIndex].Level, "Lv"..PetSystem.GetLevel(petIndex).." "..PetSystem[petIndex].Name)
				pet.summon()
				PetSystem.SetHorseData(horse_lev, horse_name)
				cleartimer("give_exp")
				loop_timer("give_exp", PetSystem.UpdateFrequency)
				chat(""..PetSystem[petIndex].Name.." zostal przywolany.")
			else
				PetSystem.PetBack() 				
			end
		end
		
		-----*****
		-----***** Roba varia per Pet
		-----*****
		
		when 30130.use begin
			if not PetSystem.IsActive() then
				chat("Należy odwolać swojego zwierzaka, aby dać mu doswiadczenie.")
				return
			end
			local PetHasGotExp = PetSystem.GiveExp(PetSystem.GetActivePet(), PetSystem.ItemExp)
			if not PetHasGotExp then
				chat("Twój zwierzak jest na maksymalnym poziomie.")
			else
				chat("Twój zwierzak otrzymal"..PetSystem.ItemExp.." punktów doswiadczenia.")
				pc.remove_item(item.get_vnum(), 1)
			end
		end
		
		when login begin
			if PetSystem.IsActive() then
				if pc.count_item(PetSystem[PetSystem.GetActivePet()].Item) != 0 and not horse.is_dead() then
					local horse_lev = horse.get_level()
					local horse_name = horse.get_name()		
					local PetIndex = PetSystem.GetActivePet()				
					PetSystem.SetHorseData(PetSystem[PetIndex].Level, "Lv"..PetSystem.GetLevel(PetIndex).." "..PetSystem[PetIndex].Name)
					pet.summon()
					PetSystem.SetHorseData(horse_lev, horse_name)
					loop_timer("give_exp", PetSystem.UpdateFrequency)
				else
					PetSystem.SetInactive()
					timer("remove_bonus", 2)
				end				
			end			
			pc.setqf("current_exp", pc.get_exp())
		end
		
		when remove_bonus.timer begin
			PetSystem.RemoveBonus()
		end	
		
		when give_exp.timer begin
			if PetSystem.IsActive() and not PetSystem.IsExpBlocked() then
				local gained_exp = pc.get_exp()-pc.getqf("current_exp")
				if gained_exp < 0 then
					pc.setqf("current_exp", pc.get_exp())
					return
				end
				local pet_exp = math.floor(gained_exp*3/100)
				if pet_exp != 0 then
					local PetHasGotExp = PetSystem.GiveExp(PetSystem.GetActivePet(), pet_exp)
					if PetHasGotExp then
						pc.give_exp2(-pet_exp)
						pc.setqf("current_exp", pc.get_exp())
					end					
				end
			end
		end
		when button or info begin
			say_title("Nowe Umiejetnosci")
			say("Twój zwierzak ma odblokowane")
			say("nowe umiejętności, aby dowiedzieć się")
			say("więcej przejśdz do menu Umiejętności .[ENTER]")
			q.done()
		end

		  -----***** Menu Pet
  when 20120.click begin PetSystem.ShowMenu(1) end
  when 20121.click begin PetSystem.ShowMenu(1) end
  when 20122.click begin PetSystem.ShowMenu(1) end
  when 20123.click begin PetSystem.ShowMenu(2) end
  when 20124.click begin PetSystem.ShowMenu(2) end
  when 20125.click begin PetSystem.ShowMenu(2) end
  when 20126.click begin PetSystem.ShowMenu(3) end
  when 20127.click begin PetSystem.ShowMenu(3) end
  when 20128.click begin PetSystem.ShowMenu(3) end
  when 20129.click begin PetSystem.ShowMenu(4) end
  when 20130.click begin PetSystem.ShowMenu(4) end
  when 20131.click begin PetSystem.ShowMenu(4) end
  when 20132.click begin PetSystem.ShowMenu(5) end
  when 20133.click begin PetSystem.ShowMenu(5) end
  when 20134.click begin PetSystem.ShowMenu(5) end
  when 20135.click begin PetSystem.ShowMenu(6) end
  when 20136.click begin PetSystem.ShowMenu(6) end
  when 20137.click begin PetSystem.ShowMenu(6) end
  when 20138.click begin PetSystem.ShowMenu(7) end
  when 20139.click begin PetSystem.ShowMenu(7) end
  when 20140.click begin PetSystem.ShowMenu(7) end
  when 20141.click begin PetSystem.ShowMenu(8) end
  when 20142.click begin PetSystem.ShowMenu(8) end
  when 20143.click begin PetSystem.ShowMenu(8) end
end
end


Ten też nic nie daje :

-----------------------------------------------
-- pet_system
------------------------------------------------
quest pet_system begin
state start begin
when 53001.use or 53002.use or 53003.use or 53004.use or 53005.use or 53006.use or 53008.use or 53007.use begin
local ItemValue = item.vnum
for i = 1, table.getn(PetArray), 1 do
if PetArray[i][1] == ItemValue then
local PetState = PetArray[i][2]
if pc.getqf("pet_index") == 0 then
if pc.getqf(PetState) == 0 then
local check = inizializza(i)
if check != 0 then return end
pc.setqf(PetState, 1)
end
pc.setqf("pet_index", i)
evoca(i, PET_SUMMON)
else
evoca(i, PET_UNSUMMON)
pc.setqf("pet_index", 0)
end
end
end
end
when 20120.click with pc.getqf("pet_index") == 1 begin show_pet_menu(1) end
when 20121.click with pc.getqf("pet_index") == 1 begin show_pet_menu(1) end
when 20122.click with pc.getqf("pet_index") == 1 begin show_pet_menu(1) end
when 20123.click with pc.getqf("pet_index") == 2 begin show_pet_menu(2) end
when 20124.click with pc.getqf("pet_index") == 2 begin show_pet_menu(2) end
when 20125.click with pc.getqf("pet_index") == 2 begin show_pet_menu(2) end
when 20126.click with pc.getqf("pet_index") == 3 begin show_pet_menu(3) end
when 20127.click with pc.getqf("pet_index") == 3 begin show_pet_menu(3) end
when 20128.click with pc.getqf("pet_index") == 3 begin show_pet_menu(3) end
when 20129.click with pc.getqf("pet_index") == 4 begin show_pet_menu(4) end
when 20130.click with pc.getqf("pet_index") == 4 begin show_pet_menu(4) end
when 20131.click with pc.getqf("pet_index") == 4 begin show_pet_menu(4) end
when 20132.click with pc.getqf("pet_index") == 5 begin show_pet_menu(5) end
when 20133.click with pc.getqf("pet_index") == 5 begin show_pet_menu(5) end
when 20134.click with pc.getqf("pet_index") == 5 begin show_pet_menu(5) end
when 20135.click with pc.getqf("pet_index") == 6 begin show_pet_menu(6) end
when 20136.click with pc.getqf("pet_index") == 6 begin show_pet_menu(6) end
when 20137.click with pc.getqf("pet_index") == 6 begin show_pet_menu(6) end
when 20138.click with pc.getqf("pet_index") == 7 begin show_pet_menu(7) end
when 20139.click with pc.getqf("pet_index") == 7 begin show_pet_menu(7) end
when 20140.click with pc.getqf("pet_index") == 7 begin show_pet_menu(7) end
when 20141.click with pc.getqf("pet_index") == 8 begin show_pet_menu(8) end
when 20142.click with pc.getqf("pet_index") == 8 begin show_pet_menu(8) end
when 20143.click with pc.getqf("pet_index") == 8 begin show_pet_menu(8) end

when kill with pc.getqf("pet_index") != 0 begin
local i = pc.getqf("pet_index")
if pc.get_level() > (npc.get_level() + 15) then
return
end
if pc.get_level() <= npc.get_level() then
PetGiveExp(i, 5)
elseif pc.get_level() <= (npc.get_level() + 5) then
PetGiveExp(i, 4)
elseif pc.get_level() <= (npc.get_level() + 10) then
PetGiveExp(i, 3)
elseif pc.get_level() <= (npc.get_level() + 15) then
PetGiveExp(i, 1)
end
end

when logout with pc.getqf("pet_index") != 0 begin
local i = pc.getqf("pet_index")
evoca(i, PET_UNSUMMON)
pc.setqf("pet_index", 0)
end
when login with pc.getqf("pet_index") != 0 begin
local i = pc.getqf("pet_index")
evoca(i, PET_UNSUMMON)
pc.setqf("pet_index", 0)
end
end
end

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...