Login
Create
Developful

Node Creator

Node Creator

Create a pathmap to implement into your PvE modes.


Features:

  • A* pathfinding: The pathfinding block uses A* to calculate path.
  • Simple imports: Import your own maps, or from your favorite games, by putting in the node positions and connections in a "Global INIT" rule.
  • Directional connections: Make a directional connection between two nodes, mostly used for places where you can jump from, but not back to.
  • Separate map baking module: Bakes the map for much faster and light serverload use. Instructions are in the "How to use pathfinding" subsection. This one uses dijkstra compared to the pathfinding block in the node creator.
  • Atributes: Add an attribute to a connection, allowing you to take advantage of hero abilities or the like.

How to use pathfinding:

  • 1. First, head over to https://github.com/Preciseful/pathfind, download the files from "algorithm".
  • 2. Open "mainFile.py" using visual studio code, or any other editing program similar to it. Insert your positions and connections similar to the example set in there. After that, run it.
  • 3. In your PvE gamemode, add the following variables: Global Variables: nodePOS, alphabet and graph; Player Variables: destNode and targetNode. Then, paste in an global initial rule the actions (should be copied to clipboard).
  • 4. Similar to this gamemode 7812R, make an initial rule for bots, setting targetNode to closest and in LoS node as soon as they spawn.
  • 5. Set targetNode for bot(s) to Index Of String Char(Global.alphabet, Char In String(Global.graph[Event Player.targetNode], Event Player.destNode)); (or just copy from the gamemode). For destNode, set it as Index Of Array Value(nodePOS, [value]); In my example gamemode, destNode is set to closest and in LoS node to host.

!!! Don't forget to change Host Player from targetNode and/or destNode to the desired player!

Upsides:

  • Close to no serverload impact.
  • Fast pathfinding, with an updating destination.
  • Optional destination update.
  • Customizable, being able to make the destination anything, not just a player.

Downsides:

  • Initial map rule size might be a bit large. For around 80 nodes, its 20kb. So normally, you shouldn't hit the rule size limit, but it's still something to consider.
  • Has a limit of 128 nodes.
  • Map baking is an app, rather than a website (i hate html and anything website related).

How to implement attributes:

  • The attributes system is pretty straightforward. As an example, if a connection has "1" as an attribute, jump. If it has "1" and "2", jump and shoot. So how do you use it in your PvE gamemode?
  • 1. Start off by adding the attributes array to your gamemode.
  • 2. Modify the rule that updates targetNode. Implement a "startNode" that sets itself as targetNode, right before it's updated.
  • 2. In your desired rule, set the following conditions. String Contains(First Of(Filtered Array(Global.attributes, String Slice(Current Array Element, 0, 2) == Custom String("{0}{1}", Event Player.startNode, Event Player.targetNode))), Custom String("SET ATTRIBUTE YOU'RE LOOKING FOR")) == True;
  • 3. In the condition above, change the "SET ATTRIBUTE YOU'RE LOOKING FOR", to the attribute you're looking for. For example, I'm looking for attribute 1. So I change it to "1". Make sure it is a string.

Things to note:

  • My pathfinding doesn't take in account attributes. So, if you're planning on using mine, attributes are only useful for, example: Jumping over obstacles, using Lucio's amp to reach destination faster, etc., not to make paths a bit shorter by using abilities.

Incoming features:

  • No effect limit: As the name suggests, removal of effect limit, so you can make maps as big as you wish.

Controls:

  • Acknowledge: Turn on inspector to save your map.
  • Interact: Change current mode.
Players | 1 - 1
Categories: Team Deathmatch
Heroes: All
Maps: All
Created at:
Last updated:
Current version: 1.0.3

Similar Codes

Elo Hell Logo_H-M-Dark
Join the Elo Hell Workshops Discord