[SERVICE] Die Questkontrolle

08/29/2011 12:15 F4m0uZStYle#3271
also haben die quest eben mal getestet bei mir klappt alles wenn ich 2305 vnum töte wird mir ein mob abgezogen,weiß nicht wieso das bei dir nicht geht oO
08/29/2011 12:19 coolmerto#3272
ich klich dann bei befehl: /m 2305 und d spawme ein bösen baum, kille es, gehe auf c dann auf aufträge, klicke auf Baum und da steht immernoch 100 von 100 :mad:


ich mach einfach eine neue quest
08/29/2011 17:04 xxglaubichauchxx#3273
PHP Code:
quest    Drachenport    begin
    state start begin
        when 20095.chat
."Zugang zum Drachental" begin
            say
("Seon-Hae:")
            
say("")
            
say("Sei gegrüsst Kämpfer!")
            
say("Ich habe im Westen des Landes")
            
say("alte Schriften gefunden. Mit Hilfe dieser Schriften")
            
say("ist es mir gelungen, ein magisches Tor")
            
say("zu einem längst vergessenem Ort herzustellen.")
            
say("Manch einer sagt, es gäbe an diesem Ort gefährliche Monster!")
            
say("Auch ein großer Drache soll schon gesehen worden sein.")
            
say("Ich werde dir das Portal zum Drachental öffnen,")
            
say("wenn dies dein Wunsch ist.")
            
local a select("Auf ins Tal des Drachen!","Ich habe Angst.")
            if 
== 1 then
                
if pc.get_level() >= 90 then
                    say
("Seon-Hae")
                    
say("")
                    
say("Nun gut,wie du willst...")
                    
say("...viel Glück.")
                    
wait()
                    
pc.warp(14092,10089)
                else
                    
say("Seon-Hae:")
                    
say("Du bist noch zu schwach.")
                    
say("Komme wieder, wenn du Level 90 erreicht hast.")
                
end    
            
elseif == 2 then
                say
("Seon-Hae:")
                
say("")
                
say("Vielleicht ist es besser so.")
            
end
        end
    end
end 
Joa, bricht ab, nachdem ich "Auf in's Tal des Drachen" geklickt habe, er portet nicht.
08/29/2011 17:32 F4m0uZStYle#3274
PHP Code:
quest Drachenport begin
    state start begin
        when 20095.chat
."Zugang zum Drachental" begin
            
if pc get_level ( ) < 90 then 
                say 
("Du hast noch nicht genuegend Erfahrung gesammelt. Komme wieder, wenn du Level 90 bist!")
            else 
            
say("Seon-Hae:")
            
say("")
            
say("Sei gegrüsst Kämpfer!")
            
say("Ich habe im Westen des Landes")
            
say("alte Schriften gefunden. Mit Hilfe dieser Schriften")
            
say("ist es mir gelungen, ein magisches Tor")
            
say("zu einem längst vergessenem Ort herzustellen.")
            
say("Manch einer sagt, es gäbe an diesem Ort gefährliche Monster!")
            
say("Auch ein großer Drache soll schon gesehen worden sein.")
            
say("Ich werde dir das Portal zum Drachental öffnen,")
            
say("wenn dies dein Wunsch ist.")
            
local a select("Auf ins Tal des Drachen","Ich habe Angst.")
            if 
== 1 then
                say_title
("Seon-Hae")
                
say("")
                
say("Nun gut,wie du willst...")
                
say("...viel Glück.")
                
