[C#] Nav.D3 menu

User Tag List

Thread: [C#] Nav.D3

Page 1 of 3 123 LastLast
Results 1 to 15 of 32
  1. #1
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [C#] Nav.D3



    This is release version!

    Features:
    - automatically extracts navigation data and dynamically builds navmesh
    - automatically creates exploration data
    - all updated and calculations are performed on separate threads, without blocking user's code execution
    - simple navigation (set Destination, update CurrentPos, then move toward GoToPosition)
    - simple exploration (create instance of exploration engine, update CurrentPos, then move toward GoToPosition, Destination will be automatically set by exploration engine)
    - automatic anti-stuck system (altering pathing when actor is potentially stuck on collision with geometry), no configuration required
    - supports ray casts and ray traces
    - supports both walking and flying
    - NavMeshViewer allows easy viewing/debugging (including live D3 navigation data viewing)

    How to get started:

    1. Compile release version of Enigma.D3
    2. Copy Enigma.D3.dll to Nav.D3 and NavMeshViewer main directories
    2. Compile NavMeshViewer
    3. Make sure working directory in NavMeshViewer is set to its project directory

    NavMeshViewer recognizes command line arguments as follow:

    NavMeshViewer.exe <nav_data_file>


    example: NavMeshViewer.exe nav_new_tristram.txt

    There is TestBot available as na example how library can be used.
    View can be changed like Google Maps (drag and scroll)


    Important:
    Remember to clear navmesh when switching locations because their nav data will likely overlap resulting in invalid navmesh
    Remember to call Dispose on navmesh instance when no longer needed to avoid threads hanging around.

    Source location:
    https://sourceforge.net/projects/nav
    Last edited by CrEEzz; 11-04-2015 at 11:53 AM.

    [C#] Nav.D3
  2. Thanks Inject, Smitten, nonolpr77, prrovoss (4 members gave Thanks to CrEEzz for this useful post)
  3. #2
    NoCopyPaste's Avatar Member
    Reputation
    1
    Join Date
    Apr 2014
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi Creezz,

    first of all thank you very much for sharing your work
    I tried to start the NavMeshViewer with your example command line, but evertime I do, I get an InvalidOperationException in Enigma.ProcessMemory
    this is my Callstack at this moment, do you have any ideas, how I could fix this?
    Code:
    >	Enigma.D3.dll!Enigma.ProcessMemory.ReadBytes(int address, byte[] buffer, int offset, int count) Line 117	C#
     	Enigma.D3.dll!Enigma.MemoryBase.ReadBytes(int address, int count) Line 76	C#
     	Enigma.D3.dll!Enigma.MemoryBase.Read<int>(int address) Line 40	C#
     	Enigma.D3.dll!Enigma.MemoryObject.Field<int>(int offset) Line 149	C#
     	Enigma.D3.dll!Enigma.D3.LocalData.x04_IsNotInGame.get() Line 17	C#
     	Nav.D3.dll!Nav.D3.Navigation.IsLocalActorValid() Line 186	C#
     	Nav.D3.dll!Nav.D3.Navigation.IsUpdating.get() Line 171	C#
     	NavMeshViewer.exe!NavMeshViewer.NavMeshViewer.refresh_timer_Tick(object sender, System.EventArgs e) Line 205	C#
     	[External Code]	
     	NavMeshViewer.exe!NavMeshViewer.Program.Main(string[] args) Line 19	C#
     	[External Code]

  4. #3
    azgul's Avatar Member
    Reputation
    8
    Join Date
    Jun 2012
    Posts
    107
    Thanks G/R
    3/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    e: nvm

    Oh and thanks.
    Last edited by azgul; 08-16-2014 at 08:52 AM.

  5. #4
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @NoCopyPaste Weird I cannot reproduce it, but try changing IsUpdating property to:

    Code:
    public bool IsUpdating
    {
        get { try { return IsLocalActorValid() && IsObjectManagerOnNewFrame(); } catch (SystemException) { } return false; }
    }

  6. #5
    azgul's Avatar Member
    Reputation
    8
    Join Date
    Jun 2012
    Posts
    107
    Thanks G/R
    3/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I find that the exploration part is a bit too thorough. Like sometimes it goes back to where it was and sometimes it makes some somewhat bad decisions. How do I go about making it explore a bit more 'loosely'? (example: http://youtu.be/fDe_Na1LjlQ)

    Btw kudos for making this! Pretty damn badass and quite easy to use.
    Last edited by azgul; 08-20-2014 at 12:48 PM.

  7. #6
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thx mate. I will make an update soon as I fixed revisiting and improved pathing. About moar 'loose' exploration try increasing EXPLORE_CELL_SIZE in Navmesh.

  8. #7
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Update

    Package updated. Fixes in exploration. Improved pathing. Very small nav cells are excluded from processing.

  9. #8
    azgul's Avatar Member
    Reputation
    8
    Join Date
    Jun 2012
    Posts
    107
    Thanks G/R
    3/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Forgot to respond. I tried it again a couple of days and got a rift with a big open area. It literally zig-zagged from one end to the other, but it pretty much backtracked the entire way. In other words, it made some weird decisions where it would backtrack for a very long distance instead of just trying to path to closer cells. Want another video? :P

  10. #9
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You are right, exploration pathing need some adjustments. Will work on that Thx

  11. #10
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Update rev. 231

    Release notes:
    - More configurable pathing
    - Fixes in pathing when start/end is not on nav mesh
    - Added 'Nearest' exploration engine (still need some tweaks to behave better on specific indoor maps)
    - Added serialization (user has tool to save/restore navmesh and exploration state when exploring sub-dungeons)
    - Refactoring

    Enigma.D3 will be updated as soon as it supports 2.1.0 patch.
    Last edited by CrEEzz; 10-14-2014 at 12:22 AM.

  12. #11
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just to let you know. Master version is coming soon. I've performed major refactoring, fixed gazilion little bugs in special cases and added automatic anti-stuck features. Now I perform tests on real bot. Update should be ready in couple of days (depends on tests results - however so far it can run through 90/100 rifts).

  13. #12
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Update rev. 319

    This is release version.

    Release notes:
    - Navigation moved to separate class (NavigationEngine) available through Navmesh.Navigator
    - Nav.D3 now derives from Navmesh
    - Added automatic anti stuck system using up to 4 methods to get out of stuck situations (this feature must be enabled through Navigator.EnableAntiStuck then when you know that bot shoud not move call Navigator.IsStanding to reset stuck detection counters)
    - Added back trace (moving through historical destinations) mostly for getting out of danger (this feature can be turned on/off by Navigator.BackTraceEnabled)
    - Destinations have priorities now. Starting from most important: User (set through Navigator.Destination) -> BackTrace -> Custom (set through Navigator.SetCustomDestination) -> Grid (set when cell is available with one of supplied ID from Navigator.DestinationGridsId) -> Waypoint (set when Waypoints has been supplied by Navigator.Waypoints)-> Explore (set by exploration engine). Multiple sources can set various destinations but navigation is performed towards the most important one.
    - Path is not recalculated periodically. Auto recalculate interval can be set via Navigator.UpdatePathInterval (in miliseconds)
    - Path is more smooth
    - Many bugfixes and major refactoring
    - Nav.D3 supports patch 2.1.1

    Grid id is Scene SNO id (unique for specific map tiles). Usually easiest way to determine where bot should go when looking for particular quest/bounty objective.
    Last edited by CrEEzz; 09-26-2014 at 01:31 AM.

  14. #13
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Update rev. 412

    Release notes:
    - Added ray cast and ray trace functionality
    - Cells with fly flag are now included in navmesh
    - Movement type can be specified in Navigator (this is used to determine which cells are viable when pathing/exploring). Walk is default.
    - Small cells are no longer skipped as it lead to pathing failures
    - BackTrace destination type is now most important (more important than User)
    - Bug fixes

    Clear sno_cache directory as binary format has been modified to support cell flags!

    Ray casts with walk and flyable cells allow pretty accurate visibility checks (i.e. to skip monsters/objects behind walls). Due to nature of D3 navmesh its best to perform 2D checks as it verifies if whole ray is inside navmesh.

    Compiled version has been added and is available under shared folder along with sources.

    PS. Let me know in if You are using my lib, any feedback is much welcome
    Last edited by CrEEzz; 10-14-2014 at 06:47 AM.

  15. #14
    CrEEzz's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2014
    Posts
    153
    Thanks G/R
    10/40
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Update rev. 448

    Release notes:
    - Ray casts/trace, exploration and navigation now properly supports fly cells
    - Introduced NavigationListener interface, all inheriting classes can be registered in Navigator to be notified when destination was reached
    - Added one more layer to anti-stuck system. Destination reach will fail after certain amount of time. All NavigationListeners will be notified about destination reach fail including explorator which will mark destination explore cell as visited and choose next one
    - Fixed crash in release version of library (hint: remember not to compare floats using == operator, use Equals instead )
    - Improved NavMeshViewer. Added key binding legend. Added option for auto-clear when area was changed when fetching data from D3 (useful when doing bounties/rifting)
    - Optimized navmesh generation
    - More informative logs in verbose mode

    This version is feature complete. Let me know if You have any feature requests. As always any feedback is welcome.
    Last edited by CrEEzz; 10-28-2014 at 02:35 AM.

  16. #15
    tgo's Avatar Member
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    15
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Any updates for the latest version of D3??

Page 1 of 3 123 LastLast

Similar Threads

  1. Replies: 1
    Last Post: 12-12-2011, 02:31 AM
  2. CSS/HTML B.net Nav Bar
    By CimSlunt in forum Programming
    Replies: 1
    Last Post: 08-26-2010, 06:24 AM
  3. Sat nav/GPS?
    By vanderlyle in forum Community Chat
    Replies: 1
    Last Post: 08-15-2010, 11:59 AM
  4. [Nav Bar] Cata nav bar
    By phat in forum Art & Graphic Design
    Replies: 7
    Last Post: 08-06-2010, 01:06 PM
  5. What nav do you use?
    By mrlolguy in forum WoW Memory Editing
    Replies: 22
    Last Post: 08-02-2010, 05:23 AM
All times are GMT -5. The time now is 03:21 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search