Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 01:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 03/23/2017, 20:02   #12496
 
zazadi's Avatar
 
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
Quote:
Originally Posted by RonnieBreathe View Post

Kommt der Fehler:
icedungeon.quest:17:syntax error : [string "start"]:6: `then' expected near `with'
Error occured on compile Quest/icedungeon.quest

jmd ideen?
HTML Code:
quest icebossdung begin
	state start begin
		when 8200.kill begin
			local count = pc.getqf("state") - 1 
			if count <= 7 then
				pc.setqf("state", count) 
				q.set_counter("Metin des Eises", count)
			end
			if pc.get_map_index() == 550 then
				if count == 0 then
					local coordinates = {{457, 275}, {203, 428}, {640, 448}, {679, 126}, {438, 719}, {214, 707}, {266, 191}, {66, 175}} 
					local pick = number(1, table.getn(coordinates))
					local x = coordinates[pick][1]
					local y = coordinates[pick][2]
					mob.spawn(9202, x, y, 1)
					notice("Der Drache ist erschienen, sucht ihn!")
				end
			end
		end
	end
end
zazadi is offline  
Thanks
1 User
Old 03/23/2017, 22:34   #12497
 
elite*gold: 0
Join Date: Dec 2012
Posts: 23
Received Thanks: 11
Quote:
Originally Posted by Core ツ View Post
HTML Code:
quest icebossdung begin
	state start begin
		when 8200.kill begin
			local count = pc.getqf("state") - 1 
			if count <= 7 then
				pc.setqf("state", count) 
				q.set_counter("Metin des Eises", count)
			end
			if pc.get_map_index() == 550 then
				if count == 0 then
					local coordinates = {{457, 275}, {203, 428}, {640, 448}, {679, 126}, {438, 719}, {214, 707}, {266, 191}, {66, 175}} 
					local pick = number(1, table.getn(coordinates))
					local x = coordinates[pick][1]
					local y = coordinates[pick][2]
					mob.spawn(9202, x, y, 1)
					notice("Der Drache ist erschienen, sucht ihn!")
				end
			end
		end
	end
end
Danke, nur wenn ich auf der Map 550 die 7 Metin's kille, kommt keine Meldung, und der Drache ebenfalls nicht.
RonnieBreathe is offline  
Old 03/25/2017, 23:13   #12498
 
Laschek's Avatar
 
elite*gold: 130
Join Date: Jun 2012
Posts: 22
Received Thanks: 9

Nunja sie will halt einfach nicht
Laschek is offline  
Old 03/26/2017, 14:20   #12499
 
zazadi's Avatar
 
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
Quote:
Originally Posted by Laschek View Post

Nunja sie will halt einfach nicht

Die korrigierte Version der Quest ist im Spoiler.
Der Fehler war Zeile 22 du hast die "Anführungszeichen"
nach dem say( vergessen.
zazadi is offline  
Thanks
1 User
Old 03/27/2017, 02:00   #12500
 
Therulas's Avatar
 
elite*gold: 0
Join Date: Jun 2014
Posts: 345
Received Thanks: 243
PHP Code:
quest truhentausch begin
    state start begin
        when 20023.take with item
.vnum == 38057 begin
            say
("Hallo "..pc.get_name().."")
            
say("Ich tausche die verschlossene Truhe gegen")
            
say("geöffnete Truhen.")
            
say("Was für eine Truhe möchtest du?")
            
local perle select ("Fertigkeitstruhe Körper""Fertigkeitstruhe Mental""Fertigkeitstruhe Dolch""Fertigkeitstruhe Bogen""Weitere Truhen")
            if 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27993)
                
chat("Du hast eine Blaue Perle erhalten.")
            elseif 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
            elseif 
perle == 5 then 
                    say_title
