Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 03:33

  • 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 09/17/2014, 19:23   #10471

 
Avulsed's Avatar
 
elite*gold: 90
Join Date: Apr 2010
Posts: 1,887
Received Thanks: 1,793
Quote:
Originally Posted by .Orcgasm View Post
Nächstes Problem:
PHP Code:
state information begin
        when letter begin
            local v 
find_npc_by_vnum(20080)
            if 
!= 0 then
            target
.vid("__TARGET__ "Die Geschichte des Cureya!")
            end
            send_letter("
Die Geschichte des Cureya!")
            end
        end
        when button or info begin
            say_title("
Cureya")
            say("")
            say("
Die bitte des Biologen:")
            say("
cureya")
            say("
eueeeeeeeeeeeeeeeee")
            say("
jsjjjsjsjsjsjsjsjsjjs")
            say("
kskskskskskss")
            say("
Viel Glück.")
            say("")
        end 
Da kommt kein LETTER oder Pfeil um zum NPC hinzugehen (klicken) bringt auch nichts ? was ist das <.<

(das ist nicht die ganze Quest !!!
Die Quest ladet auch vernünftig alles drum und dran nur klicken bzw letter kommt nicht!
Versuch es mal so:

PHP Code:
state information begin
        when letter begin
            local v 
find_npc_by_vnum(20080)
            if 
!= 0 then
            target
.vid("__TARGET__ ",v,"Die Geschichte des Cureya!")
            
end
            send_letter
("Die Geschichte des Cureya!")
            
end
        end
        when button 
or info begin
            say_title
("Cureya")
            
say("")
            
say("Die bitte des Biologen:")
            
say("cureya")
            
say("eueeeeeeeeeeeeeeeee")
            
say("jsjjjsjsjsjsjsjsjsjjs")
            
say("kskskskskskss")
            
say("Viel Glück.")
            
say("")
        
end 
Avulsed is offline  
Thanks
1 User
Old 09/20/2014, 01:13   #10472
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,807
Received Thanks: 866
Hallo,

Egal welchen Mob man killt man bekommt Coins.

PHP Code:
quest boss_kill_coins begin
    state start begin
        when kill with npc
.get_race() == 691 or 791 or 5163 or 2091 or 2191 or 1901 or 2206 or 1192 or 1304 or 1091 or 1092 or 1093 or 2493 begin -- MonsterID ergänzen
            mysql_query
('UPDATE account.account SET coins = coins+ 5 WHERE id = '..pc.get_account_id()..' LIMIT 1')
            
syschat("Du hast ein Boss getötet, Dir wurden 5 Coins gutgeschrieben.")
        
end
    end
end 
Ich danke für jede Hilfe.
Luna.Host is offline  
Old 09/20/2014, 10:53   #10473

 
.yorliK's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
Quote:
Originally Posted by Akaja™ View Post
Hallo,

Egal welchen Mob man killt man bekommt Coins.


Ich danke für jede Hilfe.
Code:
quest boss_kill_coins begin 
	state start begin 
		function check_tabelle(t, v)
			for i=1, table.getn(t), 1 do
				if t[i]==v then
					return true
				end
			end
		end
		when kill with not npc.is_pc() begin
			monster ={691, 791, 5163, 2091, 2191, 1901, 2206, 1192, 1304, 1091, 1092, 1093, 2493} -- Alle Bosse hier eintragen
			if boss_kill_coins.check_tabelle(monster, npc.get_race()) then
				mysql_query('UPDATE account.account SET coins = coins+ 5 WHERE id = '..pc.get_account_id()..' LIMIT 1') 
				syschat("Du hast ein Boss getötet, Dir wurden 5 Coins gutgeschrieben.") 
			end
		end 
	end 
end
.yorliK is offline  
Old 09/20/2014, 11:35   #10474
 
Endless.'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 2,047
Received Thanks: 744
Meine Testquest läuft nicht..

Code:
quest trial begin
	state start begin
		when login begin
			if pc.get_map_index() == 197 then
				say ("Testfunktion")
			end
		end
	end
	state destroy begin
		when 8028.kill begin
			say ("Du hast den Metinstein zerstört!")
			say ("Nun musst du es schaffen viele")
			say ("Wellen von den übelsten Wesen")
			say ("zu überleben. Hier kommt sie auch")
			say ("schon.. Die 1. Welle!!")
			set_state(welle1)
			mob.spawn(101, 102, 51, 0, 0, 10)
		end
	end
	state welle1 begin
		when 101.kill begin
			if count == 10 then
				say ("Testrunde beendet")
				set_state(ende)
			end
		end
	end
	state ende begin
	end
end
Fehlercode: Keiner
Merkmal: Nach dem ich meine 10 Testmobs gekillt habe, passiert nix..
Und meine Testchars können nur 1x diesen Testlauf ausführen..

Kann mir jemand helfen? Hab sehr lange nichts mehr in dieser Richtung gemacht :S



Gruß, Endless
Endless. is offline  
Old 09/20/2014, 11:45   #10475

 
.yorliK's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
Quote:
Originally Posted by Endless. View Post
Meine Testquest läuft nicht..

Fehlercode: Keiner
Merkmal: Nach dem ich meine 10 Testmobs gekillt habe, passiert nix..
Und meine Testchars können nur 1x diesen Testlauf ausführen..

Kann mir jemand helfen? Hab sehr lange nichts mehr in dieser Richtung gemacht :S



Gruß, Endless

Na klar.. das sieht so aus, als hättest du nie irgendetwas in dieser Richtung gemacht!

Wie kann der Count denn überhaupt steigen?! Wie soll dieser Testlauf nochmal gemacht werden, wenn du einen "ende" state setzt, der nichts mehr bewirkt? Stell dir vor, das ist wie ne Sackgasse. Wenn du schon ne Quest kontrolliert haben möchtest, dann dichte uns doch bitte keine Märchen auf, nur damit die Quest danach so funktioniert wie du dir das vorstellst. (Verwende dann doch lieber die Questerstellung)

Wenn das alles nicht so ist, entschuldige ich mich für die Beschuldigungen, aber es kommt halt einfach so rüber.

Code:
quest trial begin
	state start begin
		when login begin
			if pc.get_map_index() == 197 then
				say ("Testfunktion")
				set_state(destroy)
			end
		end
	end
	state destroy begin
		when kill with npc.get_race()==8028 begin
			say ("Du hast den Metinstein zerstört!")
			say ("Nun musst du es schaffen viele")
			say ("Wellen von den übelsten Wesen")
			say ("zu überleben. Hier kommt sie auch")
			say ("schon.. Die 1. Welle!!")
			mob.spawn(101, 102, 51, 0, 0, 10)
			pc.setqf("test_count", 0)
			set_state(welle1)
		end
	end
	state welle1 begin
		when kill with npc.get_race()==101 begin
			pc.setqf("test_count", pc.getqf("test_count")+1)
			if pc.getqf("test_count")== 10 then
				say ("Testrunde beendet, durch einen Relog")
				say("kann der Testlauf erneut gemacht werden.")
				set_state(start)
			end
		end
	end
end
.yorliK is offline  
Thanks
1 User
Old 09/20/2014, 12:01   #10476
 
Endless.'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 2,047
Received Thanks: 744
Danke erstmal.. Aber trotzdem kein Grund gleich so streng zu werden.. ich dachte nur ,das ich durch das login auf der Map INDEX den "start" state auslöse und habe es nicht geahnt, das man da diese race Funktion braucht.. Diese Quest soll am Ende 10 Wellen, Bosse und einen Teleport bringen.. das kann ich soweit, nur deswegen habe ich hier auch nur die kleine Testquest gepostet, damit ich den Fehler finde..
Endless. is offline  
Old 09/21/2014, 03:36   #10477
 
Chaosnightx3's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
Guten morgen Leute, da ich zurzeit bisschen am basteln bin und zurzeit questing lerne.
Möchte ich gerne etwas wissen.
Die Quest "funktioniert" zurzeit so wie cih sie geschriebe habe, mit den States etc.

Das Problem ist nur... das die States sich bei einem Relog oder porten wieder zurück setzen und man wieder beim start der Quest ist...

Dann möchte ich gerne wissen, wie ich eine Dropp definition reinschreibe, wenn z.b. vorher in der Quest steht: Bringe mir xxx Zeug!

ich möchte das gerne mit when xxx.killl
und dann mit einer If abfrage, dass man die Items hat und dann zum Npc gehen muss...


mfg
Chaosnightx3 is offline  
Old 09/21/2014, 12:59   #10478

 
.yorliK's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
Quote:
Originally Posted by Chaosnightx3 View Post
Guten morgen Leute, da ich zurzeit bisschen am basteln bin und zurzeit questing lerne.
Möchte ich gerne etwas wissen.
Die Quest "funktioniert" zurzeit so wie cih sie geschriebe habe, mit den States etc.

Das Problem ist nur... das die States sich bei einem Relog oder porten wieder zurück setzen und man wieder beim start der Quest ist...

Dann möchte ich gerne wissen, wie ich eine Dropp definition reinschreibe, wenn z.b. vorher in der Quest steht: Bringe mir xxx Zeug!

ich möchte das gerne mit when xxx.killl
und dann mit einer If abfrage, dass man die Items hat und dann zum Npc gehen muss...

mfg
.yorliK is offline  
Old 09/21/2014, 13:16   #10479
 
Chaosnightx3's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
Ich werde es testen, vielen dank!


edit: kann ich dort auch mehrere ID´s eintragen ?
also mehrere Mobs ID´s.
Chaosnightx3 is offline  
Old 09/21/2014, 13:37   #10480

 
.yorliK's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
Quote:
Originally Posted by Chaosnightx3 View Post
Ich werde es testen, vielen dank!


edit: kann ich dort auch mehrere ID´s eintragen ?
also mehrere Mobs ID´s.
Ja das kannst du:
Code:
when kill with npc.get_race()==101 or npc.get_race()==102 or npc.get_race()==103 begin
...und das dann immer so weiter
.yorliK is offline  
Old 09/21/2014, 13:51   #10481
 
Chaosnightx3's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
Wunderbar, ich danke dir.

Sollte noch was sein, werde ich mich bei dir per Pn melden, wenn dies ok ist.
Chaosnightx3 is offline  
Old 09/21/2014, 15:58   #10482
 
Endless.'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 2,047
Received Thanks: 744
Eine Frage habe ich noch.. hoffe das ich nicht gleich wieder irgendwie abgestempelt werde.. also:

PHP Code:
quest trial begin
    state start begin
        when login begin
            
if pc.get_map_index() == 197 then
                say 
("Testfunktion")
                
set_state(destroy)
            
end
        end
    end
    state destroy begin
        when kill with npc
.get_race()==8028 begin
            say 
("Du hast den Metinstein zerstört!")
            
say ("Nun musst du es schaffen viele")
            
say ("Wellen von den übelsten Wesen")
            
say ("zu überleben. Hier kommt sie auch")
            
say ("schon.. Die 1. Welle!!")
            
mob.spawn(101102510010)
            
pc.setqf("test_count"0)
            
set_state(welle1)
        
end
    end
    state welle1 begin
        when kill with npc
.get_race()==101 begin
            pc
.setqf("test_count"pc.getqf("test_count")+1)
            if 
pc.getqf("test_count")== 10 then
                say 
("Testrunde beendet, durch einen Relog")
                
say("kann der Testlauf erneut gemacht werden.")
                
set_state(start)
            
end
        end
    end
end 
Habe die Quest zwar schon ausgebaut und die ist sogut wie fertig.. aber wenn jemand in der zwischenzeit ein Kick bekommt, es dem jenigen zu heftig wird oder sonst was womit er sich ausloggen will/muss.. kann dieser Spieler nicht von vorne beginnen, sobald er die Map betritt.. ich würde es so regeln wollen, das man nach nem Relog oder einem Kick einfach von neu beginnen muss..

Danach gebe ich auch Ruhe..


Gruß, Endless
Endless. is offline  
Old 09/21/2014, 16:10   #10483
 
QuickFlameZ's Avatar
 
elite*gold: 0
Join Date: Mar 2012
Posts: 646
Received Thanks: 696
Quote:
Originally Posted by Kilroy. View Post
Ja das kannst du:
Code:
when kill with npc.get_race()==101 or npc.get_race()==102 or npc.get_race()==103 begin
...und das dann immer so weiter
Oder einfach:
PHP Code:
bsp.
when kill with npc.get_race()>=101 and npc.get_race()<=105 begin 
QuickFlameZ is offline  
Old 09/21/2014, 16:11   #10484
 
elite*gold: 0
Join Date: Sep 2014
Posts: 256
Received Thanks: 24
Exclamation Fehler bei "m2 qc"

PHP Code:
quest Repzx_2 begin
    state start begin
        when 70010.
use begin
            
if string.find(pc.get_name(), "VIP]") == nil then
                say_title
("VIP-Status")
                
say("")
                
say("Mit diesem Item kannst du dich")
                
say("zum VIP ernennen.")
                
say("")
                
say("Willst du es aktivieren oder eher nicht?")
                if 
select("Ja","Nein")==2 then
                    say_title
("VIP-Status")
                    
say("")
                    
say("Okay dann nen anderes Mal.")
                else
                    
say_title("VIP-Status")
                    
say("")
                    
say("Viel Spass mit deinem VIP Account.")
                    
say_reward("Relog durchführen!")
                    
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
                
end
            
else
                
say_title("VIP-Status")
                
say("")
                
say("Du hast deinen VIP-Status ")
                
say("schon aktiviert. Sollte dies nicht der")
                
say("Fall sein, kontaktiere bitte einen Teamler")
            
end
        end
    end
end 
Kriege Fehler wenn ich in die Maschine eingebe "m2 qc"
Repzx. is offline  
Old 09/21/2014, 17:37   #10485

 
.yorliK's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
Quote:
Originally Posted by Endless. View Post
Eine Frage habe ich noch.. hoffe das ich nicht gleich wieder irgendwie abgestempelt werde..

Habe die Quest zwar schon ausgebaut und die ist sogut wie fertig.. aber wenn jemand in der zwischenzeit ein Kick bekommt, es dem jenigen zu heftig wird oder sonst was womit er sich ausloggen will/muss.. kann dieser Spieler nicht von vorne beginnen, sobald er die Map betritt.. ich würde es so regeln wollen, das man nach nem Relog oder einem Kick einfach von neu beginnen muss...


Gruß, Endless




Quote:
Originally Posted by QuickFlameZ View Post
Oder einfach:
PHP Code:
bsp.
when kill with npc.get_race()>=101 and npc.get_race()<=105 begin 
Wer sagt denn das er die IDs 101 bis 105 nimmt? Das war nur ein Beispiel, damit er versteht, das er so mehrere Mobs verschiedener ID's nehmen kann.




Quote:
Originally Posted by Repzx. View Post

Kriege Fehler wenn ich in die Maschine eingebe "m2 qc"
Was denn für einen Fehler? Ich hab sie getestet, griege keinen Fehler, vermuten kann ich aber das dir die Funktion "string.find" fehlt. Dafür öffne einfach die quest_functions Datei im Questverzeichnis und schreibe dort string.find rein.
.yorliK is offline  
Thanks
2 Users
Reply




All times are GMT +1. The time now is 03:33.


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.