pc.warp(14092,10089
            elseif 
== 2 then
                say_title
("Seon-Hae:")
                
say("")
                
say("Vielleicht ist es besser so.")
            
end
        end
    end
end 

versuch jetzt mal
08/29/2011 18:04 xxglaubichauchxx#3275
Vielen Dank Famouz, aber das ist nicht das Problem. Das Problem liegt ja darin, dass die ganze Quest funktioniert, nur dass ich am Ende nicht geportet werde. Trotzdem vielen Dank für die Mühe.

LG
08/29/2011 18:16 F4m0uZStYle#3276
dann liegt das an den warpkordinaten

bei einem pc.warp musst du die kompleten kordinaten hinschreiben damit er portet.

würd ich jetzt sagen
08/29/2011 20:49 coolmerto#3277
kann mir denn immernoch keiner helfen?

hab jetzt die quest neu gemacht, vorher gings auch nicht (siehe seite 328)

es geht einfach nicht, habe alles versucht und alles RICHTIG GEMACHT!

WIESO IST DAS SO,AUCH WENN ICH DAS MONSTER KILLE, STEHT DA NOCH 100 VON 100.

Screens:

Vor dem kill:
[Only registered and activated users can see links. Click Here To Register...]

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

Nach dem kill:
[Only registered and activated users can see links. Click Here To Register...]

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


Code:
----------------------------------------------
-- Baum
-- Made with Steffs Questmaker
----------------------------------------------
quest Baum_kill begin
    state start begin
        when login or levelup with pc.get_level() == 75 begin
            set_state(info)
        end
    end

    state info begin
        when letter begin
            send_letter("Baum")
        end
        when info or button begin
            say_title("Baum")
            say("Hallo Mutiger,")
            say("Ich habe einen schweren Autrag für dich.")
            say("Geh und zerstöre 100mal Böser Baum!")
            say_reward("Zerstöre 100mal Böser Baum")
            say("")
            pc.setqf("state", 100)
            q.set_counter("Böser Baum", 100)
            set_state(kill)
        end
    end
    state kill begin
        when letter begin
            send_letter("Baum")
        end
        when button or info begin
            say("Baum")
            say("")
            say("Du musst noch "..pc.getqf("state").." von 100 Böser Baum zerstören")
        end
        when 2305.kill begin
            local count = pc.getqf("state") - 1
            if count <= 100 then
                pc.setqf("state", count)
                q.set_counter("Böser Baum", count)
            end
            if count == 0 then
                say_title("Baum")
                say("Du hast die Quest erfolgreich abgeschlossen!")
                say("Du erhälst:")
                say_reward("Weise Perle 2 Mal")
                say_reward("Blaue Perle 2 Mal")
                say_reward("und")
                say_reward("Rote Perle 2 Mal")
        say_reward("Außerdem:")
                say_reward("100.000.000 Yang")
                say_reward("10.000.000 Erfahrung")
                pc.change_money(100000000)
                pc.give_exp2(10000000)
                pc.give_item2(29992, 2)
                pc.give_item2(27993, 2)
                pc.give_item2(27994, 2)
                clear_letter()
                set_state(__COMPLETE__)       

            end
        end
    end
    state __COMPLETE__ begin
    end
end

HILFE BITTE JETZT DASS ES FUNZT

MFG coolmerto
08/29/2011 21:08 £αšεℜ™#3278
PHP Code:
quest Baum begin
    state start begin
        when login 
or levelup with pc.get_level() >= 75 begin
            set_state
killmonster )
        
end
    end
    state killmonster begin
        when letter begin
            send_letter
("Töte Böser Baum!")
            
pc.setqf("state"0)
            
q.set_counter("Verbleibend",100)
        
end
        when info 
or button begin
            say_title
("Töte 100 Böser Baum!")
            
say_reward"Es fehlen noch ".." "..100 pc.getqf("state").." Böser Baum .")
            
say("")
        
end
        when 2305.kill begin
            local count 
pc.getqf("state") + 1

            
if count <= 100 then
                pc
.setqf("state"count)
                
q.set_counter("Verbleibend"100 count)

                if 
count == 100 then
                    say_title
("Aufgabe abgeschlossen")
                    
say("Alle 100 Böser Baum wurden vernichtet.")
                    
say("Erhalte deine Belohnung :")
                    
say_reward("2x Weise Perle")
                    
say_reward("2x Blaue Perle")
                    
say_reward("2x Rote Perle")
                    
say_reward("100000000 Yang")
                    
say_reward("10000000 Exp")
                    
pc.give_gold(100000000)
                    
pc.give_exp2(10000000)
                    
pc.give_item2(29992,2)
                    
pc.give_item2(29993,2)
                    
pc.give_item2(29994,2)
                    
set_state__COMPLETE__ )
                
end
            end
        end
    end
    state __COMPLETE__ begin
    end
end 
es ist zwar anders aber es ist meine erst quest hir und ich hoffe das sie geht :D
08/29/2011 21:12 F4m0uZStYle#3279
coolmerto ich hab keine ahnung woran es liegt,warum sie bei dir nihct geht.