("Weitere Truhen:"
                    
local perle1 =selec ("Fertigkeitstruhe Magie""Fertigkeitstruhe Waffenkampf""Fertigkeitstruhe Drachenmagie""Fertigkeitstruhe Heilungsmagie"
            if 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            
end
        end
    end
end 
findet einer denn fehler..?
Therulas is offline  
Old 03/27/2017, 07:04   #12501
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,994
Received Thanks: 3,389
Quote:
Originally Posted by Therulas View Post
PHP Code:
quest truhentausch begin
    state start begin
        when 20023.take with item
.vnum == 38057 begin
            say
("Hallo "..pc.get_name().."")
            
say("Ich tausche die verschlossene Truhe gegen")
            
say("geöffnete Truhen.")
            
say("Was für eine Truhe möchtest du?")
            
local perle select ("Fertigkeitstruhe Körper""Fertigkeitstruhe Mental""Fertigkeitstruhe Dolch""Fertigkeitstruhe Bogen""Weitere Truhen")
            if 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27993)
                
chat("Du hast eine Blaue Perle erhalten.")
            elseif 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
            elseif 
perle == 5 then 
                    say_title
("Weitere Truhen:"
                    
local perle1 =selec ("Fertigkeitstruhe Magie""Fertigkeitstruhe Waffenkampf""Fertigkeitstruhe Drachenmagie""Fertigkeitstruhe Heilungsmagie"
            if 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            elseif 
perle1 == and pc.count_item(38057) >= 1 then
                pc
.remove_item(38057)
                
pc.give_item2(27992)
                
chat("Du hast eine Weiße Perle erhalten.")
            
end
        end
    end
end 
findet einer denn fehler..?
Sieh dir den Code ab "elseif perle == 5 then" genauer an.
Nick is offline  
Old 03/27/2017, 11:42   #12502
 
Therulas's Avatar
 
elite*gold: 0
Join Date: Jun 2014
Posts: 345
Received Thanks: 243
Quote:
Originally Posted by Nick View Post
Sieh dir den Code ab "elseif perle == 5 then" genauer an.
Habe mir das einpaar mal angeschaut bin kein guter quester xD Schreibe mir dinge halt um wie ich sie brauche...

Das ''t'' was bei select fehlte hab ich gefunden geht immernochnet...^^
Therulas is offline  
Old 03/27/2017, 13:05   #12503
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,994
Received Thanks: 3,389
Quote:
Originally Posted by Therulas View Post
Habe mir das einpaar mal angeschaut bin kein guter quester xD Schreibe mir dinge halt um wie ich sie brauche...

Das ''t'' was bei select fehlte hab ich gefunden geht immernochnet...^^
Wenn du beim unteren Teil nun noch auf die Einrückung achtest, wirst du feststellen, dass ein end fehlt.
Nick is offline  
Old 03/27/2017, 13:37   #12504
 
Therulas's Avatar
 
elite*gold: 0
Join Date: Jun 2014
Posts: 345
Received Thanks: 243
Jop jemand aus nem anderen Forum zeigte es mir gezeigt

Vielen Dank

So lernt man das ganze bissl mit
Therulas is offline  
Old 03/29/2017, 15:23   #12505
 
elite*gold: 0
Join Date: Dec 2016
Posts: 29
Received Thanks: 6
Kann wer helfen?

Ist nur der teil der fehlerhaft ist.
Titan_Phantom is offline  
Old 04/02/2017, 17:52   #12506

 
GYJohn's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 998
Received Thanks: 136
#done
GYJohn is offline  
Old 04/02/2017, 19:06   #12507
 
Anonyme™'s Avatar
 
elite*gold: 310
Join Date: May 2011
Posts: 1,592
Received Thanks: 105
Hey,
wollte mal fragen, ob jemand über diese Quest schauen könnte?
Code:
quest bio_level90 begin 
	state start begin 
		when login or levelup with pc.level() >= 90 begin 
			set_state(information) 
		end
	end 

	state information begin
		when letter begin 
			local virtualFind = find_npc_by_vnum(20084)
			if virtualFind != 0 then 
				target.vid("__TARGET__", virtualFind, "Sammle Notizen der Anführer") 
			end
			send_letter("Sammle Notizen der Anführer") 
		end
		
		when button or info begin 
			say_title("Sammle Notizen der Anführer:")                                 
			say("Der Biologe Chaegirab, Lehrling Uriels,")          
			say("sammelt Informationen über die Bosse.")       
			say("Für seine Forschung benötigt er 10 Notizen")     
			say("Bringe sie ihm einzeln, damit er")                 
			say("sie in Ruhe studieren kann.")                    
			say("Du bekommst sie von den Bossen.")                     
			say("")
		end
		
		when __TARGET__.target.click or 20084.chat."Sammle Notizen" begin
			target.delete("__TARGET__")
			say_title("Biologe Chaegirab:")
			say("Sei gegrüßt edler  Held!")
			say("Ich sammle Informationen über die Bosse .")
			say("Doch leider bin ich nicht im stande die Bosse allein zu Untersuchen.")
			say("Darum bitte ich dich 10 Notizen der Anführer  zu beschaffen und mir zu bringen .")
			say("Man kann nicht jeden Tag etwas Großes tun, aber gewiss immer etwas Gutes.")
			say("Nur wenn man das Unerreichbare anstrebt, gelingt das Erreichbare.")
			say("")
			pc.setqf("actual_collect_count", 0)  
			pc.setqf("increase_chance", 0)       
			set_state(kill_teh_viecher)          
		end
	end
	
	state kill_teh_viecher begin
		when letter begin
			send_letter("Auftrag von Biologe Chaegirab")
		end
		
		when button or info begin
			say_title("Notiz der Anführer:")
			say("Biologe Chaegirab gab euch den Auftrag")
			say("10 Notizen der Anführer zu sammeln!")
			say("Das Item bekommst du von den Bossen.")
			say("Viel Glück!")
			say("")
			say_item_vnum(30168) 
			say_reward("Du hast bis jetzt "..pc.getqf("actual_collect_count").." Stück gesammelt!") 
			say("")
		end
	
		
		when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
             1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
             5161.kill or 5162.kill or 5163.kill or 2597.kill begin  
			
			 local dropChance = number(10,100)
            if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
                pc.give_item2(30168, 1)
            end
			end
		end
		
		when 20084.chat."Notizen der Anführer " with pc.count_item(30168) > 0 then
			if get_time() > pc.getqf("give_next_item") then 
				local erfolgschance  
				say_title("Biologe Chaegirab:")
				say("Einen Moment!")
				say("Ich werde die Notiz überprüfen.")
				say("Hoffentlich ist sie von guter Qualität!")
				pc.remove_item(30168, 1) 
				pc.setqf("give_next_item", get_time()+1) 
				wait()
				if pc.getqf("increase_chance") == 0 then
					gebrauchte_erfolgschance = 45  
				else 
					gebrauchte_erfolgschance = 100 
				end
				local erfolg_zufall = number(1, 100)
				if erfolg_zufall <= gebrauchte_erfolgschance then 
					if pc.getqf("actual_collect_count") < 14 then 
						local newCount = pc.getqf("actual_collect_count")+1 
						pc.setqf("actual_collect_count", newCount)  
						say_title("Biologe Chaegirab:")
						say("Pefekt! Diese Notizg  ist ein Prachtexemplar.")
						say("Dir fehlen nun noch "..10-pc.getqf("actual_collect_count").." Stück")
						say("Bringe mir die Restlichen!")
						say("")
						return
					end
					say_title("Biologe Chaegirab:")
					say("Danke! Du hast alle Bosse vernichtet")
					say("und mir alle Notizen der Anführer gebracht!")
					say("Dafür werde ich dich wie versprochen belohnen!")
					say("")
 					say_reward("Deine Zaubergeschwindigkeit  hat sich permanent um 20% erhöht") 
					say_reward("Dein HP hat sich permanent um 2000 erhöht.")
					say_reward("Deine Schadenreduzierung hat sich permanent um 10% erhöht")
					say_reward("Dein Angriffswert hat sich permanent um 100 erhöht")
					
					clear_letter()
					
					affect.add_collect(apply.MAX_HP,2000,60*60*24*365*60)
					affect.add_collect(apply.ATT_GRADE_BONUS,100,60*60*24*365*60)
					affect.add_collect(apply.RESIST_TWOHAND,10,60*60*24*365*60)
					affect.add_collect(apply.RESIST_SWORD,10,60*60*24*365*60)
					affect.add_collect(apply.RESIST_DAGGER,10,60*60*24*365*60)
					affect.add_collect(apply.RESIST_BELL,10,60*60*24*365*60)
					affect.add_collect(apply.RESIST_FAN,10,60*60*24*365*60)
					affect.add_collect(apply.RESIST_BOW,10,60*60*24*365*60)
					
					set_state(__COMPLETE__) 
					return
				else 
					say_title("Biologe Chaegirab:")
					say("Die Notiz ist von schlechter Qualität!")
					say("Ich kann ihn leider nicht weiter verwenden.")
					say("Besorg mir schnell eine Neue!")
					say("")
					pc.setqf("increase_chance", 0)
					return
				end
			else -- 
				say_title("Biologe Chaegirab:")
				say("Ich bin mit dem vorherigen Exemplar noch nicht fertig")
				say("Bitte warte noch ein wenig bevor du mir eine Neue bringst.")
				return
			end
		end
	end
	
	state __COMPLETE__ begin
	
end
Er gibt beim Compilieren folgenden Fehler aus: expecting 'state'

Leider finde ich denn Fehler grade nicht selbst.
Die Quest ist nicht von mir sondern von einem anderen User.

Hoffe mir bzw ihm kann jemand Helfen.

Mit freundlichen Grüßen
Anonyme™
Anonyme™ is offline  
Old 04/08/2017, 18:29   #12508
 
elite*gold: 0
Join Date: Jun 2011
Posts: 13
Received Thanks: 0
Questhilfe

Moin, die Quest funktioniert jetzt so wie sie soll allerdings stört mich noch eine sache..
der 2. questbrief zurück zum stallburschen soll ja erscheinen sobald ich lvl 10 erreicht habe und 10 pms habe..
aber mal angenommen ich werde lvl 10, habe aber erst 9 medailen, hebe ich dann die 10. auf kommt der 2. questbrief nicht...
erscheint nur wenn ich bereits 10 medailen habe und dann lvl 10 erreiche..
kann einer das noch so umschreiben das es egal ist was ich zuerst erreiche, wenn die bedingungen lvl 10 und 10 pms erfüllt sind der questbrief automatisch aufploppt?
PHP Code:
quest horse_getting begin
    state start begin
        when login begin
            send_letter
("Der Stallbursche braucht deine Hilfe")
        
end
        when button 
or info begin
            say_title
("Ich brauche dringend Hilfe "..pc.get_name())
            
say("Ich war letztens auf einer Fortbildung.")
            
say("Auf dem Rueckweg ist mir meine Tasche gerissen")
            
say("und habe ein paar meiner Medailen verloren.")
            
say_item_vnum(50050)
            
say(string.format("Geh und bringe mir bitte %d dieser Medailen wieder"10))
            
say(string.format("wenn du hier dein %d. Lebensjahr erreicht hast."10))
        
end
        when login 
or levelup with pc.get_level()>=and pc.count_item(50050)>=9 begin
            set_state
(anfang)
        
end
    end
    state anfang begin
        when letter begin
            send_letter
("Zurueck zum Stallburschen")
            
local vid find_npc_by_vnum(20349)
            if 
vid ~= 0 then
                target
.vid("TARGET_HORSE_GETTING"vid"gehe zum Stallburschen")
            
end
        end
        when TARGET_HORSE_GETTING
.target.click begin
            
if pc.count_item(50050)<=9 then
                say
("Komme wieder wenn du 10 meiner Medailen hast")
                return
            
end
            pc
.remove_item(5005010)
            
pc.give_item2(500511)
            
pc.set_skill_level(13110)
            
horse.set_level(1)
            
horse.summon()
            
horse.ride()
            
say("Heey nicht so schnell das Ding hat")
            
say("mich viel Arbeit gekostet.")
            
set_state(ende)
        
end
    end
    state ende begin
    end
end 
noch eine frage am rande, wann benutze ich den befehl return in einer quest?
Benutze ich das dann wenn ich in einer quest einen befehl habe der erst später ausgeführt werden kann und ich hinter diesem befehl noch sachen stehen habe die davor ausgeführt werden sollen?
Delta371 is offline  
Old 04/10/2017, 20:30   #12509
 
elite*gold: 0
Join Date: Mar 2017
Posts: 103
Received Thanks: 21
Code:
		when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
             1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
             5161.kill or 5162.kill or 5163.kill or 2597.kill begin  
			
			 local dropChance = number(10,100)
            if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
                pc.give_item2(30168, 1)
            end
			end
		end
		
		when 20084.chat."Notizen der Anführer " with pc.count_it
when ... if ... end end end when ...

Du hast 1 end zu viel, in Zukunft bitte korrekt einrücken, dann passiert sowas nicht.

Das rote end hat deinen state Block beendet. Demensprechend erwartet der quest Compiler einen state Block und keinen when Block

Edit: Das Ende deiner Quest sieht auch nicht so gesund aus. Da fehlt das end.
std::max is offline  
Old 04/10/2017, 21:44   #12510
 
Anonyme™'s Avatar
 
elite*gold: 310
Join Date: May 2011
Posts: 1,592
Received Thanks: 105
Quote:
Originally Posted by std::max View Post
Code:
		when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
             1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
             5161.kill or 5162.kill or 5163.kill or 2597.kill begin  
			
			 local dropChance = number(10,100)
            if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
                pc.give_item2(30168, 1)
            end
			end
		end
		
		when 20084.chat."Notizen der Anführer " with pc.count_it
when ... if ... end end end when ...

Du hast 1 end zu viel, in Zukunft bitte korrekt einrücken, dann passiert sowas nicht.

Das rote end hat deinen state Block beendet. Demensprechend erwartet der quest Compiler einen state Block und keinen when Block

Edit: Das Ende deiner Quest sieht auch nicht so gesund aus. Da fehlt das end.
Könntest du eventuell genauer Erklären was du meinst?
Da ich ein Neuling im bereich Questen bin
Dankeschön im Voraus
Anonyme™ is offline  
Reply




All times are GMT +1. The time now is 01:50.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.