Quest mit Auswahl! :)

10/10/2015 18:48 Alife#1
Hallo Liebe Community, ich versuche seit 3 Stunden, eine Auswahl zu Coden.
Ich habe soweit eine Quest geschrieben, das man nach 80 FDM's
ein GK Schild+9 Bekommt.. Dies möchte ich jetzt ändern mit Auswahl.

Beispiel:
Ich Kloppe jetzt 80 FDM's und nach den 80 FDM's Bekomme ich eine Auswahl
In der Auswahl soll stehen:

Nun hast du Erfolgreich 80 FDM's gekloppt
Jetzt kannst du dir 4x Sachen aussuchen!

"GK Schild+9"
"Amulett der ewigen liebe"
"Ebis+9"
"Windschuhe"


Ich hoffe jemand kann mir weiter helfen!

Hier ist mein Code!


Code:
quest stein_farm begin
	state start begin
		when login with pc.level >= 100 begin
			set_state(information)
		end
	end

	state information begin
		when letter begin
			send_letter("Feuer der Macht")
		end

		when info or button begin
			say("Feuer der Macht")
			say("Nun bist du so weit!")
			say("Farm mir 80 Feuer der Macht")
			say("Wenn du dies getan hast, bekommst") 
			say("du von mir eine große Belohnung!")
			say("nämlich 1x GK Schild womit du Perfekt im PVP bist! ")
			say("")
			say_reward("Deine Aufgabe:") 
			say_reward("zeig mir das du 80 Feuer der Macht Kloppst!")
			say("")
	        pc.setqf("state", 80)
	        q.set_counter("Metin der Niedertracht", 80)
		end

		when 8056.kill begin
			local count = pc.getqf("state") - 1
			if count <= 80 then
				pc.setqf("state", count)
	            q.set_counter("Metin der Niedertracht", count)
			end
			if count == 0 then
			    say_title("Feuer der Macht 1")
			    say("Du hast die Quest erfolgreich abgeschlossen!")
				say("Du erhälst:")
			    say_reward("GK-Schild+9")
				pc.give_item2(13140, 1)
				clear_letter()
				set_state(__COMPLETE__)

			end
		end
	end

	state __COMPLETE__ begin
	end
end

Mit Freundlichen Grüßen,
Alife
10/10/2015 19:00 AlphaGenY#2
PHP Code:
quest stein_farm begin
    state start begin
        when login with pc
.level >= 100 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Feuer der Macht")
        
end

        when info 
or button begin
            say
("Feuer der Macht")
            
say("Nun bist du so weit!")
            
say("Farm mir 80 Feuer der Macht")
            