bei mir klappts sie wunderbar
08/29/2011 21:18 coolmerto#3280
ka, aufjedenfall danke für eure hilfe, aber jede quest klappt bei mir, zb. das man metin jeon-un killen muss und so außer böser baum und wasserschlangen killen, und player killen iwie auch nicht :(


naja
08/29/2011 21:21 £αšεℜ™#3281
@F4m0uZStYle
hast du auch mal rlog gemacht weil dann wieder 100 ist wette ich nimm meine wenn sie nicht gehen sollte verbesser ich sie
08/29/2011 21:29 .Delta#3282
coolmerto, hast du evtl eine Statistik Quest aktiv?
oder irgendeine andere quest, in der when kill begin steht?

Wenn ja, dann wunderts mich eig net :D
08/29/2011 22:27 .HC'Destrox#3283
Hi^^
also bei der Quest hier funzt nur nit dass sie ausgelöst wird -.-
sie soll beim levelup oder wenn man sich einloggt und der state grade auf "start" steht losgehn... und ja - sie soll nach der Beendigung wieder neugestartet werden
Quest:
Code:
quest REP_Quest begin
    state start begin
        when login or levelup with pc . get_level() > 69 and pc . get_level() < 80 begin
				say_title("D?monenturm")
				say("Deine Aufgabe ist heute,")
				say("50 Gemeine Bogensch?tzen zu t?ten.")
				say("")
				say_reward("Willst du die Aufgabe annehmen?")
				local s = select ( "Annehmen", "Ablehnen" )
				if s == 1 then
					say("Auf wiedersehen!")
					setstate (kill_Gemeine_Bogenschuetzen)
				else
					say("Dann nicht.")
					say("")
					say_reward("Relogge, um die Aufgabe")
					say_reward("erneut anzunehmen.")
					setstate(start)
				end
		end
		
		when login or levelup with pc . get_level() > 79 and pc . get_level() < 90 begin								
				say_title("Grotte / D?monenturm")
				say("Deine Aufgabe ist heute,")
				say("50 Himmels Eisinsekten oder")
				say("50 Totenkopfschwertmeister zu t?ten")
				say("")
				say_reward("Willst du die Aufgabe annehmen?")
				local s = select ( "Himmels Eisinsekten t?ten", "Totenkopfschwertmeister t?ten", "Ablehnen" )
				if s == 1 then
					say("Auf wiedersehen!")
					setstate (kill_Himmels_Eisinsekt)
				elseif s == 2 then
					say("Auf wiedersehen!")
					setstate (kill_Totenkopfschwertmeister)
				elseif s == 3 then
					say("Dann nicht.")
					say("")
					say_reward("Relogge, um die Aufgabe")
					say_reward("erneut anzunehmen.")
					setstate(start)
				end
		end
		
		when login or levelup with pc . get_level() > 89 and pc . get_level() < 100 begin
				say_title("Grotte")
				say("Deine Aufgabe ist heute,")
				say("50 Himmels Soldaten und")
				say("50 Himmels Geistliche zu t?ten.")
				say("")
				say_reward("Willst du die Aufgabe annehmen?")
				local s = select ( "Annehmen", "Ablehnen" )
				if s == 1 then
					say("Auf wiedersehen!")
					setstate (kill_Himmels_Soldaten_Geistliche)
				else
					say("Dann nicht.")
					say("")
					say_reward("Relogge, um die Aufgabe")
					say_reward("erneut anzunehmen.")
					setstate(start)
				end				
		end
		
		when login or levelup with pc . get_level() > 99 begin
				say_title("PVP!")
				say("Deine Aufgabe ist heute,")
				say("100 Gegner aus einem anderem Reich zu t?ten.")
				say("")
				say_reward("Willst du die Aufgabe annehmen?")
				local s = select ( "Annehmen", "Ablehnen" )
				if s == 1 then
					say("Auf wiedersehen!")
					setstate (kill_Halbmenschen)
				else
					say("Dann nicht.")
					say("")
					say_reward("Relogge, um die Aufgabe")
					say_reward("erneut anzunehmen.")
					setstate(start)
				end
        end
    end
	
    state kill_Gemeine_Bogenschuetzen begin
        when letter begin
			count_1023 = 0
			setskin(NOWINDOW)
			makequestbutton("Gemeine Bogensch?tzen t?ten!")
			send_letter("Gemeine Bogensch?tzen t?ten!")
		end
		
        when button or info begin
			say_title(locale.NOTICE_COLOR.."Gemeine Bogensch?tzen"..locale.NORMAL_COLOR)
			say("T?te 50 Gemeine Bogensch?tzen.")
			say("Du findest sie im D?monenturm.")
			say("")
			say_reward("Aufgabe: T?te 50 Gemeine Bogensch?tzen!")
			if count_1023 == 0 then
				say_reward("Du hast bis jetzt 0 Gemeine Bogensch?tzen get?tet")
			else
				say_reward("Du hast bis jetzt "..tostring(count_1023).." Gemeine Bogensch?tzen get?tet.")
			end
			say("")
        end
		
        when 1023.kill begin
			count_1023 = count + 1
			if count_1023 >= 50 then
				local erfahrung = (pc . get_exp() + pc . get_next_exp()) / 4
				say ("Du hast 50 Gemeine Bogensch?tzen get?tet")
				say("Als Belohnung erh?lst du eine Menge Erfahrung!")
				say("")
				say_reward("Du erh?lst Erfahrung: "..erfahrung.." (25%)")
				pc . give_exp(erfahrung)
				count_1023 = 0
				set_state(start)
			end
        end
    end
	
    state kill_Himmels_Eisinsekt begin
        when letter begin
			count_1133 = 0
			setskin(NOWINDOW)
			makequestbutton("Himmels Eisinsekten t?ten!")
			send_letter("Himmels Eisinsekten t?ten!")
        end
		
        when button or info begin
			say_title(locale.NOTICE_COLOR.."Himmels Eisinsekten"..locale.NORMAL_COLOR)
			say("T?te 50 Himmels Eisinsekten.")
			say("Du findest sie in der Grotte.")
			say("")
			say_reward("Aufgabe: T?te 50 Himmels Eisinsekten!")
			if count_1133 == 0 then
				say_reward("Du hast bis jetzt 0 Himmels Eisinsekten get?tet")
			else
				say_reward("Du hast bis jetzt "..tostring(count_1133).." Himmels Eisinsekten get?tet.")
			end
			say("")
        end
		
        when 1133.kill begin
			count_1133 = count + 1
			if count_1133 >= 50 then
				local erfahrung = (pc . get_exp() + pc . get_next_exp()) / 10
				say ("Du hast 50 Himmels Eisinsekten get?tet")
				say("Als Belohnung erh?lst du eine Menge Erfahrung!")
				say("")
				say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
				pc . give_exp(erfahrung)
				count_1133 = 0
				set_state(start)
			end
        end
    end
	
    state kill_Totenkopfschwertmeister begin
        when letter begin
			count_1032 = 0
			setskin(NOWINDOW)
			makequestbutton("Totenkopfschwertmeister t?ten!")
			send_letter("Totenkopfschwertmeister t?ten!")
        end
		
        when button or info begin
			say_title(locale.NOTICE_COLOR.."Totenkopfschwertmeister"..locale.NORMAL_COLOR)
			say("T?te 50 Totenkopfschwertmeister.")
			say("Du findest sie im D?monenturm.")
			say("")
			say_reward("Aufgabe: T?te 50 Totenkopfschwertmeister!")
			if count_1032 == 0 then
				say_reward("Du hast bis jetzt 0 Totenkopfschwertmeister get?tet")
			else
				say_reward("Du hast bis jetzt "..tostring(count_1032).." Totenkopfschwertmeister get?tet.")
			end
			say("")
        end
		
        when 1032.kill begin
			count_1032 = count + 1
			if count_1032 >= 50 then
				local erfahrung = (pc . get_exp() + pc . get_next_exp()) / 10
				say ("Du hast 50 Totenkopfschwertmeister get?tet")
				say("Als Belohnung erh?lst du eine Menge Erfahrung!")
				say("")
				say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
				pc . give_exp(erfahrung)
				count_1032 = 0
				set_state(start)
			end
        end
    end
	
    state kill_Himmels_Soldaten_Geistliche begin
        when letter begin
			count_2401 = 0
			count_2403 = 0
			setskin(NOWINDOW)
			makequestbutton("Himmels Soldaten und Geistliche t?ten!")
			send_letter("Himmels Soldaten und Geistliche t?ten!")
		end
		
        when button or info begin
			say_title(locale.NOTICE_COLOR.."Himmels Soldaten und Geistliche"..locale.NORMAL_COLOR)
			say("T?te 50 Himmels Soldaten und 50 Himmels Geistliche")
			say("Du findest sie in der Grotte.")
			say("")
			say_reward("Aufgabe: T?te 50 Himmels Soldaten und")
			say_reward("50 Himmels Geistliche")
			if count_2401 == 0 then
				say_reward("Du hast bis jetzt 0 Himmels Soldaten get?tet")
			else
				say_reward("Du hast bis jetzt "..tostring(count_2401).." Himmels Soldaten")
			end
			if count_2403 == 0 then
				say_reward("und 0 Himmels Geistliche get?tet.")
			else
				say_reward("und "..tostring(count_2403).." Himmels Geistliche get?tet.")
			end
			say("")
        end
		
        when 2401.kill begin
			count_2401 = count_2401 + 1
			if ((count_2401 >= 50) and (count_2403 >= 50)) then
				local erfahrung = (pc . get_exp() + pc . get_next_exp()) / 10
				say("Du hast 50 Himmels Soldaten und")
				say("50 Himmels Geistliche get?tet.")
				say("Als Belohnung erh?lst du eine Menge Erfahrung!")
				say("")
				say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
				pc . give_exp(erfahrung)
				set_state(start)
			end
        end
		
		when 2403.kill begin
			count_2403 = count_2403 + 1
			if ((count_2401 >= 50) and (count_2403 >= 50)) then
				local erfahrung = (pc . get_exp() + pc . get_next_exp()) / 10
				say("Du hast 50 Himmels Soldaten und")
				say("50 Himmels Geistliche get?tet.")
				say("Als Belohnung erh?lst du eine Menge Erfahrung!")
				say("")
				say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
				pc . give_exp(erfahrung)
				set_state(start)
			end
        end
    end
	
    state kill_Halbmenschen begin
        when letter begin
			count_halbmenschen = 0
			setskin(NOWINDOW)
			makequestbutton("Halbmenschen t?ten!")
			send_letter("Halbmenschen t?ten!")
        end
		
        when button or info begin
			say_title(locale.NOTICE_COLOR.."Gegner aus einem anderen Reich"..locale.NORMAL_COLOR)
			say("T?te 100 Gegner aus einem anderem Reich!")
			say("Du findest sie ?berall und nirgendwo.")
			say("")
			say_reward("Aufgabe: T?te 100 Gegner aus")
			say_reward("einem anderem Reich.")
			if count_halbmenschen == 0 then
				say_reward("Du hast bis jetzt 0 Gegner get?tet.")
			else
				say_reward("Du hast bis jetzt "..tostring(count_halbmenschen).." Gegner get?tet.")
			end
		end
		
        when kill begin
			if npc . empire != pc . empire then
				count_halbmenschen = count_halbmenschen + 1
			end
			if count_halbmenschen >= 100 then
				local erfahrung = (pc . get_exp() + pc . get_next_exp()) / 16
				say ("Du hast 100 Gegner get?tet")
				say("Als Belohnung erh?lst du eine Menge Erfahrung!")
				say("")
				say_reward("Du erh?lst Erfahrung: "..erfahrung.." (6,25%)")
				pc . give_exp(erfahrung)
				count_halbmenschen = 0
				set_state(start)
			end
		end
	end
end
Hoffe nicht zu lang und dass sie niemand klaut ;)
€: Achja, VPC Fehler war keiner da alle wech ;) nur die Quest löst sich nicht aus... mit NPC hats noch geklappt^^ Aber soll ohne laufen :D

