Quest - Piatra spiritului

Închis
Avatar utilizator
Asky
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 1472
Membru din: 08 Oct 2014, 17:32
Regat: Chunjo
Aprecieri: 98  
Mulţumiri: 4811  
Discord: Copiază ID
 Contact:
Medalii

Un quest pentru piatra spiritului mai complex.

Cod: Selectaţi tot

quest training_grandmaster_skill begin 
    state start begin
	when 50513.use begin	
		say_title("Piatra spiritului")
		say("")
		local seelicount = pc.count_item(50513)
	    if pc.get_skill_group() == 0 then	
		say("Nu aveþi abilitãþi care pot fi antrenate.")	
		say("")
		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("Ai folosit pergamentul exorcizãrii. Acum poþi")
			say("citi o piatrã a spritiului.")
			say("")
		wait()			
			say_title("Piatra spiritului")				
		else			
		    say("Trebuie sã aºtepþi o zi pentru a putea citi")	
			say("o piatrã a spiritului sau foloseºte")	
			say("pergamentul exorcizãrii.")	
			say("")
		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("Nu aveþi abilitãþi care pot fi antrenate.")	
			say("")
		return
	    end

	    say("Selectaþi abilitatea care doriþi sã fie antrenatã.")
		say("")
	    local menu_list = {}
	    table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
	    table.insert(menu_list, "Renunþã ") 
	    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 -cenzurat-_alignment = pc.get_real_alignment()
	    local need_alignment = 1000+500*(skill_level-30)

	    local title=string.format("Antreneazã %s", skill_name)
		if pc.count_item(50513) != seelicount then		
			say("Nu ai piatra spiritului!")		
		return
		end		
			say_title(title)
			say("")
			say("Pentru a citi o piatra a spritiului ai nevoie")
			say("de puncte de grad.")
			say("")
	    if -cenzurat-_alignment<-19000+need_alignment then		
			say_reward("Ai prea puþine puncte de grad.")	
			say("")
			return
	    end

	    if -cenzurat-_alignment<0 then
		
		say_reward("Punctele tale de grad vor scãdea dupã ")
		say_reward("dupã citirea pietrei. Vei pierde")
		say_reward(string.format( "între %d ºi %d puncte de grad.", need_alignment, need_alignment*2))		
		
		need_alignment=need_alignment*2
	    elseif -cenzurat-_alignment<need_alignment then		
			say(string.format("Puncte de grad necesare: %d", need_alignment))		
			say_reward("Este posibil ca rangul tãu sã fie negativ")
			say_reward("dupã citirea pietrei.")	
	    else
		say_orange(string.format("Puncte de grad necesare: %d", need_alignment))
	    end
	    say("")

	    local s = select ("Învaþã ","Renunþã ")
		
				  if s == 2 then
			return
	    end

	    if -cenzurat-_alignment>=0 and -cenzurat-_alignment<need_alignment then
		say_title(string.format("%s ", title))
		say("")
		
		say("Pentru a citi piatra spiritului trebuie sã ")
		say("introduci în caseta de mai jos cuvântul")
		say_reward("Antrenament")
		say("")
		say_reward("Este posibil ca dupã citirea pietrei, rangul")
		say_reward("tãu sã fie negativ.")

		local s=input()
		
		if s!="Antrenament" 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()
			
			end	
	    end
	    pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
	    if need_alignment>0 then
		if pc.learn_grand_master_skill(skill_vnum) then
		    pc.change_alignment(-need_alignment)

		    say_title(string.format("%s", title))
			say("")
		    if 40 == pc.get_skill_level(skill_vnum) then
			
			say(string.format("%s este perfect antrenat.", skill_name))
			say("")
			pc.remove_item(50513, 1)  			
		    else		
			say(string.format ( "Antrenamentul a reuºit.", skill_name, skill_level-30+1+1))				
				pc.remove_item(50513, 1)  			
				end
		    say_reward (string.format("Punctele de grad au scãzut cu: %d ", need_alignment))			
		    say("")			
				else				
		    say_title(string.format("%s", title))
			say("")			
		    say_reward("Antrenamentul a eºuat.")
		    say("")
		    pc.change_alignment(-number(need_alignment/3, need_alignment/2))				
				pc.remove_item(50513, 1)  			
					end
				end			
			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 = {}

			table.foreach(skill_list, 
			function(i, skill_vnum) 
			local skill_level = pc.get_skill_level(skill_vnum)

			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}
		end
    end
end

Imagine
Afișează semnătura
Avatar utilizator
ZNF
Membru Club

Membru Club
Mesaje: 1953
Membru din: 16 Feb 2014, 10:09
Aprecieri: 15  
Mulţumiri: 110  
Discord: Copiază ID
Medalii

Subiect inchis, a mai fost postat.
Închis
Răspunsuri
0
Vizualizări
224
Răspunsuri
1
Vizualizări
335
Răspunsuri
2
Vizualizări
438
Răspunsuri
2
Vizualizări
482

Înapoi la “Arhivă”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 3 vizitatori