[Quest] Finde den Fehler =)

11/26/2014 17:45 Dyshaxo#1
Hello there, bin grade malwieder am verzweifeln.

Habe folgende 2 theoretisch voneinander unabhängige Quest-Dateien:

Comission 1:

Comission2:

Problem: Die Quests scheinen sich an irgendeiner Stelle zu überschneiden, beziehungsweise - wenn beide Quests Parallel laufen, und beide Quests abgeschlossen sind - ist es nicht möglich, beide Quests abzugeben, nach folgendem Muster:

Wurde Quest 2 zuletzt erledigt - kann nur Quest 2 abgegeben werden, bis das Quest1-Killevent trotz fertiggestellter Quest (questflag = 1) auftritt.

Wurde Quest 1 zuletzt erledigt - kann nur Quest 1 abgegeben werden, bis das Quest2-Killevent trotz fertiggestellter Quest (questflag = 1) auftritt.

Aus dem ganzen soll eine Quest-Reihe werden, daher wäre es sehr unvorteilhaft, wenn diese solche Bugs aufweist, aber ich hab' mehrfach drübergeschaut, und nichts an der einen Quest gefunden, was die andere behindern könnte. Alle Questflags haben eigene Namen, alle States haben eigene Namen, separates Kill-Event, das einzige was gemeinsam verwendet wird ist der NPC.

Ein Dritter State zum beenden der Quest ist keine Option, da sich beim setzen des States eines anderen Spielers (pc.select_pid() -> pc.set_state()) nur nochmehr bugs bilden. (Alles nach dem Statewechsel wird nichtmehr ausgeführt, blabla)
11/26/2014 20:25 Benhero#2
benutz folgenden Syntax:
PHP Code:
when kill with npc.get_race() == VNUM begin 
Ymir hat da irgendwie mist gebaut ^^ d.h. wie du schon sagtest blockiert ein Trigger den anderen Kill Trigger.

Außerdem würde ich nachdem der Kill Counter auf 0 gegangen ist ebenfalls einen neuen State setzen anstatt das du einfach eine questflag (pc.setqf) setzt. Ist wesentlich effizienter und übersichtlicher später :)

Grüße
11/26/2014 21:09 Dyshaxo#3
Quote:
Originally Posted by Benhero View Post
benutz folgenden Syntax:
PHP Code:
when kill with npc.get_race() == VNUM begin 
Ymir hat da irgendwie mist gebaut ^^ d.h. wie du schon sagtest blockiert ein Trigger den anderen Kill Trigger.

Außerdem würde ich nachdem der Kill Counter auf 0 gegangen ist ebenfalls einen neuen State setzen anstatt das du einfach eine questflag (pc.setqf) setzt. Ist wesentlich effizienter und übersichtlicher später :)

Grüße
Das ist.. interessant :) ne das Problem mit dem State-Setzen war - wenn ich mit pc.select() 'nen Spieler auswähle, und für diesen dann 'n neuen State setze - wird alles was nach dem Statewechsel passiert nichtmehr ausgeführt, d.h. ich kann nichtmehr den Ursprünglichen Spieler auswählen, geschweige denn dass die Schleife das macht, und das war mein erster Gedanke dazu ^.^
11/26/2014 21:25 Benhero#4
Dann würde ich den Spieler ggf. zwischen Speichern ;) Vlt. in einer globalen Variabele? Oder ebenso über pc.setqf() :D

Grüße
11/26/2014 21:40 Dyshaxo#5
Well, das ergibt zwar alles Sinn, aber das Problem tritt immernoch auf,

Hab' jetzt auch versucht, das questflag-setzen innerhalb des kill-events mittels einem timer zu umgehen, aber - Problem tritt immernoch auf v_v. Merkwürdigerweise - nach abgabe der ersten quest - bei "when button or info begin"-event der 2. quest - funktioniert wiederrum das abgeben der 2. quest ohne das kill-event erneut auszulösen. Dieses Spiel fickt mich immer wieder auf's neue :)
11/26/2014 22:14 grαyfox#6
Quote:
Ymir hat da irgendwie mist gebaut ^^ d.h. wie du schon sagtest blockiert ein Trigger den anderen Kill Trigger.
Ymir hat ausnahmsweise in diesem Fall keinen Mist gebaut, die Schuld liegt hauptsächlich bei den Questern die diese Funktion schon immer falsch rein interpretiert haben. Das nächste mal weniger Scheiße babbeln, die Funktion npc.get_race() regelt in diesem Falle.
11/26/2014 22:33 Dyshaxo#7
Quote:
Originally Posted by .ʛᶉɑҹғох™ View Post
Ymir hat ausnahmsweise in diesem Fall keinen Mist gebaut, die Schuld liegt hauptsächlich bei den Questern die diese Funktion schon immer falsch rein interpretiert haben. Das nächste mal weniger Scheiße babbeln, die Funktion npc.get_race() regelt in diesem Falle.
Sure? :P