MFG
08/29/2011 22:55 Yoscha#3284

Ich will das die Entscheidung tatsächlich das ganze Spiel über hält, und man verschiedene quests bekommt.
Nun möchte ich wissen wie ich das mit set_state da hinkriege, mir gesagt wird wie ich das dann in neue Quests ( z.b. Jagdaufträge von NPCs, LAufbotenjobs ) einbauen kann.. wäre echt nett .. vielen Dank schonmal.
08/29/2011 23:17 F4m0uZStYle#3285
destroyer wie soll deine quest auch funktionieren?

er soll lvl 75 z.b werden und dann was soll passieren?

du schreibst danach say("blabla")
wer oder was soll es den sagen?das unsichtbare bestimmt nicht deshalb wird auch nix funken.

versuch es einfach mal hier mit

PHP Code:
quest REP_Quest begin
    state start begin
        when login 
or levelup with pc get_level() >= 69 and pc get_level() <= 80 begin
            set_state
(aufgabe)
        
end
        
        state aufgabe begin
            when letter begin
                send_letter
("Dämonenturm")
            
end
        
        when button 
or info begin
                say_title
("Dämonenturm")
                
say("Deine Aufgabe ist heute,")
                
say("50 Gemeine Bogensch?tzen zu töten.")
                
say("")
                
