PDA

View Full Version : Help with non-agro KOS mobs


noudess
01-25-2015, 06:39 PM
I recently came back to the fold and my server is now running the latest and greatest eqemu code.

It seems to be fine.

Ironically, I did this so I could use the new map files to help with water combat, and the issue I am seeing involves water.

For some reason, all the sharks in the water in erudin do not agro. They con KOS, and I can hit them just fine but they act like I don't exist. They did agro before I upgraded the maps and the code.

I logged onto trhe Akka test server (is that running the latest maps/code?) and they attack just fine.

I can even summon them out of the water and they still ignore me, but thats probably the underwater only thing.

Any ideas? I'm stumped but it's probably something dumb I missed.

Edit; I'm using the maps from the Akka repack because there's no 32 bit binary I can find of the azone latest and greatest and I don't have a dev environment on windows yet.

noudess
01-25-2015, 07:07 PM
Hmm. The map files are binary and I'm on 32 bit. That probably changes the storage sizes for values in the maps?

I guess I'll have to compile and build the map tools on linux. Do I use azone2 or the azone from the wiki or are they the same?

noudess
01-25-2015, 07:38 PM
Ok, built zone utilities on my linux box.

Edit: Got v0.1.3 to work and now my wtr and map files are loaded up. Testing..

Sigh no change. I can hit them but they act like nothing is happening.

noudess
01-26-2015, 09:29 AM
Tried the new code with the old maps. Same result. The old code (which was way out of date works, but I want to be current.

I'd also checked, and my maps folder is in lower case. I saw this used to cause this issue.

This post seems very similar to my issue. Some mobs aggro as they should - others are oblivious. So far its only the underwater mobs in erudnext that won't attack.

noudess
01-26-2015, 11:07 AM
Narrowed it down to it does not think I am in water.

if(IsNPC() && CastToNPC()->IsUnderwaterOnly() && zone->HasWaterMap()) {
if(!zone->watermap->InLiquid(other->GetPosition())) {

It passes all (3) intital tests, but it thinks I am not in water.

I don't see any problems loading the water map.

Am I making a mistake as far as some new setting I don't know about?

Rebooting the server with new or old maps, makes no difference.

noudess
01-26-2015, 11:27 AM
Getting closer. I must have the wrong utilities or a general misunderstanding.

I downloaded the zone-utilities from the wiki and built it. I ran that to generate map files.

These map and wtr files differ from the old ones I was using, but when I add debugging to where the files are getting loaded, I see that they're all being detected as v1. Is that accurate? I was expecting v2?

noudess
01-26-2015, 02:37 PM
Ok. I dug more and I see that in attack.cpp InLiquid is being called with (1) argument. The v1 map cpp file has no matching signature. I added a printf in water_map.cpp default IsLiquid() function and THAT was being called and always returning false. I added methods to the v1 water_map to call the v1 functions with the y,z,x coordinates and now the IsLiquid and other calls are making it into the v1 code. BSPReturnRegionType returns normal where the test if (current_node->right == 0) is called for nodes in the water with the shark. Older versions of water_map_v1.cpp with comments say this should never happen.

I took a look at water_map_v1.h and I see there is work being done along the same lines now. I see a change 3 days ago. I did a git fetch but that didn't pull that down yet. Can I assume that's because those commits didn't make it to the master yet (I'm a git newb and I fumble with it).

#bestz returns inwater0 and inlava 0 in that whole area.


I think my best bet is to get a v2 map - which as I said above, I have not been able to find or create using the tools or downloads I have found. They all report as being V1 when water_map.cpp opens and loads them.

demonstar55
01-26-2015, 02:41 PM
Git fetch doesn't merge the changes to your local branch, you will need to merge it (or do git pull which will do both)

noudess
01-26-2015, 03:28 PM
Yes, I thought I did a diff against the fetch but I messed that up. I just did the merge now and am testing the code that was submitted already.

But, I expect to see erudnext fail regardless... processing..

- My change mentioned above to add methods of IsWater, IsLiquid, etc to the water_map_v1.h file that matched the 1 argument zyz_location fixed something. Prior to the fix, #bestz never detected water in a v1 map. After the fix, other zones like erudsxwing detected the water with #bestz. Before the fix, zero water mobs attacked me - after the fix sharks in erudsxing do attack me, while mobs in erudnext ocean do not.

This leads me to think the erudnext water map is bad or incomplete.

posting results with up-to-date code shortly.

noudess
01-26-2015, 04:07 PM
Well, it works in both zones now. I guess if I read the KimLS fix from 3 days ago, there must be more to it than what I added to fix InLiquiud, etc.

I was only about 5 days off the master, so I didnt expect water changes. Next time I'll always do a merge before I do anything else.

I still would not mind a new version of all the maps (v2).