Jump to content

Nscs, die durch den boden laufen


Danator

Recommended Posts

Ja, ich bin gerade an diesem Fehler dran. Und ich glaube, ich hab schon einen ganz guten Ansatz. Und zwar, wenn ich mir als GM die Koordinaten mittels GPS ansehe, dann ist in der Regel die Ground_Z und FLOOR_Z absolut identisch, aber wenn unter einem NSC ein Hohlraum ist, dann sind die Werte unterschiedlich, die weichen extrem voneinander ab. Ich denke der Fehler, dass die durch die Böden laufen und diese beiden unterschiedlichen z-Werte müssen irgendwie miteinander zusammenhängen. Ich nehme stark an, dass die GetPositionZ() in Eurem Quellcode in solchen Fällen falsch ist und deshalb ist die Punktberechnung, die dahintersteht ebenfalls falsch. Das vermute ich, ne? Auch wenn ich das nicht so richtig verstehe, was Ihr da gemacht habt. Ich vermute wie gesagt, dass das die Fehlerursache sein könnte, leider ist Euer Code für mich nicht ganz nachvollziehbar, aber probieren geht über studieren. Vielleicht schaff ichs ja. Und falls es wirklich daran liegen sollte, müsstet Ihr den Fehler mit Leichtigkeit beheben können.

Link to comment
Share on other sites

Mir ist noch was aufgefallen. Die NSCs haben einen anderen Z-Wert als ich. Mit GPS kann ich ja meinen Z-Wert ermitteln und die NSCs müssten ja theoretisch, wenn sie an derselben STelle stehen wie ich den exakt gleichen Z-Wert aufweisen, tun sie aber nicht. Er ist ungefähr um 30 niedriger. Faszinierend.

Link to comment
Share on other sites

Ach nee, war mein Fehler. Es wird eine Ground_Z, eine Floor_Z und dann noch mal eine andere Z angezeigt, die meine Position darstellt. Na ja, dann müsste es doch eigentlich stimmen oder nicht? Aber in Eurem Code verwendet Ihr in einigen Fällen die Formel zur Bestimmung der floor_Z. Ob da das Problem liegt? Im Wasser ist das vielleicht richtig, aber außerhalb von Wasser? Na ja, mal gucken.

Link to comment
Share on other sites

Okay, ja, ja, ich verstehe jetzt ein bisschen mehr. Was Ihr da berechnet ist offensichtlich falsch. DAs funktioniert nur außerhalb von Höhlen oder wenn keine Hohlräume vorhanden sind. Nur dann funktioniert es. Die Frage ist jetzt allerdings wie ich ihm die korrekte Höhe übermitteln soll. Das darf ja nur in bestimmten Fällen so sein. Mal sehen, vielleicht schaffe ich es.

Link to comment
Share on other sites

Ich war gestern nicht so in Arbeitslaune, deshalb hab ich da nicht weitergemacht, aber der prinzipielle Lösungsansatz ist klar, da Eure gewählten Werte in vielen Fällen offensichtlich vollkommen falsch sind, was die Berechnung der Z-Koordinate angeht, muss ich ihn irgendwie die richtigen Werte schätzen lassen, bzw. in bestimmten Fällen lässt er die Z-Koordinate einfach so wie er sie hat. Weil wie gesagt was ihr da verwendet funktioniert offensichtlich nicht in Höhlen, wo es sozusagen eine Decke gibt und vielleicht noch eine Etage tiefer einen Raum und darüber noch eine Fläche. Hier verwendet er vollkommen falsche Werte, deshalb rennen die da teilweise durch Decken oder bewegen sich gar nicht.

Hinzu kommt, dass Ihr es aus welchen Gründen auch immer so gemacht habt, dass er den Kampf abbricht, wenn er aus einer Zellkoordinate rausläuft. An bestimmten "blöden" Stellen wo all diese Merkwürdigkeiten zusammenkommen, greifen die Viecher deshalb teilweise nicht mal an bzw. rennen kurz danach wieder zu ihrem Spawnpunkt zurück. Das mit den Zellen könnte man theoretisch lösen (ich weiß nicht ob das geht), indem ich ihm mitteile, dass er nur eine Zelle pro Karte verwenden soll. Theoretisch müsste das gehen. Dann wäre auch dieser Fehler behoben.