say_reward("Willst du die Aufgabe annehmen?")
                
local s select "Annehmen""Ablehnen" )
                if 
== 1 then
                    say
("Auf wiedersehen!")
                    
set_state (kill_Gemeine_Bogenschuetzen)
                else
                    
say("Dann nicht.")
                    
say("")
                    
say_reward("Relogge, um die Aufgabe")
                    
say_reward("erneut anzunehmen.")
                    
set_state(start)
                
end
            end
        end
        
        when login 
or levelup with pc get_level() >= 79 and pc get_level() <= 90 begin
            set_state
(GrotteDemonenturm)
        
end
        
        state GrotteDemonenturm begin
            when letter begin
                send_letter
("Grotte/Demonenturm")
            
end
            
            when button 
or info begin
                say_title
("Grotte / Dämonenturm")
                
say("Deine Aufgabe ist heute,")
                
say("50 Himmels Eisinsekten oder")
                
say("50 Totenkopfschwertmeister zu töten")
                
say("")
                
say_reward("Willst du die Aufgabe annehmen?")
                
local s select "Himmels Eisinsekten töten""Totenkopfschwertmeister töten""Ablehnen" )
                if 
== 1 then
                    say
("Auf wiedersehen!")
                    
set_state (kill_Himmels_Eisinsekt)
                elseif 
