Jump to content

reapler

Elite user
  • Posts

    288
  • Joined

  • Last visited

Reputation Activity

  1. Thanks
    reapler got a reaction from Mike Mail for a bug report, "[MovementManager] Think we are stuck" while stunned   
    The bug happens while the character tries to walk while stunned and this message appears "[MovementManager] Think we are stuck".
    I could also imagine it, it would also happen with other movement impairing effects such as roots.
    If the event "MovementEvents.OnSeemStuck" is registered this will be also called.
    If someone else would use this event for an own bug reporting, this would result in false-positive reports.
  2. Like
    reapler got a reaction from Jasabi for a bug report, Pather & general ideas for WRobot classes / profiles   
    I would like to suggest to add a continent name as a new parameter to the class "Grinderzone" it would allow to easier travelling between continents & taking the right path.
    At the current state of the Grinder product for example it doesn't check the continent and taking vectors from a different continent. I've also written methods to check whether vector is on continent by Z axis:
    /// <summary> /// Load specific tiles to define the pather by the given location. /// </summary> /// <param name="from">The location.</param> /// <param name="maxDistance">The maximum allowed z-distance.</param> public Pather GetPatherByLocation(Vector3 from, float maxDistance = float.PositiveInfinity) { float d = float.PositiveInfinity; Pather p = null; try { Pather pc = null; Logging.log("Load tiles to define continent..."); foreach (MainContinents continent in Enum.GetValues(typeof(MainContinents))) { pc = GetPather(from, continent); if (Math.Abs(pc.FindZ(from) - from.Z) < d) { p = pc; d = Math.Abs(p.FindZ(from) - from.Z); } pc.Dispose(); } if (d < maxDistance) { Logging.log("Pather for " + from + " found\nContinent: " + p.Continent + "\nDeviation: " + d); return p; } } catch (Exception ex) { Logging.logex("GetPatherByLocation(...):\n" + ex); } Logging.log("GetPatherByLocation(...) failed to load suitable continent: " + d + " < " + maxDistance + " is invalid.\nSuspected continent: " + p.Continent); return GetPather(from, Usefuls.ContinentNameMpq); } /// <summary> /// Initialize new pather. /// </summary> /// <param name="loc">Initial location.</param> /// <param name="continent">Pather's continent.</param> public Pather GetPather(Vector3 loc, MainContinents continent) { try { if (loc != Vector3.Empty) { float x1; float y1; return new Pather(continent.ToString()); } } catch (Exception ex) { Logging.logex("GetPather(Vector3 loc, MainContinents continent):\nContinent: " + continent + "\nLocation: " + loc + "\nThrow an Exception:\n" + ex); } Logging.log("GetPather(Vector3 loc, MainContinents continent) failed to load desired continent: " + Usefuls.ContinentNameMpq); return new Pather(Usefuls.ContinentNameMpq); } It works so far (i can put a position from a other continent & can get the string from Pather.Continent). But it needs to load the tiles. That's the down-side of it(If there's a better method to define it, let me know please)
    i also have written classes to use the returned pather for connections between boats, Zeppelins & portals and have a general algorithm to take the path with the shortest distance with these connections.
    But the mentioned method is the only thing left which is a thorn in my eye.
    I would like also to suggest to add a continent property to the Vector3 class. So if someone calls this class it will also get the continent & can be saved in profiles
    In the end the pather knows exactly where to go on which continent.
     
    ps: i can also upload the classes, if you need them but it has a bit work left.
×
×
  • Create New...