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

Poprawa questu na tęczaka


Rekomendowane odpowiedzi

Opublikowano

Cześć forumowicze, mam problem z questem na tzw. tęczaka (Tęczowy kamień), który powinien w teorii podnosić skille z G na P (jest to quest z MPCForum użytkownika Tacens). W rzeczywistości jednak działa on jak najzwyklejszy kamień duchowy. Jeżeli ktoś miałby chwilkę, bardzo prosiłbym o jego poprawienie, bądź wstawienie własnego o ile ktoś taki ma i chce udostępnić.

 

Pozdrawiam

-----------------------------------------------------------
---quest by Tacens-----------------------------------------
-----------------------------------------------------------
quest kamien_duchowyy begin
	state start begin
		when 50512.use begin
				say_title("Zaawansowane Szkolenie Umiejętności")

			if pc.get_skill_group() == 0 then
				say_title("Zaawansowane Szkolenie Umiejętności")
				say("Nie wybrałeś jeszcze drogi duchowej."..pc.get_skill_group())
				return
			end
			if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
				if pc.is_skill_book_no_delay() then
					say("Trening spowoduje usunięcie efektu")
					say("Zwoju Egzorcyzmu.")
					wait()
					say_title("Zaawansowane Szkolenie Umiejętności")
				else
					say("Musisz użyć Zwoju Egzorcyzmu zanim ponownie")
					say("rozpoczniesz trening przed upływem 24 godzin.")
					return
				end
			end
			local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
			local vnum_list = result[1]
			local name_list = result[2]
			if table.getn(vnum_list) == 0 then
				say("Nie możesz trenować żadnej umiejętności.")
				return
			end
			say("Proszę wybrać umiejętność, którą chcesz trenować.")
			say("")
			local menu_list = {}
			table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
			table.insert(menu_list, "Anuluj")
			local s=select_table(menu_list)
			if table.getn(menu_list) == s then
				return
			end
			local skill_name=name_list[s]
			local skill_vnum=vnum_list[s]
			local skill_level = pc.get_skill_level(skill_vnum)
			local cur_alignment = pc.get_real_alignment()
			local need_alignment = 1000+500*(skill_level-30)
			test_chat("˛{¦bµ˝´c­Č: "..cur_alignment)
			test_chat("»Ý­nµ˝´c­Č: "..need_alignment)
			local title=string.format("Trening %s", skill_name)
			say_title(title)
			say("Jeżeli użyjesz tego kamienia")
			say("twoja umiejętność zostanie podwyższona,")
			say("do poziomu perfect Master")
			if cur_alignment<-19000+need_alignment then
				say_reward("żeby trenować umiejętność potrzeba by ranga nie dochodziła do -15000.")
				return
			end
			if cur_alignment<0 then
				need_alignment=need_alignment*2
			elseif cur_alignment<need_alignment then
				else
				end
			say("")
			local s=select("Dalej", "Anuluj")
			if s==2 then
				return
			end
			if cur_alignment>=0 and cur_alignment<need_alignment then
				say_title(title)
				say_reward("Kontynuuj")
				say("Jeśli będziesz kontynuował trening umiejętności,")
				say("możliwe jest, że twoje punkty Rangi przyjmą ")
				say("wartość ujemną i będziesz miał negatywną Rangę.")
				say("Jeśli chcesz kontynuować, wpisz poniżej słowo")
				say('trenuj')
				say_reward("trenuj")
				say("Jeżeli nie chcesz już trenować, wciśnij 'ENTER'.")
				local s=input()
				if s!="trenuj" then
					return
				end
			end
			if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
				if pc.is_skill_book_no_delay() then
					pc.remove_skill_book_no_delay()
				else
					say("[°ŞŻĹµĄŻĹ]§ŢŻŕ­×˝mżů»~: Ąđ®§¤¤")
					return
				end
			end
			pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
			if need_alignment>0 then
				if pc.set_skill_level(skill_vnum, 59) then
					pc.change_alignment(-need_alignment)
					say_title(title)
					if 30 == pc.get_skill_level(skill_vnum, 59) then
					say_reward("Powodzenie!")
					say("Gratulacje! Udało się!")
					say(string.format("%s jest teraz na poziomie Perfect Master.", skill_name))
					say("To oznacza, że osiągnąłeś poziom Perfekcyjny tej")
					say("umiejętności. Dalsze jej szkolenie jest")
					say("niemożliwe.")
					else
					say_reward("Powodzenie!")
					say("Gratulacje! Udało się!")
					say(string.format("%s jest teraz na poziomie Perfect Master.", skill_name))
					say("To oznacza, że osiągnąłeś poziom Perfekcyjny tej")
					say("umiejętności. Dalsze jej szkolenie jest")
					say("niemożliwe.")
					end
					say_reward("Powodzenie!")
					say("Gratulacje! Udało się!")
					say(string.format("%s jest teraz na poziomie Perfect Master.", skill_name))
					say("To oznacza, że osiągnąłeś poziom Perfekcyjny tej")
					say("umiejętności. Dalsze jej szkolenie jest")
					say("niemożliwe.")
				else
					say_reward("Powodzenie!")
					say("Gratulacje! Udało się!")
					say(string.format("%s jest teraz na poziomie Perfect Master.", skill_name))
					say("To oznacza, że osiągnąłeś poziom Perfekcyjny tej")
					say("umiejętności. Dalsze jej szkolenie jest")
					say("niemożliwe.")
				end
			end
			item.remove()
		end
		function BuildGrandMasterSkillList(job, group)
			GRAND_MASTER_SKILL_LEVEL = 30
			PERFECT_MASTER_SKILL_LEVEL = 40
			local skill_list = special.active_skill_list[job+1][group]
			local ret_vnum_list = {}
			local ret_name_list = {}
			-- test_chat(string.format("job=%d, group=%d", job, group))
			table.foreach(skill_list,
			function(i, skill_vnum)
				local skill_level = pc.get_skill_level(skill_vnum)
				-- test_chat(string.format("[%d]=%d", skill_vnum, skill_level))
				if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
					table.insert(ret_vnum_list, skill_vnum)
					local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
					if name == nil then name=skill_vnum end
					table.insert(ret_name_list, name)
				end
			end)
			return {ret_vnum_list, ret_name_list}

			--return {ret_vnum_list, ret_name_list}
		end
	end
end
Opublikowano

@Serwisantmt2

 

chodzi mi o to, żeby działał jak kamol (tzn wybór skilla, wszystko pięknie ładnie), ale żeby nie podnosił go o +1, tylko dawał na P (tego wybranego skilla oczywiście)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...