kill-event angepasst:

Beide Quests abgeschlossen ->

Nur 1 der Quest abgebbar:


Nach abgeben - nur der abgegebene Quest wieder annehmbar:


erst nach "when button or info begin" - andere quest abgeb/annehmbar:

[Only registered and activated users can see links. Click Here To Register...]
11/26/2014 22:39 grαyfox#8
Quote:
Originally Posted by DaisukeBanned View Post
Sure? :P

kill-event angepasst:

Beide Quests abgeschlossen ->

Nur 1 der Quest abgebbar:


Nach abgeben - nur der abgegebene Quest wieder annehmbar:


erst nach "when button or info begin" - andere quest abgeb/annehmbar:

[Only registered and activated users can see links. Click Here To Register...]
Ich will dir ja ungern zu nahe treten aber YMIR kann am wenigsten dafür das du nicht in der Lage bist zu questen. Solltest du dennoch nicht in der Lage sein den Scheiß bis morgen zu fixen mach' ich es dir
11/26/2014 22:41 Dyshaxo#9
Der Vorwurf an ymir kam nicht von mir :P
11/27/2014 02:55 Benhero#10
Richtig, das kommt von mir. Und ich bin beim besten willen kein schlechter quester. Auch versuche ich hier nur zu helfen. Und wie du so schön geschrieben hast "when kill with npc.get_race() begin" habe ich oben bereits genannt. Dennoch ist es nicht im sinne einer Funktion das sie andere Funktionen der gleichen art. (in diesem fall der Kill trigger) blockiert. Welchen sinn soll es den haben, das eine Quest andere blockiert? dafür gibt es andere möglichkeiten. Und ich denke auch nicht, das es so ausglegt wurde.

Ledeglich wurde vermutlich!!! der fehler gemacht nur nach dem ersten xxx.kill trigger zu suchen und dann zu returnen. Anstatt weiter zu suchen.

Und richtig. Wenn man keine Ahnung von der Materie hat sollte man keinen mist labern ;)
bzw. wie du so schön gesagt hast "Keine scheiße babbeln"

#edit: quests bzw. bugs sind also scheiße? Das entnehme ich zumindest deiner aussage. Wieso interresierst du dich dann überhaupt für dieses Thema? Das macht wie auch deine aussagen einfach keinen sinn :D und wenn du ihm das machst, lernt er es nicht und wird bald wieder fragen. Deswegen gebe ich auch nur denk anstöße :) Aber anscheinend liebst du es ja die scheiße von anderen auszubaden. Naja :D ich bin draußen ^^

Grüße
11/27/2014 09:44 Dyshaxo#11
Die Diskussion, wer der krasseste Quester im Land ist, ist ja echt interessant und ich würde das ganze auch in "Bitchfight-Runden" unterteilen, wenn ich keinen Respekt vor Hilfsbereitschaft hätte, aber - als noch-Schüler eines Informationstechnischen Gymnasiums, wo die bei C# 2 Schuljahre brauchen, bis man zur Objektorientierung kommt, was die bei 'nem Studium in 'ne Woche Vorlesungen verpacken - hab' ich keine Ahnung von der Programmierung, welche hinter Quest-Triggern, Funktionen und sonstiges steckt, daher habt Verständniss dafür, dass ich verwirrt bin, wenn der von koreanischer Firma "ymir" entworfene Kill-Trigger nicht das Eindeutige Ergebniss liefert, wie erwartet.

In 2-3 Jahren bin ich sicher auch soweit, dass ich das alles selbst überschauen und handhaben kann, wie's die überkrassen Informatiker und Superquester und Götter der Programmierung, von Gott selbst dazu auserwählt, den kranksten Privat-Server der Metin2-Szene zu basteln, machen.

Aber bis es soweit ist - wäre 'ne Simple Erklärung cool, warum sich die 2 genannten Quests überschneiden.

vielen dank =)
11/27/2014 10:07 grαyfox#12
Quote:
Originally Posted by Benhero View Post
Richtig, das kommt von mir. Und ich bin beim besten willen kein schlechter quester. Auch versuche ich hier nur zu helfen. Und wie du so schön geschrieben hast "when kill with npc.get_race() begin" habe ich oben bereits genannt. Dennoch ist es nicht im sinne einer Funktion das sie andere Funktionen der gleichen art. (in diesem fall der Kill trigger) blockiert. Welchen sinn soll es den haben, das eine Quest andere blockiert? dafür gibt es andere möglichkeiten. Und ich denke auch nicht, das es so ausglegt wurde.

