Forum > Level Design

[QUESTION] Ingame error: npcs falling to ground from WMOs

<< < (4/7) > >>

Magnus:
This issue sounds exactly what I discovered now. Somebody found any solution ?

My case:
I copied in Noggit the dock from Ratchet (ratchet_dock.wmo) to another place I wanted to have a new harbor.
I use TC and recreated all maps, mmaps, vmaps for the server.

Than I spawned some NPCs on the dock. They stay, that's not the problem. But they don't move.
- If the NPC has random waypoints, he just stays on it's spawn point. Didn't try to move.
- If I make individual waypoints (a way to harbor and back to the dock) the NPC is walking but if he comes over water (means water is under the dock) he is falling through the dock into the water and continues to walk back to harbor ^^.

First I thought that's maybe a normal behaviour either of client or server. But than I spawned the same NPCs on Ratchet on the same dock. And there everything is working fine.

So I guess if have to set somewhere in the ADT a flag or something like that to make the WMO marked as solid.

Any ideas ?

Amaroth:
Server side maps, vmaps and mmaps need to be updated. You have changed map on client side, fine, but don't expect that server will somehow change it on its own on its side too :D.

Magnus:
?

I wrote:

I use TC and recreated all maps, mmaps, vmaps for the server.

Amaroth:
Than you haven't updated (re-generated) them properly. Wth was that topic about thet... I can't find it, nvm.

I have noticed that when having part of map in 1st MPQ and part/newer version of map in 2nd MPQ leads to having data extracted only from 1st MPQ and data from 2nd one is simply skipped during generation. So, if you are extracting map data from map files which are being split across more MPQs, and thats just case anytime you modify blizzlike map, it can help a lot to put all data into just one MPQ. Friend of mine once told me that modifying blizzlike MPQs can corrupt them, I have personaly never tested it, but I keep a whole non-used client just for extracting purpouses, to make sure that all map files are together and are extracted properly.

#TC extractors.

Magnus:
Well, I was working quite a lot with TC map extractors and have added some loging functionality and the ability to limit the creation process to only a specific map etc. At that time I just was curios what's going on inside and it was quite interesting. I learned a lot about adts.

Therefore I'm quite sure that all patches are read in the way they should.

Additionally I can see ingame that the new maps are working. Because I also changed some ground terrain. And on the ground players and NPCs walking fine. With wrong (old) maps they sometimes fly over or walk beyond the map.

If I understand you right you tell that if data (map) in a higher patch has newer timedate the TC extractors may extract only this one from the older patch with lower number. Did I understand you right ?

But that would be a heavy bug in the extractor because that's the basic of MPQ patches.

But let's make another brainstorm:

Is it a serverside issue or is it a clientside issue ?

Personally I think it's a clientside issue (if it is, we don't need to think about map extractors longer).

Why I'm thinking so:

When I add manual waypoints to a NPC they are saved in the database. I can also visual check them by a GM command. The waypoints are correct. So I guess the core is nothing else doing than sending these waypoint coordinates to the client. With other words: The core is sending correct coordinates to the client. Regardless on any maps.
So the client receives the coodinates of the NPC and is trying its best to move the NPC over terrain and objects like dock wmo. At this point the server core is out of the game. It's the client who handles the movement of the NPC. Therefore if there is a bug, the bug should be in the adt.

This is my understanding what's happening. Would like to hear your opinions.

EDIT:
And btw, the map extractor of TC was able to read only till patch-5. At least in Jan 2015. Don't know if they fixed it ever. If not I made this:

--- Code: ---diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp
index a573f9f..7d90f36 100644
--- a/src/tools/map_extractor/System.cpp
+++ b/src/tools/map_extractor/System.cpp
@@ -100,6 +100,15 @@ const char *CONF_mpq_list[]={
     "patch-3.MPQ",
     "patch-4.MPQ",
     "patch-5.MPQ",
+    "patch-6.MPQ",
+    "patch-7.MPQ",
+    "patch-8.MPQ",
+    "patch-9.MPQ",
+    "patch-a.MPQ",
+    "patch-b.MPQ",
+    "patch-c.MPQ",
+    "patch-d.MPQ",
+    "patch-e.MPQ",
 };
 
 static const char* const langs[] = {"enGB", "enUS", "deDE", "esES", "frFR", "koKR", "zhCN", "zhTW", "enCN", "enTW", "esMX", "ruRU" };
--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version