== 2 then
                    say
("Auf wiedersehen!")
                    
set_state (kill_Totenkopfschwertmeister)
                elseif 
== 3 then
                    say
("Dann nicht.")
                    
say("")
                    
say_reward("Relogge, um die Aufgabe")
                    
say_reward("erneut anzunehmen.")
                    
set_state(start)
                
end
            end
        end
        
        when login 
or levelup with pc get_level() >= 89 and pc get_level() <= 100 begin
            set_state
(Grotte)
        
end
        
        state Grotte begin
            when letter begin
                send_letter
("Grotte")
            
end
            
            when button 
or info begin
                say_title
("Grotte")
                
say("Deine Aufgabe ist heute,")
                
say("50 Himmels Soldaten und")
                
say("50 Himmels Geistliche zu t?ten.")
                
say("")
                
say_reward("Willst du die Aufgabe annehmen?")
                
local s select "Annehmen""Ablehnen" )
                if 
== 1 then
                    say
("Auf wiedersehen!")
                    
set_state (kill_Himmels_Soldaten_Geistliche)
                else
                    
say("Dann nicht.")
                    
say("")
                    
say_reward("Relogge, um die Aufgabe")
                    
say_reward("erneut anzunehmen.")
                    
set_state(start)
                
end                
                 end
        end

        when login 
or levelup with pc get_level() < 99 begin
            set_state
(pvp)
        
end
        
        state pvp begin
            when letter begin
                send_letter
("PvP")
            
end
            
        when button 
or info begin
                say_title
("PVP!")
                
say("Deine Aufgabe ist heute,")
                
say("100 Gegner aus einem anderem Reich zu töten.")
                
say("")
                
say_reward("Willst du die Aufgabe annehmen?")
                
local s select "Annehmen""Ablehnen" )
                if 
== 1 then
                    say
("Auf wiedersehen!")
                    
set_state (kill_Halbmenschen)
                else
                    
say("Dann nicht.")
                    
say("")
                    
say_reward("Relogge, um die Aufgabe")
                    
say_reward("erneut anzunehmen.")
                    
set_state(start)
                
end
                          end
                    end
    
    state kill_Gemeine_Bogenschuetzen begin
        when letter begin
            count_1023 
0
            setskin
(NOWINDOW)
            
makequestbutton("Gemeine Bogensch?tzen t?ten!")
            
send_letter("Gemeine Bogensch?tzen t?ten!")
        
end
        
        when button 
or info begin
            say_title
(locale.NOTICE_COLOR.."Gemeine Bogensch?tzen"..locale.NORMAL_COLOR)
            
say("T?te 50 Gemeine Bogensch?tzen.")
            
say("Du findest sie im D?monenturm.")
            
say("")
            
say_reward("Aufgabe: T?te 50 Gemeine Bogensch?tzen!")
            if 
count_1023 == 0 then
                say_reward
("Du hast bis jetzt 0 Gemeine Bogensch?tzen get?tet")
            else
                
say_reward("Du hast bis jetzt "..tostring(count_1023).." Gemeine Bogensch?tzen get?tet.")
            
end
            say
("")
        
end
        
        when 1023.kill begin
            count_1023 
count 1
            
if count_1023 >= 50 then
                local erfahrung 
= (pc get_exp() + pc get_next_exp()) / 4
                say 
("Du hast 50 Gemeine Bogensch?tzen get?tet")
                
say("Als Belohnung erh?lst du eine Menge Erfahrung!")
                
say("")
                
say_reward("Du erh?lst Erfahrung: "..erfahrung.." (25%)")
                
pc give_exp(erfahrung)
                
count_1023 0
                set_state
(start)
            
end
        end
    end
    
    state kill_Himmels_Eisinsekt begin
        when letter begin
            count_1133 
0
            setskin
(NOWINDOW)
            
makequestbutton("Himmels Eisinsekten t?ten!")
            
send_letter("Himmels Eisinsekten t?ten!")
        
end
        
        when button 
or info begin
            say_title
(locale.NOTICE_COLOR.."Himmels Eisinsekten"..locale.NORMAL_COLOR)
            
say("T?te 50 Himmels Eisinsekten.")
            
say("Du findest sie in der Grotte.")
            
say("")
            
say_reward("Aufgabe: T?te 50 Himmels Eisinsekten!")
            if 
count_1133 == 0 then
                say_reward
("Du hast bis jetzt 0 Himmels Eisinsekten get?tet")
            else
                
say_reward("Du hast bis jetzt "..tostring(count_1133).." Himmels Eisinsekten get?tet.")
            
