Jump to content

[s0767][mangos-one] vmaps v3 backport


Guest faramir118

Recommended Posts

Alright there are client checks for ws flagroom but the server does not realize that its indoor (partly wrong mopgFlag check maybe?)

mogpFlags (uint32)

1. WS Flagroom: 2569 (detected as outdoor) - INCORRECT

2. AV Cave Entrance: 2057 (detected as outdoor) - probably CORRECT (see edit)

3. In BG room in Orgrimmar, WS Hut with powerups, AV Cave): 10245 (detected as indoor) - CORRECT

4. WS underground tunnel: 10757 (detected as indoor) - CORRECT

5. Everywhere in Orgrimmar except in building: 47681 (detected as outdoor) - CORRECT

Moderator: no WOW images on this forum!

EDIT: The issue seen on the second pic is that players can mount before the game starts. I guess it could also work if we move the door a few yards back - I think thats even the blizzlike solution. Though 1. is definately an issue

Link to comment
Share on other sites

After many many tests I can verify that the correct mogp check flag is as follows

return mogpFlags & 0x8000;

It fixes all indoor/outdoor issues. They were actually even more issues than I had noticed at first (like the towers in AV). Also it seems like I was right about the indoor check at the entrance of the starting cave in AV ;)

Link to comment
Share on other sites

I not agree, some points have only 0x80 set that expected as outdoor as i remember.

Ofc, i can recheck with this mask for find specific examples.

Please do so and post any locations you find that are not correctly detected. I really tested a lot of them and could not find a single one ;)

PS: Commit could look like this http://code.google.com/p/oregoncore/source/detail?r=5ca3d7ee9558622c713ab541fbd592bee06c29c8 (also dont load atEntry and wmoEntry in Map::IsOutdoors)

EDIT: Another thing I noted is that the first part (Player.cpp) of https://github.com/mangos/mangos/commit/c29e8a38fbea7ee06ac32fd584ba71f848bb941a is not yet backported to mangos-one making the second part (Spell.cpp) pretty useless

Link to comment
Share on other sites

Alright today I looked into the issues with lava. Here is the thing I found out.

Liquids extracted in the map files (from ADT data) are detected correctly. Those liquids only being outdoor and they are also not located within an instance.

Effected areas for slime/lava liquids from ADT: Shadowmoon Valley, Un'Goro crater and outside of blackrock.

Liquids extracted in the vmap files (from WMO data) are detected but being interpreted wrong. Water works but lava/slime will be also detected as water.

Effected areas for slime/lava: Inside blackrock, Molten Core and Naxxramas

Gonna look into this some more.

Btw vmap indoor/outdoor fix ( http://code.google.com/p/oregoncore/source/detail?r=5ca3d7ee9558622c713ab541fbd592bee06c29c8 ) has been tested for a week by 300 players+ and no issues were reported so far.

Link to comment
Share on other sites

  • 1 month later...

Alright its true that it does not work in that place. But reverting my change breaks some areas which should be indoor - especially noticeable in bg (you can mount in the towers in av or the flagroom of ws).

After some tests it seems that checking for 0x8 should only be done in outland? (flyable zones).

Reason for this could be that 0x8 marks places which are physically outdoor. That means you can see the sky in those places. In outland (flyable zone) you can use your mount everywhere where you can see the sky. In azeroth however that is not the always the case.

Mns did you find any problematic places somewhere except outland? Thanks

EDIT: Better reasoning :)

Link to comment
Share on other sites

Mns did you find any problematic places somewhere except outland? Thanks

No

Important problem in my server was falling flyer players in Outland .

maybe client not send only indoor or outdoor opcode and core ought not check only outdoor check for all mounting.

Link to comment
Share on other sites

especially noticeable in bg (you can mount in the towers in av or the flagroom of ws).

Just lol, THIS is case not prove. Just look in this point up and you will see sky. this is OUTDOOR, in different gates paths.

So please not refer to this case.

Well but it was like that on retail 2.4.3 (played lots of bgs there).

If you want some video proofs:

EDIT: same for alliance: http://www.youtube.com/watch?v=KZOU0AqK3pc

@ the beginning shows that all players are running just a bit further than the ramp to mount up because they could not mount up on it.

with flag 0x8008 you can mount there because it has mogpFlag 2057 (100000001001) ... funnily its the same flag as the problem mns pointed out which leads me to the outland 0x8 approach

currently it works like that (which is wrong): http://i54.tinypic.com/263c2kp.jpg

this leads to problem that players can already mount before the bg started. Its the same for warsong flagroom with check 0x8008 you can already mount in the flagroom before the game started which was not like that on retail.

trying to find more examples

Link to comment
Share on other sites

Mns, could you please try the following patches:

#1 (less strict but not sure if 0x800 check is correct): https://gist.github.com/898058

#2 (more strict): https://gist.github.com/898059

Further locations where we should be indoor but are outdoor:

alterac valley:

.go xyz -768 -359 69

.go xyz -158 -458 40.4

eye of the storm:

.go xyz 2050 1377 1195

and similar places

Link to comment
Share on other sites

×
×
  • 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