Ledeglich wurde vermutlich!!! der fehler gemacht nur nach dem ersten xxx.kill trigger zu suchen und dann zu returnen. Anstatt weiter zu suchen.

Und richtig. Wenn man keine Ahnung von der Materie hat sollte man keinen mist labern ;)
bzw. wie du so schön gesagt hast "Keine scheiße babbeln"

#edit: quests bzw. bugs sind also scheiße? Das entnehme ich zumindest deiner aussage. Wieso interresierst du dich dann überhaupt für dieses Thema? Das macht wie auch deine aussagen einfach keinen sinn :D und wenn du ihm das machst, lernt er es nicht und wird bald wieder fragen. Deswegen gebe ich auch nur denk anstöße :) Aber anscheinend liebst du es ja die scheiße von anderen auszubaden. Naja :D ich bin draußen ^^

Grüße

Wer hat denn bitte jemals davon gesprochen das ich ihm lediglich die diversen Fehler beheben werde? Natürlich hätte ich ihn auch mit der Fehler Thematik auseinander setzen lassen, was glaubst du wieso ich schrieb "bis morgen". Nach deiner Logik bestehen also Sprachen wie C#, dem Javakiller 2000 von Microsoft, lediglich aus Dünnschiss seitens Microsoft aufgrund der Tatsache das sich gewisse Funktionen überschneiden könnten? Ziemlicher Unfug, genau derartiges demonstriert einem eigentlich das man viel mehr Freiraum hat als beispielsweise in diversen anderen Scriptlanguages (Nein C# ist keine Scriptsprache das ist mir bewusst ich merke dies nur für Idioten nebenbei an). Nein, "ich liebe es nicht die Scheiße anderer auszubaden", ich erfülle lediglich einige Kriterien die jeder Teilhaber einer Community erfüllen sollte, dazu zählt beispielsweise die Hilfsbereitschaft.


Quote:
Originally Posted by DaisukeBanned View Post
Die Diskussion, wer der krasseste Quester im Land ist, ist ja echt interessant und ich würde das ganze auch in "Bitchfight-Runden" unterteilen, wenn ich keinen Respekt vor Hilfsbereitschaft hätte, aber - als noch-Schüler eines Informationstechnischen Gymnasiums, wo die bei C# 2 Schuljahre brauchen, bis man zur Objektorientierung kommt, was die bei 'nem Studium in 'ne Woche Vorlesungen verpacken - hab' ich keine Ahnung von der Programmierung, welche hinter Quest-Triggern, Funktionen und sonstiges steckt, daher habt Verständniss dafür, dass ich verwirrt bin, wenn der von koreanischer Firma "ymir" entworfene Kill-Trigger nicht das Eindeutige Ergebniss liefert, wie erwartet.

In 2-3 Jahren bin ich sicher auch soweit, dass ich das alles selbst überschauen und handhaben kann, wie's die überkrassen Informatiker und Superquester und Götter der Programmierung, von Gott selbst dazu auserwählt, den kranksten Privat-Server der Metin2-Szene zu basteln, machen.

Aber bis es soweit ist - wäre 'ne Simple Erklärung cool, warum sich die 2 genannten Quests überschneiden.

vielen dank =)
Zu aller erst ist LUA eine Scriptsprache und keine Programmiersprache. Mein Angebot steht übrigens immer noch, kannst mich dahingehend anschreiben. Ich weiß ja nicht woher deine Informationsquelle stammt allerdings habe ich einen guten Freund welcher im 3 Semester ist und gerade dabei ist zu verstehen wie eine for Schleife in Java funktioniert.
11/27/2014 10:19 Dyshaxo#13
Quote:
Originally Posted by .ʛᶉɑҹғох™ View Post
Zu aller erst ist LUA eine Scriptsprache und keine Programmiersprache.

Ich weiß ja nicht woher deine Informationsquelle stammt allerdings habe ich einen guten Freund welcher im 3 Semester ist und gerade dabei ist zu verstehen wie eine for Schleife in Java funktioniert.
Hyperbel, die hatten das nicht wirklich in 'ner Woche, aber ->

Mein Bruder macht 'n Duales Studium, Abwechselnd Betrieb/Hochschule, die lernen da auch Java, und der hatte meinen Wissensstand der kompletten 11. Klasse nach einer Woche (waren glaube ich bei Schleifen und Arrays).

ich schicke dir die Questfiles, wenn du's hinbekommst, und mir den Fehler prägnant erklären kannst schenk' ich dir die 20e*gold, die mir mal irgendwer geschenkt hat =)
11/27/2014 10:20 grαyfox#14
Brauchst du nicht, ich bin ein Vertreter der Verkaufstaktiken des Heroin Gewerbes, das erste mal ist immer kostenlos :D