[SERVICE] Die Questkontrolle

03/03/2012 19:50 Phil'#4966
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
PHP Code:
quest giveitem2 begin
    state start begin 
        when levelup with pc
.get_level() >= 99 begin
            pc
.give_item2(29772, 1)  
            
pc.give_item2(29773, 1)  
            
pc.give_item2(29774, 1)  
            
say("Herzlichen Glückwunsch")
            
say("Du hast das Endlevel erreicht")
            
say("Du bist eine Legende")
            
say("Zur belohnung bekommst du folgende Items")
            
say("Weiße Perle")
            
say("Blaue Perle")
            
say("Rote Perle")  
        
end  
    end
end 
so würds gehen ;)
Achso,Oke danke
03/03/2012 22:03 Kriegergeist^^#4967
Immer noch ein kleines Problem mit der Quest :(
Zuerst die quest:
Erstes Problem:
Wen ich den Npc 30131 anspreche, geht nur die erste if setzung
die ganzen anderen elseif setzung funktionieren nicht, auch wen ich den eventflag selber umstelle.

Zweite Porblem:
Wen ich 90 sec in raum bin über der quest, stürzt der Server ab
Bei beiden Probleme weiß ich einfach nicht weiter, wär nett wen ihr mir weiter helfen könntet :handsdown:

MfG
Kriegergeist^^
03/03/2012 22:49 vpser#4968
quest ototest begin
state start begin
when login begin
local saat1 = os.date("%H")
local dakika1 = os.date("%M")
if saat1 >23 and dakika1 > 48 then
notice_all("test")
end
end
end
end

where is the problem
03/04/2012 00:08 buja12#4969
Hallo Leute hab hier ne pvm quest wollt mal wissen ob die richtig ist? :D


quest new_weapon begin
state start begin
when login or levelup with pc.level >= 25 begin
set_state(new_weapon)
end
end

state new_weapon begin
when letter begin
send_letter("Neue Waffen - Quest")
end

when button or info begin
say("Nun hast du endlich Level 25 erreicht.")
say("Nun musst du natürlich auch zeigen,")
say("was in dir steckt!")
say("Am besten kannst du das beweisen, wenn du")
say("25x Metin der Eifersucht erledigst.")
say_reward("Erledige Metinsteine aus Map2")
say_reward("und werde kräftig belohnt!")
say("")
pc.setqf("state", 25)
q.set_counter("kills", 25)
set_state(kill)
end
end

state kill begin
when letter begin
send_letter("Töte den Metin der Eifersucht")
end

when button or info begin
say_title("Spieler:")
say_reward("Du musst noch "..pc.getqf("state").." von 25 töten")
say("")
end

when kill begin
if npc.is_pc() and npc.empire != pc.empire then
local count = pc.getqf("state") - 1
if count <= 25 then
pc.setqf("state", count)
q.set_counter("kills", -count)
end
if count == 0 then
say("Sehr schön, du hast es geschafft!")
say("Nach langem kämpfen hast du nun endlich")
say("deinen 25. Kill gemacht! Gratulation")
say("Diese Mühen sollen natürlich nicht unbelohnt")
say("bleiben, deshalb kannst du zwischen folgenden")
say("Preisen wählen:")

if pc.job == 0 then
say("Da du ein Krieger bist, kannst du zwischen")
say("folgenden Preisen entscheiden:")
say("")
local s = select("Vollmondschwert+5", "Roteisenklinge+5")
if s == 1 then
say("Gut, du hast dich für das Vollmondschwert+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item2(295, 1)
end
if s == 2 then
say("Gut, du hast dich für das Roteisenklinge+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item2(3215, 1)
end

elseif pc.job == 1 then
say("Da du ein Ninja bist, kannst du zwischen")
say("folgenden Preisen entscheiden:")
local g = select("Hornbogen+5", "Schwarzblattdolch+5")
if g == 1 then
say("Gut, du hast dich für das Hornbogen+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item2(2155, 1)
end
if g == 2 then
say("Gut, du hast die für den Schwarzblattdolch+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item(1175, 1)
end

elseif pc.job == 2 then
say("Da du ein Sura bist, kannst du zwischen")
say("folgenden Preisen entscheiden:")
local f = select("Vollmondschwert+5")
if f == 1 then
say("Gut, du hast dich für das Vollmondschwert+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item2(295, 1)
end

elseif pc.job == 3 then
say("Da du eine Schamane bist, kannst du zwischen")
say("folgenden Preisen entscheiden:")
local a = select("Herbstwindfächer+5", "Antike Glocke+5")
if a == 1 then
say("Gut, du hast dich für den Herbstwindfächer+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item2(7165, 1)
end
if a == 2 then
say("Gut, du hast dich für die Antike Glocke+5 entschieden!")
say("Viel Spaß mit deinem Gewinn!")
pc.give_item2(5115, 1)
end
end
end

clear_letter()
set_state(__COMPLETE__)
end
end
end

state __COMPLETE__ begin
end
end
03/04/2012 12:32 .Delta#4970
gewöhn dir an Blöcke einzurücken, du wirst besser zurechtkommen ;)
2. das nächste mal bitte mit [php]Inhalt[/php] oder mit [code]Inhalt[/code] hier rein posten^^

Code:
quest new_weapon begin
	state start begin
		when login or levelup with pc.level >= 25 begin
			set_state(new_weapon)
		end
	end
	state new_weapon begin
		when letter begin
			send_letter("Neue Waffen - Quest")
		end
		when button or info begin
			say("Nun hast du endlich Level 25 erreicht.")
			say("Nun musst du natürlich auch zeigen,")
			say("was in dir steckt!")
			say("Am besten kannst du das beweisen, wenn du")
			say("25x Metin der Eifersucht erledigst.")
			say_reward("Erledige Metinsteine aus Map2")
			say_reward("und werde kräftig belohnt!")
			say("")
			pc.setqf("state", 0)
			q.set_counter("kills", 25)
			set_state(kill)
		end
	end
	state kill begin
		when letter begin
			send_letter("Töte den Metin der Eifersucht")
		end
		when button or info begin
			say_title("Spieler:")
			say_reward("Du musst noch "..25-pc.getqf("state").." von 25 töten")
			say("")
		end
		when kill with npc.get_race() == 8007 begin
			local count = pc.getqf("state") + 1
			pc.setqf("state", count)
			q.set_counter("kills", 25-count)
			if count == 25 then
				say("Sehr schön, du hast es geschafft!")
				say("Nach langem kämpfen hast du nun endlich")
				say("deinen 25. Kill gemacht! Gratulation")
				say("Diese Mühen sollen natürlich nicht unbelohnt")
				say("bleiben, deshalb kannst du zwischen folgenden")
				say("Preisen wählen:")
				if pc.job == 0 then
					say("Da du ein Krieger bist, kannst du zwischen")
					say("folgenden Preisen entscheiden:")
					say("")
					local s = select("Vollmondschwert+5", "Roteisenklinge+5")
					if s == 1 then
						say("Gut, du hast dich für das Vollmondschwert+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item2(295, 1)
					elseif s == 2 then
						say("Gut, du hast dich für das Roteisenklinge+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item2(3215, 1)
					end
				elseif pc.job == 1 then
					say("Da du ein Ninja bist, kannst du zwischen")
					say("folgenden Preisen entscheiden:")
					local g = select("Hornbogen+5", "Schwarzblattdolch+5")
					if g == 1 then
						say("Gut, du hast dich für das Hornbogen+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item2(2155, 1)
					elseif g == 2 then
						say("Gut, du hast die für den Schwarzblattdolch+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item(1175, 1)
					end
				elseif pc.job == 2 then
					say("Da du ein Sura bist, kannst du zwischen")
					say("folgenden Preisen entscheiden:")
					local f = select("Vollmondschwert+5")
					if f == 1 then
						say("Gut, du hast dich für das Vollmondschwert+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item2(295, 1)
					end
				elseif pc.job == 3 then
					say("Da du eine Schamane bist, kannst du zwischen")
					say("folgenden Preisen entscheiden:")
					local a = select("Herbstwindfächer+5", "Antike Glocke+5")
					if a == 1 then
						say("Gut, du hast dich für den Herbstwindfächer+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item2(7165, 1)
					elseif a == 2 then
						say("Gut, du hast dich für die Antike Glocke+5 entschieden!")
						say("Viel Spaß mit deinem Gewinn!")
						pc.give_item2(5115, 1)
					end		
				end
			end
			clear_letter()
			set_state(__COMPLETE__)
		end
	end
	state __COMPLETE__ begin
	end
end
03/04/2012 12:58 buja12#4971
alles klar ,

nur jetzt kille ich 1 metin un die quest verschwindet komplett ^.^

....

also jetzt verschwindet die quest nachdem ich grade mal 1nen metin gekillt habe?? ^.^

bin auch noch neu auf dem gebiet questen vorher hatte ich nen writer wills jetz aber halt selbst probieren :D
03/04/2012 13:09 .Delta#4972
habs n bissl verändert, sry :D machs mit nem neuen char, dann gehts :D
03/04/2012 13:16 buja12#4973
ok passt bis auf das dass die quest wd komplett verschwindet sobald ich 1 metin kille
und ich war mitn test "char" drinne... (lv25)

Ich bekomm da irgendwie ne fehlermeldung in der er mir sagt das in zeile 6 oder 7 was falsch ist funzt auch irgendwie nicht wieß da jemand vllt die lösung?

Code:
quest player_level99 begin
    state start begin 
        when levelup with pc.get_level() == 99 begin 
            notice_all(""..pc.get_name().." hat soeben Level 99 erreicht!")
		    notice_all("Er/Sie hat hart dafür gearbeitet, Herzlichen Glückwunsch!")
            set_state(__COMPLETE__) 
        end 
    end 
     
    state __COMPLETE__ begin 
    end 
end
03/04/2012 15:27 RealMadrid94rk#4974
so?

Code:
quest player_level99 begin
    state start begin 
        when levelup with pc.get_level() == 99 begin 
            notice_all(""..pc.get_name().." hat soeben Level 99 erreicht!")
		    notice_all("Er/Sie hat hart dafür gearbeitet, Herzlichen Glückwunsch!")
        end 
    end 
end
03/04/2012 20:53 buja12#4975
hm jetz sagt er mir complete aber in game passiert nix ^.^ -.-"
03/04/2012 20:55 AntiMask#4976
schick mal die fehlermdlung als screen.

dann können wir dir besser weiterhelfen.

die quest ist an sich ok. bei mir funkts

mfg antimask
03/04/2012 21:30 buja12#4977
es ommt ja keine fehlermeldung dass is es ja die quest erscheint nicht rebootet hat auch alles completet nur nichtz da ^.^
03/04/2012 22:12 xxalbanxx3#4978
PHP Code:
quest drachnraum begin  
    state start begin          
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten  
            say_title
(mob_name(9010)) --NPC zum Starten  
            say
("Hallo Abenteurer,")  
            
say("ich habe längst verlassene Gänge und")  
            
say("Schluchten entdeckt, wo Ungeheuer ihr")  
            
say("unwesen treiben. Nur die stärksten")  
            
say("Krieger halten denen Stand!")  
            if 
pc.count_item(30227) == 0 then  
                say
("Du benötigst einen Drachenraum-Key um passieren zu können.")  
                
say_item_vnum(30227)  
                return  
            
end  
            say
("Soll ich dich dahin bringen?")  
            
local s=select("Ja", "Nein")  
            if 
s==2 then  
                
return  
            
end  
            pc
.remove_item(30227, 1)  
            
pc.warp(843200, 1066800)  
        
end  

        when login with pc
.get_map_index() == 308 begin  
            say
("Die Brücke ist kaputt gegangen.")  
            
say("Jetzt gibt es kein zurück mehr!")  
        
end

        when 8040.kill 
and 8039.kill and 8038.kill and 8037.kill begin
            mob
.spawn(2193, 190, 173, 10, 10, 1)
            
end
    
        when 2193.kill begin
            mob
.spawn (2195, 190, 173, 10, 10, 1)
            
end
            
        when 2195.kill begin
            mob
.spawn (2194, 190, 173, 10, 10, 1)
            
end
            
        when 2194.kill begin
            mob
.spawn (2493, 190, 173, 10, 10, 1)
            
end    
            
        when 2493.kill begin
            mob
.spawn (30130, 190, 173, 10, 10, 1)
            
end                
            
        when 30130.kill begin
            mob
.spawn (30131, 190, 173, 10, 10, 1)
            
end

        when kill begin  
            
if npc.get_race() == 30131 then   
            notice_all 
("".. pc.get_name() .." hat den Ultimate-Drachen besiegt! Er ist ein Held und wird dafuer")
            
notice_all ("".. pc.get_name() .." reich belohnt! ")
            
notice_in_map("In 10Sekunden werden ihr vor Grotte 1 Telepotiert!")
            
timer("kick", 10)     
            
end     
        end   
        when kick
.timer begin 
            pc
.warp(284300,810000)  
        
end     
    end  
end 
da kommt der fehler when doesn´t have begin-end clause. (and)
03/05/2012 00:53 collado#4979
test now

PHP Code:
quest drachnraum begin   
    state start begin           
        when 9010.chat
."Drachenraum" begin  --NPC zum Starten   
            say_title
(mob_name(9010)) --NPC zum Starten   
            say
("Hallo Abenteurer,")   
            
say("ich habe längst verlassene Gänge und")   
            
say("Schluchten entdeckt, wo Ungeheuer ihr")   
            
say("unwesen treiben. Nur die stärksten")   
            
say("Krieger halten denen Stand!")   
            if 
pc.count_item(30227) == 0 then   
                say
("Du benötigst einen Drachenraum-Key um passieren zu können.")   
                
say_item_vnum(30227)   
                return   
            
end   
            say
("Soll ich dich dahin bringen?")   
            
local s=select("Ja", "Nein")   
            if 
s==2 then   
                
return   
            
end   
            pc
.remove_item(30227, 1)   
            
pc.warp(843200, 1066800)   
        
end   

        when login with pc
.get_map_index() == 308 begin   
            say
("Die Brücke ist kaputt gegangen.")   
            
say("Jetzt gibt es kein zurück mehr!")   
        
end 

        when 8040.kill 
and 8039.kill and 8038.kill and 8037.kill begin 
            mob
.spawn(2193, 190, 173, 10, 10, 1) 
        
end 
     
        when 2193.kill begin 
            mob
.spawn (2195, 190, 173, 10, 10, 1) 
        
end 
             
        when 2195.kill begin 
            mob
.spawn (2194, 190, 173, 10, 10, 1) 
        
end 
             
        when 2194.kill begin 
            mob
.spawn (2493, 190, 173, 10, 10, 1) 
        
end     
             
        when 2493.kill begin 
            mob
.spawn (30130, 190, 173, 10, 10, 1) 
        
end                 
             
        when 30130.kill begin 
            mob
.spawn (30131, 190, 173, 10, 10, 1) 
        
end 

        when kill begin   
            
if npc.get_race() == 30131 then    
            notice_all 
("".. pc.get_name() .." hat den Ultimate-Drachen besiegt! Er ist ein Held und wird dafuer") 
            
notice_all ("".. pc.get_name() .." reich belohnt! ") 
            
notice_in_map("In 10Sekunden werden ihr vor Grotte 1 Telepotiert!") 
            
timer("kick", 10)      
            
end      
        end    
        when kick
.timer begin  
            pc
.warp(284300,810000)   
        
end      
    end   
end 
03/05/2012 03:15 schattenwolf90#4980
Benötige nochmal Hilfe zu dieser quest:

PHP Code:
quest auftrag_1 begin
    state start begin
        when login with pc
.level >= 1 begin
            set_state
(auftrag_1)
        
end
    end
    state auftrag_1 begin
        when letter begin
            send_letter
("Toete Monster 1")
        
end

        when info 
or button begin
            a 
= {
                {
101, "Wildhund", 25},
                {
104, "Blauwolf", 25},
                {
113, "Braunbaer", 25},
                {
301, "Weißer Eid", 50},
                {
636, "Schwarzer Ork", 75},
                {
706, "Dunkler Peiniger", 150},
                {
903, "Plagemann", 350},
                {
1002, "Daemonenbogenschuetzen", 500},
                {
1303, "Buhmann", 750},
                {
2305, "Boeser Baum", 750},
                {
2301, "Geisterbaum", 750},
            }    
            
say("Hey du!")
            
say("Suchst du etwas?")
            
say("Eine Lange Aufgabe wartet auf dich!")
            for 
i = 1, table.getn(a)+1, 1 do
                
say_reward("Toete "..a[i][3].." "..a[i][2])
                
pc.setqf(a[i][2], a[i][3])
            
end    
            pc
.setqf("killed", 0)
        
end
        when kill begin
            a 
= {
                {
101, "Wildhund", 25},
                {
104, "Blauwolf", 25},
                {
113, "Braunbaer", 25},
                {
301, "Weißer Eid", 50},
                {
636, "Schwarzer Ork", 75},
                {
706, "Dunkler Peiniger", 150},
                {
903, "Plagemann", 350},
                {
1002, "Daemonenbogenschuetzen", 500},
                {
1303, "Buhmann", 750},
                {
2305, "Boeser Baum", 750},
                {
2301, "Geisterbaum", 750},
            }
            for 
i = 1, table.getn(a)+1, 1 do
                if 
npc.get_race() == a[i][1] then
                    pc
.setqf(a[i][2], pc.getqf(a[i][2])-1)
                    if 
pc.getqf(a[i][2]) == 0 then
                        pc
.setqf("killed", pc.getqf("killed")+1)
                        if 
pc.getqf("killed") >= 11 then
                            auftrag_1
.give()
                        
end    
                    end    
                end
            end
        end    
        
function give()
            
say("WOOOOOW!!!")
            
say("Du hast die Quest erfolgreich abgeschlossen!")
            
say("Du erhälst:")
            
say_reward("Giftschwert+0")
            
say_reward("Grollschwert+0")
            
say_reward("Orchideenglocke+0")
            
say_reward("Loewenschwert+0")
            
say_reward("Teufelfluegelschakrams+0")
            
say_reward("Kraehenstahlbogen+0")
            
say_reward("50 Mio Yang")
            
pc.change_money(50000000)
            
pc.give_item2(180, 1)
            
pc.give_item2(3160, 1)
            
pc.give_item2(5120, 1)
            
pc.give_item2(190, 1)
            
pc.give_item2(1139, 1)
            
pc.give_item2(2179, 1)
            
clear_letter()
            
set_state(__COMPLETE__)
        
end
    end
    state __COMPLETE__ begin
    end
end 
nach langen habe ich es endlich geschafft sie ins spiel zu integrieren... jetz hab ich nur noch das Problem das er keine Kills zählt <.< was muss ich da ändern?