Results 1 to 7 of 7

Thread: MK's Mischief and Bots

  1. #1
    Basic Member
    Join Date
    Dec 2016
    Posts
    731

    Exclamation MK's Mischief and Bots

    Is totally useless in bot matches as MK when disguised is still reported as a "Unit" with GetNearbyEnemyUnits or equivalent API functionality.

    The skill itself provides:
    Under Mischief - Auto-attack ignores the Monkey King, so that lane creeps, neutral creeps, towers and fountains do not automatically attack him.
    Under Mischief - Units of players which have auto-attack enabled do not attack him automatically either, but can be forced to attack him. The ground-attack move also ignores him.

    So it works in human-games as humans don't have a list of all nearby units available to them, they process those visually; but good luck having a bot or when playing against bots trying to get the early bounty rune and hope they won't see you as the tree standing right there....

  2. #2
    Basic Member
    Join Date
    Sep 2017
    Posts
    56
    Same deal as with illusions, if you want bots to act reasonably, you'll have to deliberately hamstring them. You could for example have a random chance that if a bot sees the Mischief modifier on MK and there is a tree nearby, it tosses the unit out from its list if we didn't just see the MK transform. If you want to do that it helps to collect the nearbyunits list once, and keep using that every time you need it.

  3. #3
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,017
    I think his point is you shouldn't do this, since bots have an unfair advantage (similar to detecting illusions before Chris' changes). I doubt most people would want to nerf their bots. And that would create (dis)advantages over other bots. Best thing is for any function to ignore Mischief natively. GetUnitList() included. GetLastSeenInfo() should stop working as soon as he enters Mischief. So if he moves around as a courier, then the function should return his actual last seen position as he was without any disguise.
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  4. #4
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    Yes, my point is what @The Nomad said. The issue is that Valve would have to create another boolean to fix and track MK's state since Mischief is not the same as "invisible" (detectable through True Sight); but also shouldn't be reported as a "unit" when in Mischief state. The bots need to have the ability to reason / detect the presence of MK in Mischief form, but it shouldn't be as simple as asking "is there a unit I can attack near me?" (unless perhaps in courier mischief form).

  5. #5
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,017
    While this situation is similar to illusions, there is one difference: particle effects.
    There is a DotaCinema Fails Of The Week clip when Ursa (almost) wrecked MK mid in a gank near the river, he ran to the mid ancients on the left and transformed into a branch. Ursa went up, didn't see MK, saw a branch and left. The Fail in the clip was that you could see the Fury Swipes claw particle above the branch.
    If we are to give bots a chance, they'll need stuff like this. And since we don't have a handle, we can't check for modifiers either - so this is the challenge for Chris :P

    Obviously a branch is easy to detect, using GetDroppedItemList(), but there is a funny clip from DotaWatafak where a very wrecked MK escaped a failed team fight, Faceless Void went after it and managed to Chrono at the last second and trap him while MK was behind or on top of the trees or maybe TPing (from FV's scenarios). He Timewalked in to kill him but he was gone. As soon as he left MK is reveleaed to be one of the trees, so none of FV's scenarios was true - MK never left or jumped on a tree. He became a tree. This might seem easy to detect using GetNearbyTrees().

    But int the end it's the same thing as with the branch: how can we compare the branch or the tree we see with one from a list if we can't select it? And adding the Mischief result to other functions (i.e. a branch disguise to GetDroppedItemList() or a tree disguise to GetAllTrees() is not feasable either). Some players might distinguish a "new" tree if they play the map enough, but what about runes?

    My point is, adding a way to tell Mischief will be harder than excluding it
    This is the downside. And in the end, all a player (bot or human, won't matter) has to do is just pick MK, gank, use Mischief and leave. This might not make botmatches that fun.
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  6. #6
    Basic Member
    Join Date
    Sep 2017
    Posts
    56
    It's pretty typical for bot creation that you have to weaken it somewhat to make it fun for players. In the case of fps's, perfect aim is easier to do than non-perfect aim, but it makes for a terrible play experiences. You can just ignore MK's thing as is on unfair, then account for it by excluding it on lower difficulties. Now obviously this is going to be pretty low on anyone's priority list, but it's more reasonable than expecting us to do a proper analysis of standard tree positioning compared to what we see now. It'd take a huge effort, could end up as a massive performance hit, and you run into API design issues in that you would actually need to be able to obtain a handle to the MK somehow to attack it /cast abilities on it.

    Even if you do find a way to hack yourself into knowing what tree is a MK and what isn't, well you're basically where we started off, that we always know when the MK is trying to hide.
    Last edited by Siesta Guru; 11-09-2017 at 06:28 AM.

  7. #7
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,017
    Indeed
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •