|
-
Adventurer
[bug] NPCs do not react to the hero in certain places in the world.
Hi,
If you place NPCs or monsters in certain places in the world, then they do not respond to the character. Also, NPCs do not use Interaction Points if they exist in this place.
For example, a beach near Ardea looks like a Black Hole for all non-player characters and monsters.
How to fix this?
See screenshot:
[Bild: KVhCVKk][Bild: screen.png]
-
Do NavZones exist in this area? You can check it in Marvin mode by hitting Ctrl + N.
-
Adventurer
Zitat von Askanius
Do NavZones exist in this area? You can check it in Marvin mode by hitting Ctrl + N.
No, they do not exist. But I checked this case - I added them, but it did not help.
Screenshots:
https://ibb.co/wYBw39Y
https://ibb.co/VMpkfKB
-
Yeah, but I can tell from your g3dit shot thay you didn't do it the right way. You added them in the .node but that's not enough. There are more steps you need to do.
I can't give you a detailed tutorial with screenshots atm, as I'm on holidays. Maybe someone else will do that.
One thing you definitely need to do at first before anything else - before you even can continue modding: Extract the whole projects_compiled.pak with all subfolders and all files. This will give you lots of lrentdats, nodes, and also a file called NavigationMap.xnav
Next step: start g3dit and in the settings of the program give it the right path to your folder with the extracted 1.75 projects_compiled if you haven't set it up correctly already.
Then hit Update NavZone Cache and Entity Cache in the lower right corner. Entity Cache will then have sth. like 180000 to 200000 entries or sth. in this range. NZ Cache will also have several thousand entries.
If this worked we can continue fixing your problem.
-
Adventurer
Zitat von Askanius
Then hit Update NavZone Cache and Entity Cache in the lower right corner. Entity Cache will then have sth. like 180000 to 200000 entries or sth. in this range. NZ Cache will also have several thousand entries.
If this worked we can continue fixing your problem.
Hi, I updated NavZone Cache and Entity Cache. What should I do next?
-
It will be best to wait a little more. Sorry to give you that answer.
The version of g3dit that is publicly available (1.7 beta 27) is more than 3 years old and outdated.
It contains several severe bugs, especially when it comes to NavMap editing and adding new zones. In fact, George has been working on a new version for a few weeks now that will fix a huge problem with the navigation.
But I must still give you a very important general advice:
To keep it simple: There is a big limitation within the G3 engine. It can handle only a certain amount of navigation zones. This limit is nearly reached with Gothic 3 CP 1.75. When you exceed the limit by adding new NavZones, NavPaths and so on, the navigation of NPCs in the whole game world will stop working and the game will crash and give you a Guru exception.
Depending on what you want to do and what to add, you will exceed the limit very fast. So be careful what you do!
German explanation, maybe Google will help you to understand a little bit:
Zitat von George Sa 30. Mai 2015, 21:13
Hab dich
Ja ihr habt richtig gehört, ich habe den Bug gefunden und ihn auch beseitigen können.
Der Fehler war nicht im NavigationMap Code, sondern auf viel abstrakterer Ebene.
Es ist eine eigentlich ganz triviale Sache, es wurde an der falschen Stelle gespart, und zwar bei der Verweis-Zählvariable der Stringklasse. Diese wird intern zur Resourcenverwaltung verwendet, d.h. wenn ein neue Instanz dieses Strings erstellt wird, wird sie um eins erhöht, wenn eine Instanz zerstört wird, wird sie um eins erniedrigt. Wenn sie auf 0 fällt, wird der Basisstring freigegeben, und der von ihm belegte Speicher kann nun wieder für andere Sachen verwendet werden.
Sie ist vom Typ unsigned short, welcher Zahlen im Bereich von 0 bis 65535 speichern kann.
Beim Einlesen der NavigationMap wurden soviele Strings mit dem Inhalt gCNavZone_PS erstellt, dass der Verweiszähler den Maximalwert seines Wertebereichs überschritten hat. D.h. wenn der Verweiszähler auf 65535 steht und um eins erhöht wird, steht er anschließend wieder auf 0.
Nach dem Einlesen wurde einige der gCNavZone_PS String Instanzen wieder zerstört, aber nicht alle. Aufgrund des Bereichsüberlaufs, erreichte der Zähler trotzdem den Wert 0, was dafür sorgte, dass der Basisstring freigegeben wurde.
Instanzen eines Strings sind auf den Basisstring angewiesen, und funktionieren ohne diesen nicht richtig. Ich denke ihr könnt euch vorstellen, dass es nicht gut für die Stabilität des Systems ist, wenn die Instanzen eines Strings auf ihren Basisstring zugreifen, aber die Stelle im Speicher, an der er sich befinden sollte, inzwischen für etwas ganz anderes verwendet wird.
In diesem Fall sorgte es dafür, dass der NavigationMap Code nicht mehr korrekt auf die NavZonen zugreifen konnte, und infolge dessen einen Guru verursachte.
Nun zur Lösung des Problems...
Naheliegend ist es den Typ des Verweiszählers auf unsigned int (Wertebereich von 0 bis 4294967295) zu ändern.
Problem ist nur, dass der Verweiszähler an vielen Stellen im Code manipuliert/abgefragt wird, das zu ändern ist ein Riesenaufwand.
Da ich keine andere Möglichkeit gesehen habe, habe ich mich trotzdem dran gemacht, und war dann letztendlich auch erfolgreich...
An der falschen Stelle gespart!
-
Adventurer
Zitat von Askanius
It will be best to wait a little more.
To keep it simple: There is a big limitation within the G3 engine. It can handle only a certain amount of navigation zones. This limit is nearly reached with Gothic 3 CP 1.75. When you exceed the limit by adding new NavZones, NavPaths and so on, the navigation of NPCs in the whole game world will stop working and the game will crash and give you a Guru exception.
Well I'll wait. I want to add only a few new navZones to the game.
I hope the new version of g3edit will be soon.
Thanks.
-
Zitat von yukoz
Well I'll wait. I want to add only a few new navZones to the game.
I hope the new version of g3edit will be soon.
Thanks.
It won't be long until you can use it I hope. We're testing it at the moment and George is fixing bugs.
-
Okay, here's a quick&dirty description how to make a new NavZone with g3dit 1.9.4 (and above, hopefully). If you need more advice, feel free to ask.
1) Update NavCache and EntityCache like I described at Post #4.
2) Clone a NavZone. Give it an unique name, so you can identify it.
3) Go to the AIZone tab. Set the correct ZoneType (Outdoor/Indoor), an Owner if you need one (should be the GUID of an Enclave, e.g. Montera, Cape Dun ... but if you only make a new zone out in the wilds you obviously don't need it) and SecurityLevel (None for the wilds, Public if the zone should be assigned to an owner enclave, Enclave means that you need >75 reputation in the enclave to not be thrown out, Political is the same but with reputation of Orcs, Rebels, Assassins and so on)
4) Go to the NavZone-Tab.
5) Tick "Absolute Koordinaten" to use the world coordinates to determine the positions of the edges of your new NavZone. Tick ZoneIsCCW if you are listing your sticks counterclockwise, otherwise ignore it.
6) Hit "Errechne NavZones aus Sticks".
7) Next you will need a NavPath to connect your new zone with an existing one to make sure, NPCs can walk from the one zone into another.
8) Clone a NavPath. Give it an unique name, so you can identify it.
9) Paths usually have two sticks, but can have more. But let's stick with 2. The first one should be in the existing zone, the second one in your new one. The process is more or less the same as with NavZones.
10) Hit "Errechne NavPath".
11) Save
12) Go to NavMap -> NavMap synchronisieren. Wait until g3dit updated the cache.
13) At the NavZone tab, hit "Execute Scan". A Warning for your Zone will pop up saying "Not in Navmap". Hit "Fix" (the wand icon).
14) Click "Next (NegZones)". You didn't add one, so click "Next (NavPaths)".
15) At the NavPath tab, hit "Execute Scan". A Warning for your Path will pop up saying "Not in Navmap". Hit "Fix" (the wand icon).
16) Close the window with [X].
17) When you close g3dit, a warning will pop up, asking "Änderngen an NavMap vor dem Beenden speichern?" (Save changes in NavMap before exiting the program?) Klick "Ja" (Yes).
Now you're finished. Paste your NavMap an the node with your new NavZone in the Data folder and start a new game. See, if everything works fine.
-
Zitat von Askanius
Tick ZoneIsCCW if you are listing your sticks counterclockwise, otherwise ignore it.
You don't have to bother with the ZoneIsCCW checkbox.
When hitting the "Errechne NavZones aus Sticks" the clockwiseness is calculated automatically, and the ZoneIsCCW set accordingly.
-
Adventurer
Zitat von Askanius
Now you're finished. Paste your NavMap an the node with your new NavZone in the Data folder and start a new game. See, if everything works fine.
Thank you! Everything is working perfectly.
-
Zitat von George
You don't have to bother with the ZoneIsCCW checkbox.
Yeah, you're right. To be honest I just wanted to use the phrase counterclockwise once in a lifetime.
Geändert von Askanius (15.01.2020 um 18:20 Uhr)
-
Adventurer
Zitat von Askanius
If you need more advice, feel free to ask.
How to exclude some regions from navZone?
I added a fence to the game, but NPCs go through it. How to exclude this fence from the navZone?
-
Zitat von yukoz
How to exclude some regions from navZone?
I added a fence to the game, but NPCs go through it. How to exclude this fence from the navZone?
For most small items NegCircles must be created.
Select your fence and switch to "N" NegCircle view (at the bottom).
Click Button "NegCircles erstellen" and then use menu "NavMap -> Speichern" to save added NegCircles.
If you moved an object with a NegCircle press button "NegCircles entfernen" and add a neg circle again for new position by pressing button "NegCircles erstellen".
[Bild: attachment.php?s=b8df91277fc50b808c6838d10980d2c2&attachmentid=48784&d=1579343734&thumb=1]
-
Adventurer
Zitat von MadFaTal
For most small items NegCircles must be created.
Select your fence and switch to "N" NegCircle view (at the bottom).
Click Button "NegCircles erstellen" and then use menu "NavMap -> Speichern" to save added NegCircles.
If you moved an object with a NegCircle press button "NegCircles entfernen" and add a neg circle again for new position by pressing button "NegCircles erstellen".
When I did It I get an error. Maybe it because I added a new object (with a new mesh) into a game.
Code:
Building_WoodWall: 24188/6939/39293//Keinen NegCircle-Prototypen für diese Entity gefunden.
[Bild: attachment.php?s=b8df91277fc50b808c6838d10980d2c2&attachmentid=48785&d=1579346480&thumb=1]
-
Zitat von yukoz
When I did It I get an error. Maybe it because I added a new object (with a new mesh) into a game.
That's correct. Can you show a screenshot of your object? Probably working with NegZones is the better solution.
-
Adventurer
Zitat von Askanius
That's correct. Can you show a screenshot of your object? Probably working with NegZones is the better solution.
[Bild: attachment.php?s=b8df91277fc50b808c6838d10980d2c2&attachmentid=48786&d=1579355239&thumb=1]
-
Well, that's literally not a fence as I understood it. It's more like a wall with a gate. In that case I rather would not fiddle around with NegZones, but just cut the huge NavZone, where this is in into 2 separate ones. Connect them with a NavPath through the gate.
That's how I would do it.
-
Adventurer
Zitat von Askanius
Well, that's literally not a fence as I understood it. It's more like a wall with a gate. In that case I rather would not fiddle around with NegZones, but just cut the huge NavZone, where this is in into 2 separate ones. Connect them with a NavPath through the gate.
That's how I would do it.
I split the huge NavZone into 2 separate ones and added a NavPath through the gate. Thank you.
-
Adventurer
If the opportunity to add a lightmap for new objects? I added a door to the house but this door is too dark at night.
[Bild: attachment.php?s=b8df91277fc50b808c6838d10980d2c2&attachmentid=48800&d=1579598148&thumb=1]
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|