end
            say
("")
        
end
        
        when 1133.kill begin
            count_1133 
count 1
            
if count_1133 >= 50 then
                local erfahrung 
= (pc get_exp() + pc get_next_exp()) / 10
                say 
("Du hast 50 Himmels Eisinsekten get?tet")
                
say("Als Belohnung erh?lst du eine Menge Erfahrung!")
                
say("")
                
say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
                
pc give_exp(erfahrung)
                
count_1133 0
                set_state
(start)
            
end
        end
    end
    
    state kill_Totenkopfschwertmeister begin
        when letter begin
            count_1032 
0
            setskin
(NOWINDOW)
            
makequestbutton("Totenkopfschwertmeister t?ten!")
            
send_letter("Totenkopfschwertmeister t?ten!")
        
end
        
        when button 
or info begin
            say_title
(locale.NOTICE_COLOR.."Totenkopfschwertmeister"..locale.NORMAL_COLOR)
            
say("T?te 50 Totenkopfschwertmeister.")
            
say("Du findest sie im D?monenturm.")
            
say("")
            
say_reward("Aufgabe: T?te 50 Totenkopfschwertmeister!")
            if 
count_1032 == 0 then
                say_reward
("Du hast bis jetzt 0 Totenkopfschwertmeister get?tet")
            else
                
say_reward("Du hast bis jetzt "..tostring(count_1032).." Totenkopfschwertmeister get?tet.")
            
end
            say
("")
        
end
        
        when 1032.kill begin
            count_1032 
count 1
            
if count_1032 >= 50 then
                local erfahrung 
= (pc get_exp() + pc get_next_exp()) / 10
                say 
("Du hast 50 Totenkopfschwertmeister get?tet")
                
say("Als Belohnung erh?lst du eine Menge Erfahrung!")
                
say("")
                
say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
                
pc give_exp(erfahrung)
                
count_1032 0
                set_state
(start)
            
end
        end
    end
    
    state kill_Himmels_Soldaten_Geistliche begin
        when letter begin
            count_2401 
0
            count_2403 
0
            setskin
(NOWINDOW)
            
makequestbutton("Himmels Soldaten und Geistliche t?ten!")
            
send_letter("Himmels Soldaten und Geistliche t?ten!")
        
end
        
        when button 
or info begin
            say_title
(locale.NOTICE_COLOR.."Himmels Soldaten und Geistliche"..locale.NORMAL_COLOR)
            
say("T?te 50 Himmels Soldaten und 50 Himmels Geistliche")
            
say("Du findest sie in der Grotte.")
            
say("")
            
say_reward("Aufgabe: T?te 50 Himmels Soldaten und")
            
say_reward("50 Himmels Geistliche")
            if 
count_2401 == 0 then
                say_reward
("Du hast bis jetzt 0 Himmels Soldaten get?tet")
            else
                
say_reward("Du hast bis jetzt "..tostring(count_2401).." Himmels Soldaten")
            
end
            
if count_2403 == 0 then
                say_reward
("und 0 Himmels Geistliche get?tet.")
            else
                
say_reward("und "..tostring(count_2403).." Himmels Geistliche get?tet.")
            
end
            say
("")
        
end
        
        when 2401.kill begin
            count_2401 
count_2401 1
            
if ((count_2401 >= 50) and (count_2403 >= 50)) then
                local erfahrung 
= (pc get_exp() + pc get_next_exp()) / 10
                say
("Du hast 50 Himmels Soldaten und")
                
say("50 Himmels Geistliche get?tet.")
                
say("Als Belohnung erh?lst du eine Menge Erfahrung!")
                
say("")
                
say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
                
pc give_exp(erfahrung)
                
set_state(start)
            
end
        end
        
        when 2403.kill begin
            count_2403 
count_2403 1
            
if ((count_2401 >= 50) and (count_2403 >= 50)) then
                local erfahrung 
= (pc get_exp() + pc get_next_exp()) / 10
                say
("Du hast 50 Himmels Soldaten und")
                
say("50 Himmels Geistliche get?tet.")
                
say("Als Belohnung erh?lst du eine Menge Erfahrung!")
                
say("")
                
say_reward("Du erh?lst Erfahrung: "..erfahrung.." (10%)")
                
pc give_exp(erfahrung)
                
set_state(start)
            
end
        end
    end
    
    state kill_Halbmenschen begin
        when letter begin
            count_halbmenschen 
0
            setskin
(NOWINDOW)
            
makequestbutton("Halbmenschen t?ten!")
            
send_letter("Halbmenschen t?ten!")
        
end
        
        when button 
or info begin
            say_title
