Jump to content

MMaps Redux


Guest auntieMangos

Recommended Posts

faramir118; can the charge stun handling be like;

disable stun (return proc) in UnitAuraProcHandler

and add stun cast in

if (i_destinationHolder.HasArrived())

{

if(owner->GetDistance3d(m_target < 6)) // Stun should be added- only if warrior charges and target is still within melee distance (wont be applied if mage blinks while warrior charges)

// Cast stun ?

}

Link to comment
Share on other sites

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

ChargeMovementGenerator todo:

  • need to review return values in Update function (I think they're backwards)
  • should probably pass the original charge spell to the movement generator, then let the finalize function handle special behavior
    and yes, behavior can be dependant on actual distance to target at the end of charge
  • Unsure of the best place/way to stop spell effects from being processed
Link to comment
Share on other sites

I know I'm bringing the subject back from the abyss, but do you think this amazing project will be ported to mangos-one one day ? We'd really need something like that too ;) And congratulation for the fabulous work, in any case!

vmaps v3 need to be ported first. Finding accurate documentation of old file and struct layouts is a challenge.

If it would get us more testers, I guess I can start poking around in old MPQs for mangos zero/one.

I'm sure it would bring more testers. I think a dev of the oregon core (I forgot his name hope he'll excuse me) already converted the vmaps v3 to be compatible with formerly mangos-0.12. I don't have any more info about that, but if it can help... I'd be willing to help but this side of mangos is not really known to me! Thank you to consider the question in any case.

Link to comment
Share on other sites

I'm going to try to cherry pick commits from master into mangos-one.

I finished getting a 2.4.3 client, but I don't have the expansion to go with it.

After a lot of git-blame, I think there's about 29 commits from master that need to be cherry-picked into one. This is of course for a full port of vmap v3. mmaps would only require maybe 10 of those, but I feel bad only going part way.

Bad news is I will be on vacation next week with no Internet access.

Link to comment
Share on other sites

Damn you're fast ! congratulation once again!

First : enjoy your vacations ;) Then, thanks again for looking into it. If you need data from a 2.4.3 TBC client no problem. Being a git noob I don't really know what cherry-pick is and how to do it, I'll find out. I mean I suppose it's about applying parts of commit to another branch but should it be done manually or does git handle it? I'll try to learn more about that, maybe I'll be more helpful after that.

Edit: Okay I got the cherry-picking thing. Useful stuff ! ^_^ If you need any help for this, let us know. I'll try my best with my modest knowledge.

Link to comment
Share on other sites

git-cherry-pick is very useful for pulling individual commits from any repository into your own, but it's not always perfect - like any git operation that deals with other branches or repositores, merge conflicts happen.

For backporting to zero/one, it's worse because 1) a large portion of the code base is different in each repository and 2) some things have to be left unchanged to preserve client compatibility.

Link to comment
Share on other sites

patch file plz :D last rev.

Why don't you try reading the first post?

This is a development-oriented thread, not a how-to. If all you want is to try it out, and the directions below aren't working for you, please don't make 'how do I make it work?' posts.

He gives instructions. Read them, use Google.

Link to comment
Share on other sites

faramir118, first I hope you had great vacations ;) Then, when you'll have the time, could you point me to the commits of your repo I should cherry-pick in order to test your great mmaps project on mangos-one ? Now than mangos-one have vmap3, I'd really like to give it a try !

Link to comment
Share on other sites

faramir118, first I hope you had great vacations ;) Then, when you'll have the time, could you point me to the commits of your repo I should cherry-pick in order to test your great mmaps project on mangos-one ? Now than mangos-one have vmap3, I'd really like to give it a try !

It would probably be easier just to git diff the entire branch against mangos master and use that.

I did this and applied it to mangos zero, but I couldn't get it working without crashes.

Link to comment
Share on other sites

Patman128> Yeah I did that and manage to compile the core and everything, but when using the MoveMapGen to build mmaps, the app crashes right after "Loading heightmap...", I can't figure out why yet. Maybe the 2.4.3 maps have less datas and cause some memsets to crash, I don't know, that's kind of out of my knowledge.

As far as I know after looking and searching through the code, it's this line in TerrainBuilder.cpp that crashes the app

            // hole data
           memset(holes, 0, fheader.holesSize);

After looking at the GridMapFileHeader structure in mangos-one, this structure don't have the uint32 holesOffset and uint32 holesSize fields. So I guess that will be a problem. I don't know if the mmaps system can working if we simply ignore the holes...

Link to comment
Share on other sites

Thanks for these precisions faramir118. I tried a simple porting of mmaps, compiled fine, generating mmaps without holes, looks like it worked, but in game, some mobs on normal waypoint moves are juste making mangos to freeze big time, and in everyother way, when mobs are pulled from distance, then just disappear until they reach the player.

