![]() |
Vnum.kill - quests überlagern sich - keine drops
Hey,
der Post war schon in der Questkontrolle, allerdings war er dort im Nachhinein von mir falsch positioniert, weil es nicht um die Quest an sich geht, sondern um die Interaktion mehrerer Quests (vermutlich). Ich benutze die Daroo 2011er Serverfiles, falls es jemanden interessiert. Entweder macht euch die Mühe und lest und antwortet dann oder lasst es ganz. Halbherzige Antworten, die nicht mal auf das Kernproblem gerichtet sind, brauch ich nicht :) 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) Spoiler:
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.: [Only registered and activated users can see links. Click Here To Register...]). 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 :D) 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. |
Code:
when kill with npc.get_race() == npcvnum begin |
Werde ich testen, danke schon mal :)
Rein aus Interesse trotzdem: Was ist für das Programm der Unterschied zwischen when kill with npc.get_race()==vnum begin und when kill begin ... If npc.get_race() then ... ? Weil mir fällt auf die schnelle nicht ein, wie ich die Bedingung mit der vnum (with npc.get_race) in den Kopf hinters when bekomme, ohne die Grundidee der Quest (Eingabe der einzelnen Mobs + Drops) zu verändern :) |
Quote:
Code:
if npc.get_race() == vnum then |
Quote:
Da sieht man deutlich, wenn man die Bedingung nicht erfüllt erscheint die Auswahl garnicht erst. Wenn man es in einen extra if-block darunter schreibt sieht man vorher die Auswahl aber erst beim Anklicken gehts nicht weiter. |
Quote:
|
Quote:
|
Wie kann es denn überhaupt sein, wenn es von der Funktionsweise her gleich ist, die beiden Quests sich im Weg stehen?
Sprich sobald ich beide Quests drin hab, drop ich mit meiner drop-Quest nichts mehr, weil der kill vom sensi (oder in meinem Fall auch von den 90er metins) schon in der dt-Quest abgefragt wird. Kann man einen kill eines bestimmten mobs nur in einer einzigen Quest abfragen? Wär ja bisschen komisch. Jedenfalls wenn ich die dt-Quest rausnehme, funktioniert die Drop-Quest für den sensi oder 90er-metin und ich droppe wie geplant, sonst nicht :/ Muss ich vielleicht beide in kill with npc.get_race()==vnum ändern? Aktuell eines 1093.kill und eines eben mit get_race... |
Du schreibst einfach anstatt:
Code:
when 1093.kill beginCode:
when kill with npc.get_race() == 1093 beginCode:
when 1093.kill with DEINE_EINSCHRAENKUNG == 0 beginCode:
when kill with DEINE_EINSCHRAENKUNG == 0 and npc.get_race() == 1093 begin |
Aaach gut, jetzt sind wir beim Punkt:
Zwischen 1093.kill und kill with npc.get_race besteht der Unterschied? Und 1093.kill darf unter allen Quests nur einmal bestehen, sonst gehen die anderen nicht mehr? Wenn ja, warum ist das so? |
| All times are GMT +2. The time now is 21:55. |
Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.