(locale.NOTICE_COLOR.."Gegner aus einem anderen Reich"..locale.NORMAL_COLOR)
            
say("T?te 100 Gegner aus einem anderem Reich!")
            
say("Du findest sie ?berall und nirgendwo.")
            
say("")
            
say_reward("Aufgabe: T?te 100 Gegner aus")
            
say_reward("einem anderem Reich.")
            if 
count_halbmenschen == 0 then
                say_reward
("Du hast bis jetzt 0 Gegner get?tet.")
            else
                
say_reward("Du hast bis jetzt "..tostring(count_halbmenschen).." Gegner get?tet.")
            
end
        end
        
        when kill begin
            
if npc empire != pc empire then
                count_halbmenschen 
count_halbmenschen 1
            end
            
if count_halbmenschen >= 100 then
                local erfahrung 
= (pc get_exp() + pc get_next_exp()) / 16
                say 
("Du hast 100 Gegner get?tet")
                
say("Als Belohnung erh?lst du eine Menge Erfahrung!")
                
say("")
                
say_reward("Du erh?lst Erfahrung: "..erfahrung.." (6,25%)")
                
pc give_exp(erfahrung)
                
count_halbmenschen 0
                set_state
(start)
            
end
        end
    end
end 


du schreibst so eine quest und das einfachste ,was jeder als erstes übt,tust du nicht anwenden fail




Yosha

set_state ist dafür da wie du schoin sagst z.b für laufjobs

einbauen tust du die immer unter der letzen funktion die gemacht wird

z.b

PHP Code:
quest beispiel begin
         state start begin
              when npcvnum
.chat."Beispiel" begin
                   say
("blabla")<-----Das ist die funktion/das was passiert
                   say
("blabla")<-----Das ist die funktion/das was passiert
                   say
("blabla")<-----Das ist die funktion/das was passiert
                  set_state
(weiter)<-------------zum nächsten abschnitt
            end
<--damit der abschnitt start beendet wird,und ein neuer anfängt
       end 
<------- when ende

      state weiter begin 
<-----anfang für den nächsten abschnitt
          when npcvnum
.chat."Beispiel2" begin
                  say
("blabla")<-----Das ist die funktion/das was passiert
                  say
("blabla")<-----Das ist die funktion/das was passiert
               end 
<-------- für den anfang dieses abschnitts
          end 
<--------- when ende
     end 
<--------- quest ende 

du musst den ersten abschnitt beenden damit der zweite anfängt.

bei deiner quest wäre das so.


PHP Code:
    quest give_basic_weapon begin
state start begin
when login with pc
.get_level() == 1 begin
set_state
(information)
end
end
state information begin
when letter begin
send_letter
("Entscheidung")
end
when button 
or info begin
if pc.getqf("basic_weapon") == 0 then
pc
.setqf("basic_weapon"1)
say("Welchen weg des Ninja willst du einschlagen ?")
local lvl select("Gut""Böse")
local item
local item2
local exp
if lvl == 1 then
if pc.job == 0 then
item 
15
item2 
11209
elseif pc.job == 1 then
item 
1005
item2 
11409
elseif pc.job == 2 then
item 
15
item2 
11609
elseif pc.job == 3 then
item 
7005
item2 
11809
end
exp 
0
elseif lvl == 2 then
if pc.job == 0 then
item 
15
item2 
11301
elseif pc.job == 1 then
item 
1005
item2 
11501
elseif pc.job == 2 then
item 
15
item2 
11701
elseif pc.job == 3 then
item 
7105
item2 
12001
end
command
("a pc.get_name() 100")
end
if pc.count_item(item) == and pc.count_item(item2) == and pc.weapon != item then
pc
.give_item2(item)
pc.give_item2(item2)
pc.give_exp2(exp2)
pc.give_item2(27003,200 ) -- Rote Potts (G) | 200x
pc
.give_item2(22000200) -- Schriftrolle der Stadt 200x
pc
.give_item2(72702,) -- Windschuhe 1x
pc
.give_item2(70038,20 ) -- Tapferkeitsumhänge 20x
pc
.give_item2(27115,10 ) -- Lila Potts (G) | 10x
pc
.change_money(1000) -- 1000 Yang
end
end
set_state
(nächster abschnitt)
end
end


state nächster abschnitt begin
   when letter begin
<--- funktion für den brief an der seite
        send_letter
("nächster abschnitt")<-brief an der seite
end

when button 
or info begin<------------funktion für den brief
say
("blabla")<----- was passiert
say
("blabla")<----- was passiert
say
("blabla")<----- was passiert
end
end
end 


weiß nicht ob du es verstehst,is aber ne möglichkeit
wenn ich das richtig verstanden habe von dir