Aber ob ich das heute mache oder schaffe weiß ich nicht. Meistens funktioniert es ja nicht so wie man es sich denkt und man muss sich wieder was Neues einfallen lassen.

Link to comment
Share on other sites

Also in einer Höhle am Loch Modan sind drei NSCs, die man für eine Quest besiegen soll, die greifen nur leider im Nahkampf nicht an. Diesen Fehler habe ich mit meinen neuen Einstellungen immerhin behoben, ob dadurch auch die Höhlenkletterer verschwunden sind, muss ich noch testen, auch ob sonst keine Fehler auftreten. Dürfte aber eigentlich nicht, ich habe eigentlich lediglich verhindert, dass illegale z-Werte berechnet werden. ob die Punkte in Sicht sind oder nicht, das kontrolliert ja bereits eine andere Funktion. Jetzt muss ich das nur noch für die anderen Fälle in Eurem Quellcode ändern. Mal sehen bis jetzt sieht es gut aus.

Link to comment
Share on other sites

Nach einigen Tests kann man schon mal sagen, dass eines sicher ist, überall wo ich nachgesehen habe gibt es keine Höhlenkletterer mehr. Auch ansonsten funktioniert alles ordnungsgemäß. Das ist zwar kein 100%iger Beleg dafür, dass wirklich überall alles in Ordnung ist, aber es zeigt schon mal, dass ich etwas geändert habe, das in die richtige Richtung ging. Ich habe dafür gesorgt, dass meine Neuerungen nur angewandt werden, wenn wir uns in keinem flüssigen Milieu befinden.

Ich hab jetzt eigentlich nur noch ein kleines Problem die NSCs in der Höhle von Loch Modan zappeln wie Idioten herum. Also nur die besagten drei alle anderen verhalten sich besser als vorher. Vermutlich weil sie zu wenig Platz haben, die Stelle dort ist sehr eng... Hm. Ansonsten scheint alles richtig zu funktionieren.

Des WEiteren brechen die NSCs auch nicht mehr den Kampf ab, wenn sie eine neue Zelle betreten, warum sie das nicht mehr machen, weiß ich hingegen nicht, ich hab eigentlich nichts geändert. Aber gut, wenns funktioniert warum auch immer, beschwer ich mich nicht darüber.

Außerdem scheine ich den Fehler behoben zu haben, dass manchmal NSCs unsichtbare Treppen nach oben zu laufen scheinen. Das lag daran, weil irgendeiner im Quellcode 0.05 (aus Sicherheit zur z addiert hat), dabei ist das gar nicht notwendig, die NSCs bleiben an keinen Pixeln hängen.

Und zu guter Letzt rennt jetzt auch kein NSC mehr in ein unsichtbares Loch und ist außer Sicht.

Ich würde sagen die Fehlerbehebung war relativ erfolgreich und da ich für Wasser etc. nichts geändert habe und es dort im Prinzip funktioniert hat, dürfte das eine weitere Lösung sein, die sich sehen lassen kann.

Nachtrag: Das Problem mit den drei Idioten in der Höhle von Loch Modan ist auch gelöst. Sie greifen an und drehen sich jetzt nicht mehr wie verrückt dabei. Ich hab ehrlich gesagt keine Ahnung warum, aber ich habe ihnen einfach den Bounding radius und die combat reach der Trollmodelle in der Höhle gegeben die funktionieren und siehe da jetzt zappeln sie auch nicht mehr.

Ich würde sagen, ich lese gerade ein Buch über Grundlagen C. DAs ist alles, was ich über C bzw. C++ weiß. Und wie gesagt davon vergesse ich auch wieder 90%. Im Prinzip bin ich ein totaler Anfänger. Normalerweise kann ich das gar nicht lösen, na ja, aber ich bin halt ein Genie. Das ist so. Das muss man einfach mal akzeptieren.

Link to comment
Share on other sites

Kleiner Nachtrag: Es klappt leider nicht immer, aber das liegt daran, weil ich nicht konkrete Berechnungen durchführe, sondern "schätzen" lasse bzw. in bestimmten Margen die Berechnung von illegalen z-Werten verhindere. Andererseits vielleicht verstehe ich den Quellcode einfach nur nicht 100%ig richtig und könnte eigentlich alle Fehler beseitigen.

Link to comment
Share on other sites

  • 3 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use