Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 15: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 05/17/2015, 21:28   #11551
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by .Soυzα View Post
Guten Tag,
ich habe soeben eine neue Chrismas Quest eingefügt und habe diesen Fehler bekommen.

Code:
christmas_tree_2014.quest:34:expecting 'when' or 'function'
Error occured on compile christmas_tree_2014.quest
Leider habe ich in zeile 34 keinen Fehler entdeckt.
Code:
				pc.give_item2(30603,1)
			else
				syschat("return")
			end
		end
		elseif s==3 then
			say(locale.christmas_tree.greet2)
		elseif s==1 then
			say(locale.christmas_tree.intro_msg)
		end
    end
Schick mal die ganze Quest bzw paar Zeile davor.
KΛIƬӨ is offline  
Old 05/17/2015, 22:00   #11552

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
elseif ohne if davor geht nicht
rollback is offline  
Old 05/18/2015, 13:28   #11553
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by usr.setVnum(1093) View Post
elseif ohne if davor geht nicht
war schon richtig problem war nur was ganz anderes.
KΛIƬӨ is offline  
Old 05/18/2015, 15:29   #11554
 
elite*gold: 0
Join Date: Oct 2014
Posts: 311
Received Thanks: 35

Möchte bei der Quest das man zu einem Npc gehen muss um sie an zu nehmen und das man wenn man die 50 Leute gekillt hat +50 Verteidigung als Belohnung bekommt.
[iControL] is offline  
Old 05/18/2015, 22:24   #11555
 
stenlykkk's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
Hey guys, please can i ask how to make quest for IS coupon? That i click for example 80001 and it will give me 30 coins on account?
stenlykkk is offline  
Old 05/19/2015, 20:16   #11556
 
elite*gold: 0
Join Date: Feb 2013
Posts: 46
Received Thanks: 5
Ich habe eine Warpquest mit Levelbegrenzung, das Problem wenn man zu low vom lvl ist dann buggt es rumm das fenster wir leicht schwarz (oben und unten). Will nun das wenn man unter dem lvl ist das sich das Fenster einfach schließt
PHP Code:
quest lowlvlmapport begin 
    state start begin 
        when 20009.chat
."Low Levelmap - Lv.110" begin
        
            
if pc.get_level() >= 110 then
                say_title