After looking a bit into the code from master, I see why you were saying that Ambal's project would be a good thing to backport !

Good luck fixing all (cause I don't think I will be able to ^^') that and most of all conciliating it with you real-life work, I'll be available for test or anything, if I can help I will.

Link to comment
Share on other sites

I finally crawl from under the rock I was stuck for a while and had the time to play around with things.

What came out of it, was the ability of create off mesh connection. In other words, the ability to patch

mmaps generated by the extractor.

Pushed in to the repo today.

Why? That's the simple: we cannot cover all possible cases in generic code, therefore, we have to have mechanism to allow exceptions.

How? Simply by providing input text file to the generator. You can see the example under offmesh_example.txt.

Some more info can be found in readme.

Basically you provide map, grid, start and finish locations and it will create link between those points.

The pro's : Things like this (for those who remember) http://oi53.tinypic.com/2qipzeu.jpg are history.

The con's : It have to be done manually (no shit), and it will work only on same tile (aka: you cannot link locations on different tiles - not a biggie, but still worth mentioning).

The format must be exact! The "parser" is pretty weak, so if you don't follow the exact input format, it wont work. So, don't forget things like spaces, etc.

In offmesh_example.txt I gave the example of booty bay dock, feel free posting here your entries! Please include screenshots if possible.

It needs some testing, since I didn't had too much time testing it :)

Cheers people.

PS: been checking some posts here, I "missed":

1. faramir118: cheers for backporting.

2. about charge: I think the only thing that's missing at the moment is the delayed stun - beside that we have it working exactly as buggy as on retail (talking about charging from one side of the map to another).

Link to comment
Share on other sites

I'd like to tryout this project finally, only 2 questions first.

1) Are the instructions in Post #1 still relevant to install (ie: just do a git checkout.. no other patches or anything not mentioned)

2) Is there a trusted repository or source that has binaries of the extractor (no i'm not lazy, just never had much luck compiling anything using MS visual/studio/express whatever software)

Edit: going to attempt to compile it myself anyways, but just wanted to ask in case i can avoid the headache

Edit Again: Ignore both questions, i was able to download the source and compile the windows binaries just fine. however when running MoveMapGen.exe alot of maps say that they are the wrong version and to extract new .map files, I just extracted the maps using the extractor source that was in the repository. Is this normal behavior? should I have used the precompiled extractor?

thanks for the help, this looks like a very interesting project and i would like to test it out and provide some feedback about it

Yet Another Edit: Just ignore this post altogether, after compiling the extractor i copied ad.exe to the install directory, didn't realized the compiler saved it as ad_debug.exe.. deleted ad.exe and copied ad_debug.exe over, all is working now

Link to comment
Share on other sites

It's still relevant, but only this part is the fix for our issue:

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 38b78c1..7c043b0 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -321,7 +321,7 @@ void Unit::Update( uint32 update_diff, uint32 p_time )
        getThreatManager().UpdateForClient(update_diff);

    // update combat timer only for players and pets
-    if (isInCombat() && (GetTypeId() == TYPEID_PLAYER || ((Creature*)this)->IsPet() || ((Creature*)this)->isCharmed()))
+    if (isInCombat() && GetCharmerOrOwnerPlayerOrPlayerItself())
    {
        // Check UNIT_STAT_MELEE_ATTACKING or UNIT_STAT_CHASE (without UNIT_STAT_FOLLOW in this case) so pets can reach far away
        // targets without stopping half way there and running off.

Link to comment
Share on other sites

I've done some testing, just me and a friend on an i7 server with 8GB ram. We were most of our time in Alliance capitals and different places in Northend. Server was using a bit more cpu and ram, but nothing extra ordinary, guess with only two there is nothing really interesting to tell.

Just as question would it be possible to have NPCs using mmaps on their default movement? On ytdb there is a certain Ironforge guard moving right through the great forge, if it was using mmaps it should not move through lava and fly across the air.

Other than that, these special places (like in bootybay) where movement is blocked by "strange" environment can be fix after adding the mmaps patch to the core. They are spotted by coincidence.

Now again playing around with playerbot and ahbot.

Regards

Skirnir

Link to comment
Share on other sites

Just as question would it be possible to have NPCs using mmaps on their default movement? On ytdb there is a certain Ironforge guard moving right through the great forge, if it was using mmaps it should not move through lava and fly across the air.

Other than that, these special places (like in bootybay) where movement is blocked by "strange" environment can be fix after adding the mmaps patch to the core. They are spotted by coincidence.

I second this, olso, if any npc is blocked due to any path problem we just need to correct some waypoint on DB.

My test on little server ( <10 player) give me impression that all mob have a real reaction (better than blizz?). So it's time to think about moving this to underreview...

Thank you qsa and faramir118. You are my exemple :)

Link to comment
Share on other sites

Guest
This topic is now 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