say("Wenn du dies getan hast, bekommst"
            
say("du von mir eine große Belohnung!")
            
say("nämlich 1x GK Schild womit du Perfekt im PVP bist! ")
            
say("")
            
say_reward("Deine Aufgabe:"
            
say_reward("zeig mir das du 80 Feuer der Macht Kloppst!")
            
say("")
            
pc.setqf("state"80)
            
q.set_counter("Metin der Niedertracht"80)
        
end

        when 8056.kill begin
            local count 
pc.getqf("state") - 1
            
if count <= 80 then
                pc
.setqf("state"count)
                
q.set_counter("Metin der Niedertracht"count)
            
end
            
if count == 0 then
                say_title
("Feuer der Macht 1")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
local aselect("Item1""Item2""Item3""Item4")
                    if 
1==a then
                        pc
.give_item2(xxxx1)
                        
say("")
                    
end
                    
if 2==a then
                        pc
.give_item2(xxxx1)
                        
say("")
                    
end
                    
if 3==a then
                        pc
.give_item2(xxxx1)
                        
say("")
                    
end
                    
if 4==a then
                        pc
.give_item2(xxxx1)
                        
say("")
                    
end
                end    
                
                clear_letter
()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
ich hab es nicht getestet aber müsste so gehen :D
10/10/2015 19:08 rollback#3
Ich habe deine Quest mal angepasst und eine Auswahl hinzugefügt. Ausserdem hatte deine Quest noch einen fatalen Fehler: Wenn man den Questbrief anklickt wurde der Counter jedes mal wieder auf 80 gesetzt.
Noch zu bedenken: mobvnum.kill sollte man nicht mehr benutzen, damit kann man dieses Monster nur 1x innerhalb einer Quest nutzen. Deshalb möglichst kill with npc.get_race() == mobvnum nutzen.

Das nächste mal bitte in einem der Sticky Threads (Questerstellung /-kontrolle) posten.

Code:
quest stein_farm begin
	state start begin
		when login or levelup with pc.get_level() >= 100 begin
			pc.setqf("kills_left", 80)
			set_state("information")
		end
	end
	
	state information begin
		when login or enter begin
			send_letter("Feuer der Macht")
			q.set_counter("Feuer der Macht", pc.getqf("kills_left"))
		end
		
		when info or button begin
			say("Feuer der Macht")
			say("Nun bist du so weit!")
			say("Farm mir 80 Feuer der Macht")
			say("Wenn du dies getan hast, bekommst") 
			say("du von mir eine große Belohnung!")
			say("nämlich 1x GK Schild womit du Perfekt im PVP bist! ")
			say("")
			say_reward("Deine Aufgabe:") 
			say_reward("zeig mir das du 80 Feuer der Macht Kloppst!")
			say("")
		end

		when kill with npc.get_race() == 8056 begin
			local newCount = pc.getqf("kills_left") - 1
			
			pc.setqf("kills_left", newCount)
			q.set_counter("Feuer der Macht", newCount)
			
			if newCount < 1 then
				clear_letter()
				set_state("success")
			end
		end
	end
	
	state success begin
		when login or enter begin
			send_letter("Feuer der Macht: Abgeschlossen")
		end
		
		when button or info begin
			local itemVnums = {
				13140,
				1,--vnum von item2
				1,--vnum von item3
				1,--vnum von item4
			}
			local itemNames = {}
			
			for _,vnum in ipairs(itemVnums) do
				table.insert(itemNames, item_name(vnum))
			end
			table.insert(itemNames, "Später auswählen")
			
			
			say_title("Feuer der Macht 1")
			say("Du hast die Quest erfolgreich abgeschlossen!")
			say("Wähle deine Belohnung aus!")
			local vnum = itemVnums[select_table(itemNames)] or false
			if not vnum then return end
			
			pc.give_item2(vnum)
			clear_letter()
			set_state("__COMPLETE__")
		end
	end

	state __COMPLETE__ begin
	end
end
10/10/2015 20:41 Alife#4
Quote:
Originally Posted by Seחsi View Post
Ich habe deine Quest mal angepasst und eine Auswahl hinzugefügt. Ausserdem hatte deine Quest noch einen fatalen Fehler: Wenn man den Questbrief anklickt wurde der Counter jedes mal wieder auf 80 gesetzt.
Noch zu bedenken: mobvnum.kill sollte man nicht mehr benutzen, damit kann man dieses Monster nur 1x innerhalb einer Quest nutzen. Deshalb möglichst kill with npc.get_race() == mobvnum nutzen.

Das nächste mal bitte in einem der Sticky Threads (Questerstellung /-kontrolle) posten.

Code:
quest stein_farm begin
	state start begin
		when login or levelup with pc.get_level() >= 100 begin
			pc.setqf("kills_left", 80)
			set_state("information")
		end
	end
	
	state information begin
		when login or enter begin
			send_letter("Feuer der Macht")
			q.set_counter("Feuer der Macht", pc.getqf("kills_left"))
		end
		
		when info or button begin
			say("Feuer der Macht")
			say("Nun bist du so weit!")
			say("Farm mir 80 Feuer der Macht")
			say("Wenn du dies getan hast, bekommst") 
			say("du von mir eine große Belohnung!")
			say("nämlich 1x GK Schild womit du Perfekt im PVP bist! ")
			say("")
			say_reward("Deine Aufgabe:") 
			say_reward("zeig mir das du 80 Feuer der Macht Kloppst!")
			say("")
		end

		when kill with npc.get_race() == 8056 begin
			local newCount = pc.getqf("kills_left") - 1
			
			pc.setqf("kills_left", newCount)
			q.set_counter("Feuer der Macht", newCount)
			
			if newCount < 1 then
				clear_letter()
				set_state("success")
			end
		end
	end
	
	state success begin
		when login or enter begin
			send_letter("Feuer der Macht: Abgeschlossen")
		end
		
		when button or info begin
			local itemVnums = {
				13140,
				1,--vnum von item2
				1,--vnum von item3
				1,--vnum von item4
			}
			local itemNames = {}
			
			for _,vnum in ipairs(itemVnums) do
				table.insert(itemNames, item_name(vnum))
			end
			table.insert(itemNames, "Später auswählen")
			
			
			say_title("Feuer der Macht 1")
			say("Du hast die Quest erfolgreich abgeschlossen!")
			say("Wähle deine Belohnung aus!")
			local vnum = itemVnums[select_table(itemNames)] or false
			if not vnum then return end
			
			pc.give_item2(vnum)
			clear_letter()
			set_state("__COMPLETE__")
		end
	end

	state __COMPLETE__ begin
	end
end
Danke dir, das habe ich genau gesucht!!
Was ist wenn ich die Quest nocheinmal Benutzen will
Muss ich dann den Counter ändern?

also den hier:

Code:
q.set_counter("Feuer der Macht", newCount)
Mit Freundlichen Grüßen,
Alife
10/10/2015 21:29 MaxChri#5
Quote:
Originally Posted by Alife View Post
Danke dir, das habe ich genau gesucht!!
Was ist wenn ich die Quest nocheinmal Benutzen will
Muss ich dann den Counter ändern?

also den hier:

Code:
q.set_counter("Feuer der Macht", newCount)
Mit Freundlichen Grüßen,
Alife
Wenn die Quest wieder von vorne gehen soll, setz am Ende "set_state(start)".