("Low Levelmap"
                
say(""
                
say_red("Möchtest du in die Levelmap teleportiert werden?"
                
local s select("Ja""Nein"
                if 
== 1 then 
                    pc
.warp(832000
                elseif 
== 2 then 
                    
return 
                
end
            
else
                return
            
end 
        end 
    end  
end 
HowToPlayxD is offline  
Old 05/19/2015, 22:02   #11557
 
elite*gold: 0
Join Date: May 2015
Posts: 100
Received Thanks: 13
Kill bestimmter Mobs wird nicht registriert

Hallo epvp-Community,
das hier ist mein erster Post, nachdem ich am Wochenende mit dem Erstellen eines Hamachi-Servers begonnen habe. Habt bitte Verständnis Ich benutze die Daroo 2011er Serverfiles, falls es jemanden interessiert.

Als ich die Dropps anpassen wollte und in die mob_drop_item.txt geschaut habe, kam mir das schon zeimlich verwirrend vor und selbst als ich bei Drops 100% angegeben habe, kamen die nicht durchgängig. Habe dann alle Drops aus den Dateien entfernt und habe mich dran gesetzt, alle Drops per Quest zu veranlassen (siehe Spoiler). Die Quests funktioniert weitestgehend perfekt (muss nicht auf Programmierfehler untersucht werden, sollte alles zumindest funktionell passen)

Die Quest soll aktuell eben bei allen Metins ein bestimmtes Item droppen und beim Sensenmann die Sensenmanntruhe.
Bei Metin 5-85 geht das einwandfrei, der 90er wird aber einfach nicht erkannt (mit npc.get_race()). Mit dem Sensenmann ist mir dann das gleiche passiert. Nach Benutzen der Suchfunktion bin ich auf ähnliche Probleme gestoßen, dass dies durch mehrere Quest hervorgerufen wird, die alle den Kill eines Mobs abfragen (z. B.: ). Dort wird allerdings vorgeschlagen, mit verschiedener Syntax vorzugehen (z. B. vnum.kill, kill with npc.get_race() oder when kill ... if npc.get_race==vnum then), was in meinem Fall allerdings auch nicht weitergeholfen hat. Hab dann zum Test mal die DT quest rausgenommen, in dem der Tod des Sensenmanns mit when 1093.kill with pc.in_dungeon() ... abgefragt wird, dann gings beim Sensenmann. Quest mit 90er Metins hab ich keine gefunden.

Zusammengefasst:
1. Liegt es nun also daran, dass mehrere Quests das selbe Event abfragen?
2. Kann man das theoretisch durch wechseln der Befehle/Bedingungen beheben? Wenn ja, wie?
3. Ist es generell ratsam, alle Drops durch eine Quest zu regeln? Der Server muss bei jdedem gekillten Mob die Quest starten.
4. Wie kann ich die Quest optimieren, um ressourcenschonender zu werden? (Bei erfolgreichem If kann return eingefügt werden beispielsweise, stand schon auf meiner To Do-Liste ) Schickt mir bitte keine fertigen Quests, sondern erklärt oder macht Beispiele, will ja keine Quest sondern was dabei lernen.

Außerdem droppen Metins gelegentlich, trotz leerer mob_drop_item und leerer common_drop_item (in diesem Fall eher belanglos), immer noch Geiststeine. Woran liegt das und wie kann man das fixen?

Danke schon mal im Voraus!

€: die DT-Quest war ein Release von epvp für die Daroo files, weil diese buggy war. In der war auch der 90er Metin mit "8027.kill" enthalten, wenn ich diese entferne gehen beide. Liegt also an der Quest bzw. am doppelten Aufrufen.

================================================== =======
Antwort an HowToPlayxD:

Quote:
Originally Posted by HowToPlayxD View Post
Ich habe eine Warpquest mit Levelbegrenzung, das Problem wenn man zu low vom lvl ist dann buggt es rumm das fenster wir leicht schwarz (oben und unten). Will nun das wenn man unter dem lvl ist das sich das Fenster einfach schließt
Versuch mal statt einfach nur return lieber say("...") o.ä. auszugeben, dann dürfte sich das Fenster auch so schließen.
Eine weitere Option ist (was eher in älteren Quets in meinem Client verwendet wird) mit "npc.unlock() return" oder mit setskin(NOWINDOW).

Am besten sollte es aber gehen, wenn du einfach ein say-Befehl ausgibst mit dem zu z. B. auch mitteilen kannst, dass die Map erst ab lvl. 110 betretbar ist.
.Philipp is offline  
Thanks
1 User
Old 05/19/2015, 22:23   #11558
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,994
Received Thanks: 3,389
Quote:
Originally Posted by HowToPlayxD View Post
Ich habe eine Warpquest mit Levelbegrenzung, das Problem wenn man zu low vom lvl ist dann buggt es rumm das fenster wir leicht schwarz (oben und unten). Will nun das wenn man unter dem lvl ist das sich das Fenster einfach schließt
PHP Code:
quest lowlvlmapport begin 
    state start begin 
        when 20009.chat
."Low Levelmap - Lv.110" begin
        
            
if pc.get_level() >= 110 then
                say_title
("Low Levelmap"
                
say(""
                
say_red("Möchtest du in die Levelmap teleportiert werden?"
                
local s select("Ja""Nein"
                if 
== 1 then 
                    pc
.warp(832000
                elseif 
== 2 then 
                    
return 
                
end
            
else
                return
            
end 
        end 
    end  
end 

Bitteschön.

lg
Nick is offline  
Thanks
1 User
Old 05/19/2015, 22:26   #11559
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by .Philipp View Post
Hallo epvp-Community,
das hier ist mein erster Post, nachdem ich am Wochenende mit dem Erstellen eines Hamachi-Servers begonnen habe. Habt bitte Verständnis Ich benutze die Daroo 2011er Serverfiles, falls es jemanden interessiert.

Als ich die Dropps anpassen wollte und in die mob_drop_item.txt geschaut habe, kam mir das schon zeimlich verwirrend vor und selbst als ich bei Drops 100% angegeben habe, kamen die nicht durchgängig. Habe dann alle Drops aus den Dateien entfernt und habe mich dran gesetzt, alle Drops per Quest zu veranlassen (siehe Spoiler). Die Quests funktioniert weitestgehend perfekt (muss nicht auf Programmierfehler untersucht werden, sollte alles zumindest funktionell passen)

Die Quest soll aktuell eben bei allen Metins ein bestimmtes Item droppen und beim Sensenmann die Sensenmanntruhe.
Bei Metin 5-85 geht das einwandfrei, der 90er wird aber einfach nicht erkannt (mit npc.get_race()). Mit dem Sensenmann ist mir dann das gleiche passiert. Nach Benutzen der Suchfunktion bin ich auf ähnliche Probleme gestoßen, dass dies durch mehrere Quest hervorgerufen wird, die alle den Kill eines Mobs abfragen (z. B.: ). Dort wird allerdings vorgeschlagen, mit verschiedener Syntax vorzugehen (z. B. vnum.kill, kill with npc.get_race() oder when kill ... if npc.get_race==vnum then), was in meinem Fall allerdings auch nicht weitergeholfen hat. Hab dann zum Test mal die DT quest rausgenommen, in dem der Tod des Sensenmanns mit when 1093.kill with pc.in_dungeon() ... abgefragt wird, dann gings beim Sensenmann. Quest mit 90er Metins hab ich keine gefunden.

Zusammengefasst:
1. Liegt es nun also daran, dass mehrere Quests das selbe Event abfragen?
2. Kann man das theoretisch durch wechseln der Befehle/Bedingungen beheben? Wenn ja, wie?
3. Ist es generell ratsam, alle Drops durch eine Quest zu regeln? Der Server muss bei jdedem gekillten Mob die Quest starten.
4. Wie kann ich die Quest optimieren, um ressourcenschonender zu werden? (Bei erfolgreichem If kann return eingefügt werden beispielsweise, stand schon auf meiner To Do-Liste ) Schickt mir bitte keine fertigen Quests, sondern erklärt oder macht Beispiele, will ja keine Quest sondern was dabei lernen.

Außerdem droppen Metins gelegentlich, trotz leerer mob_drop_item und leerer common_drop_item (in diesem Fall eher belanglos), immer noch Geiststeine. Woran liegt das und wie kann man das fixen?

Danke schon mal im Voraus!

€: die DT-Quest war ein Release von epvp für die Daroo files, weil diese buggy war. In der war auch der 90er Metin mit "8027.kill" enthalten, wenn ich diese entferne gehen beide. Liegt also an der Quest bzw. am doppelten Aufrufen.

================================================== =======
Antwort an HowToPlayxD:



Versuch mal statt einfach nur return lieber say("...") o.ä. auszugeben, dann dürfte sich das Fenster auch so schließen.
Eine weitere Option ist (was eher in älteren Quets in meinem Client verwendet wird) mit "npc.unlock() return" oder mit setskin(NOWINDOW).

Am besten sollte es aber gehen, wenn du einfach ein say-Befehl ausgibst mit dem zu z. B. auch mitteilen kannst, dass die Map erst ab lvl. 110 betretbar ist.
hab mir zwar nicht alles durchgelesen aber regel es per db am besten.
KΛIƬӨ is offline  
Old 05/19/2015, 22:33   #11560
 
elite*gold: 0
Join Date: May 2015
Posts: 100
Received Thanks: 13
Quote:
Originally Posted by DYSKaito View Post
hab mir zwar nicht alles durchgelesen aber regel es per db am besten.
und wie regelt man sowas per db? Einzige andere Möglichkeit, die mir bekannt ist, wäre die mob_drop_item?
Lasse mich gern eines besseren belehren
.Philipp is offline  
Old 05/22/2015, 16:32   #11561
 
elite*gold: 0
Join Date: Apr 2015
Posts: 31
Received Thanks: 3
deleted
Bullrihgter1 is offline  
Old 05/22/2015, 18:24   #11562
 
Backxtar's Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 400
Received Thanks: 46
Heyjo habe momentan folgende Quest:


Die sieht InGame so aus:



ich möchte aber, dass dort statt nur Schrift auch das Icon des Items auftaucht wie hier beim Mülleimer:



Kann mir das jm in die Quest einfügen?
Backxtar is offline  
Old 05/22/2015, 19:02   #11563
 
elite*gold: 0
Join Date: Apr 2015
Posts: 31
Received Thanks: 3
PHP Code:
quest steinupp begin
    state start begin
        when 20364.take begin
            local itemvnum 
item.get_vnum()
            
local resultvnum itemvnum+100
            local uppchance 
25
            
if not steinupp.in_list(itemvnum, {283122833028331283322833328334283352833628337283382833928340283412834228343}) then
                
return chat("Ich kann leider nur Steine von +3 auf +4 verbessern ...")
            
end
            say
("Möchtest du "..item_name(itemvnum).." wirklich zu")
            
say(item_name(resultvnum).." verbessern?")
            
say_item_vnum(28312)
            
say("")
            
say("Der Versuch kann fehlschlagen!")
            if 
select("Fortfahren""Abbrechen") == 2 then return end
            pc
.remove_item(itemvnum)
            if 
steinupp.perc_chance(uppchancethen
                pc
.give_item2(resultvnum)
                
chat("Die Verbesserung war erfolgreich!")
            else
                
chat("Dein Stein wurde bei der Verbesserung zerstört ...")
            
end
        end
        
function in_list(compare, list)
            for 
_,v in pairs(list) do
                if 
compare == v then return true end
            end
            
return false
        end
        
function perc_chance(i)
            return 
math.random() <= (i/100)
        
end
    end
end 
Probier mal so
Bullrihgter1 is offline  
Old 05/22/2015, 19:26   #11564
 
Backxtar's Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 400
Received Thanks: 46
was is daran jetzt anders?^^
Backxtar is offline  
Old 05/22/2015, 20:02   #11565
 
elite*gold: 0
Join Date: Apr 2015
Posts: 234
Received Thanks: 54
PHP Code:
quest steinupp begin
    state start begin
        when 20364.take begin
            local itemvnum 
item.get_vnum()
            
local resultvnum itemvnum+100
            local uppchance 
25
            
if not steinupp.in_list(itemvnum, {283122833028331283322833328334283352833628337283382833928340283412834228343}) then
                
return chat("Ich kann leider nur Steine von +3 auf +4 verbessern ...")
            
end
            say
("Möchtest du "..item_name(itemvnum).." wirklich zu")
            
say(item_name(resultvnum).." verbessern?")
            
say("")
            
say("Der Versuch kann fehlschlagen!")
            if 
select("Fortfahren""Abbrechen") == 2 then return end
            pc
.remove_item(itemvnum)
            if 
steinupp.perc_chance(uppchancethen
                pc
.give_item2(resultvnum)
                
chat("Die Verbesserung war erfolgreich!")
            else
                
chat("Dein Stein wurde bei der Verbesserung zerstört ...")
            
end
        end
        
function in_list(compare, list)
            for 
_,v in pairs(list) do
                if 
compare == v then return true end
            end
            
return false
        end
        
function perc_chance(i)
            return 
math.random() <= (i/100)
        
end
    end
end 
So funktioniert es hab es bei mir getestet
#.TwoFace.# is offline  
Reply




All times are GMT +1. The time now is 15:34.


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.