Questen

06/06/2015 00:05 Tobii12xx#1
Hey, kennt sich hier jemand mit Quest's schreiben aus?
06/06/2015 00:06 ProfessorEnte#2
Nein, niemand.
Schau aber mal hier:

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
06/06/2015 00:08 Tobii12xx#3
Da hab ich meine Quest schon 100x gepostet, mir kann niemand helfen
06/06/2015 01:43 KΛIƬӨ#4
Poste sie hier mal nochmal.
06/06/2015 03:58 Tobii12xx#5
Das wäre die 1.

Code:
quest regenbogen begin
    state start begin
            when 50512.use  begin
                
                say_title("Regenbogenstein:")
                say("Du möchtest also deine Skills ")
                say("Perfektionieren?")
                
                if pc.job ==0 then
                say("Wähle deine Lehre aus")
                
                local s=select("Körper","Mental")
                
                if s==1 then
				local s=select("3Wegeschnitt","Schwertwirbel","Kampfrausch","Aura","Sausen")
				if s==1 then
                pc.set_skill_group(1)
                pc.set_skill_level(1 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
				pc.set_skill_group(1)
                pc.set_skill_level(2 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(1)
                pc.set_skill_level(3 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(1)
                pc.set_skill_level(4 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(1)
                pc.set_skill_level(5 ,59)
                say("Erfolgreich geskillt!")
                end
                
				if s==2	then
				local s=select("Durchschlag","Heftiges Schlagen","Stampfer","Starker Körper","Schwertschlag")
                if s==1 then
                pc.set_skill_group(2)
                pc.set_skill_level(16 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
                pc.set_skill_group(2)
                pc.set_skill_level(17 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(2)
                pc.set_skill_level(18 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(2)
                pc.set_skill_level(19 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(2)
                pc.set_skill_level(20 ,59)
				say("Erfolgreich geskillt!")
                end
                
                elseif pc.job ==1 then
                say("Wähle deine Lehre aus")
                
                local s=select("Nahkampf","Fernkampf")
                
                if s==1 then               
				local s=select("Hinterhalt","Blitzangriff","Degenwirbel","Tarnung","Giftwolke")
				if s==1 then
                pc.set_skill_group(3)
                pc.set_skill_level(31 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
                pc.set_skill_group(3)
                pc.set_skill_level(32 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(3)
                pc.set_skill_level(33 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(3)
                pc.set_skill_level(34 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(3)
                pc.set_skill_level(35 ,59)
				say("Erfolgreich geskillt!")
                end
                
                if s==2 then
				local s=select("Wiederholter Schuss","Pfeilregen","Feuerpfeil","Federschreiten","Giftpfeil")
				if s==1 then
                pc.set_skill_group(4)
                pc.set_skill_level(46 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
                pc.set_skill_group(4)
                pc.set_skill_level(47 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(4)
                pc.set_skill_level(48 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(4)
                pc.set_skill_level(49 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(4)
                pc.set_skill_level(50 ,59)
				say("Erfolgreich geskillt!")
                end
                
                elseif pc.job ==2 then
                say("Wähle deine Lehre aus")
                local s=select("Magie","Waffe")
                
                if s==1 then
				local s=select("Dunkler Schlag","Flammenschlag","Geist der Flamme","Dunkler Schutz","Geisterschlag","Dunkler Stein")
				if s==1 then
                pc.set_skill_group(5)
                pc.set_skill_level(76 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
                pc.set_skill_group(5)
                pc.set_skill_level(77 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(5)
                pc.set_skill_level(78 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(5)
                pc.set_skill_level(79 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(5)
                pc.set_skill_level(80 ,59)
				say("Erfolgreich geskillt!")
				if s==6 then
                pc.set_skill_group(5)
                pc.set_skill_level(81, 59)
				say("Erfolgreich geskillt!")
                end
                
                if s==2 then
				local s=select("Fingerschlag","Drachenwirbel","Verzauberte Klinge","Furcht","Verzauberte Rüstung","Zauber Aufheben")
				if s==1then
                pc.set_skill_group(6)
                pc.set_skill_level(61 ,59)
				say("Erfolgreich geskillt!")
				if s==2then
                pc.set_skill_group(6)
                pc.set_skill_level(62 ,59)
				say("Erfolgreich geskillt!")
				if s==3then
                pc.set_skill_group(6)
                pc.set_skill_level(63 ,59)
				say("Erfolgreich geskillt!")
				if s==4then
                pc.set_skill_group(6)
                pc.set_skill_level(64 ,59)
				say("Erfolgreich geskillt!")
				if s==5then
                pc.set_skill_group(6)
                pc.set_skill_level(65 ,59)
				say("Erfolgreich geskillt!")
				if s==6then
                pc.set_skill_group(6)
                pc.set_skill_level(66 ,59)
				say("Erfolgreich geskillt!")
                end
                
                elseif pc.job ==3 then
                say("Wähle deine Lehre aus")
                local s=select("Heilung","Drache")
                
                if s==1 then
				local s=select("Blitzwurf","Blitz heraufbeschwören","Blitzkralle","Kurieren","Schnelligkeit","Angriff+")
				if s==1 then
                pc.set_skill_group(7)
                pc.set_skill_level(106 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
                pc.set_skill_group(7)
                pc.set_skill_level(107 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(7)
                pc.set_skill_level(108 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(7)
                pc.set_skill_level(109 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(7)
                pc.set_skill_level(110 ,59)
				say("Erfolgreich geskillt!")
				if s==6 then
                pc.set_skill_group(7)
                pc.set_skill_level(111 ,59)
				say("Erfolgreich geskillt!")
                end
                
                if s==2 then
				local s=select("Fliegender Talisman","Drachenschiessen","Drachengebrüll","Segen","Reflektieren","Hilfe des Drachens")
				if s==1 then
                pc.set_skill_group(8)
                pc.set_skill_level(91 ,59)
				say("Erfolgreich geskillt!")
				if s==2 then
                pc.set_skill_group(8)
                pc.set_skill_level(92 ,59)
				say("Erfolgreich geskillt!")
				if s==3 then
                pc.set_skill_group(8)
                pc.set_skill_level(93 ,59)
				say("Erfolgreich geskillt!")
				if s==4 then
                pc.set_skill_group(8)
                pc.set_skill_level(94 ,59)
				say("Erfolgreich geskillt!")
				if s==5 then
                pc.set_skill_group(8)
                pc.set_skill_level(95 ,59)
				say("Erfolgreich geskillt!")
				if s==6 then
                pc.set_skill_group(8)
                pc.set_skill_level(96 ,59)
				say("Erfolgreich geskillt!")
                end
            end
        end
    end
end
Und das die 2.

Code:
quest regenbogen begin
    state start begin
        when 50512.use begin
            say_title("Regenbogenstein:")
            say("Du möchtest also deine Skills ")
            say("Perfektionieren?")
            say""
            local race = pc.job
            local sel = select_table(({{"Körper","Mental"},{"Nahkampf","Fernkampf"},{"Magie","Waffe"},{"Heilung","Drache"}})[race+1])
            local SelJob= {}
            for i,skill_id in pairs(special.active_skill_list[race+1][sel])do table.insert(SelJob,locale.GM_SKILL_NAME_DICT[skill_id])end
            table.insert(SelJob,"Abbrechen")
            local SelJobSkill = select_table(SelJob)
            if SelJobSkill ~= table.getn(SelJobSkill) then
                pc.set_skill_group(sel)
                pc.set_skill_level(special.active_skill_list[race+1][sel][SelJobSkill],59)
                say(string.format("%q",locale.GM_SKILL_NAME_DICT[special.active_skill_list[race+1][sel][SelJobSkill]]).." wurde auf Perfekt verbessert.")
            else
                return 
            end
        end
    end
end
06/06/2015 09:59 rollback#6
Das sind halt Quests, da sehe ich schon beim drüberfliegen, dass ich da kein Bock habe die zu korrigieren. Wir nehmen sie in den Sammelthreads wahr, allerdings macht mich alleine die Einrückung bei der 1. Quest schon verrückt.

Wenn du mal in meine Releases schaust, findest du da einen Regi der alle Skills auf P setzt.

[Only registered and activated users can see links. Click Here To Register...]

Das hier ist die Quest:
Code:
quest regi begin
	state start begin
		when 36000.use or 36001.use or 36002.use or 36003.use begin
			local from_to = ({
				[36000] = {20, 30},
				[36001] = {30, 40},
				[36002] = {20, 40},
				[36003] = {0, 40}
			})[item.get_vnum()]
			regenbogenstein(item.get_vnum(), from_to[1], from_to[2])
		end
		function regenbogenstein(item_vnum, from, to)
			if pc.get_skill_group() == 0 then
				say_title("Regenbogenstein")
				say("")
				say("Du hast noch keine Lehre gewählt und hast somit")
				say("auch keine Fertigkeiten, die erhöht werden könnten.")
				say("")
				say_reward("Bitte wähle zunächst eine Lehre.")
				say("")
				return
			end
			local skillList = BuildSkillList(from, to)
			if table.getn(skillList[1]) < 1 then
				say_title("Regenbogenstein")
				say("")
				say("Du hast keine Fertigkeiten auf der erforderlichen")
				say("Stufe.")
				say("")
				say_reward("Bitte versuche es erneut, wenn du deine")
				say_reward("Fertigkeiten erhöht hast.")
				say("")
				return
			end
			say_reward("Welche Fertigkeit möchtest du steigern?")
			local s = select3(skillList[2])
			if s < 1 then return end
			say_title("Regenbogenstein")
			say("")
			say_reward("Möchtest du die Stufe von ...")
			say_reward(skillList[2][s])
			say_reward("... wirklich erhöhen?")
			say("")
			local accept = select(skillList[2][s].." erhöhen", "Abbrechen")
			if accept == 2 then return end
			if pc.count_item(item_vnum) < 1 then
				say("Du hast keinen Regenbogenstein mehr ...")
				say("versuch nicht zu schummeln!")
				return
			end
			pc.remove_item(item_vnum, 1)
			if from == 0 and to == 40 then
				pc.set_skill_level(skillList[1][s], pc.get_skill_level(skillList[1][s])+1)
			else
				pc.set_skill_level(skillList[1][s], to)
			end
			say_title("Regenbogenstein")
			say("")
			say("Herzlichen Glückwunsch, die Stufe von ...")
			say(skillList[2][s])
			say("... wurde erfolgreich erhöht.")
			say("")
			say_reward("Viel Spaß mit deinem Skill!")
			say("")
		end
	end
end
und das muss in die Questlib:
Code:
function BuildSkillList(from, to)
	local skillList = special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]
	local returnList = {{}, {}}
	for _, skill_vnum in pairs(skillList) do
		if pc.get_skill_level(skill_vnum) >= from and pc.get_skill_level(skill_vnum) < to then
			local name = locale.GM_SKILL_NAME_DICT[skill_vnum] or skill_vnum
			table.insert(returnList[1], skill_vnum)
			table.insert(returnList[2], name)
		end
	end
	return returnList
end
Der Regi funktioniert mit 4 Regis, welcher was macht erkennt du im Table. Wenn du nur einen brauchst sag einfach bescheid.
Vnum 36000: setzt einen Skill von M1 (oder höher) auf G1
Vnum 36001: setzt einen Skill von G1 (oder höher) auf P
Vnum 36002: setzt einen Skill von M1 (oder höher) auf P
Vnum 36003: erhöht die Stufe von einem Skill um 1