Page 1 of 2 1 2 LastLast
Results 1 to 10 of 12

Thread: September 19 Bot Update

  1. #1
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704

    September 19 Bot Update

    • AddScriptPathingAvoidanceZone() now has a second parameter, which is its duration.
    • Added AddConditionalAvoidanceZone( vLocationAndRadius, funcEval) which takes a function which takes one parameter (the avoidance zone index returned by AddConditionalAvoidanceZone). When it returns false, the avoidance zone is disabled.
    • Added InstallChatCallback( func ) which will cause func() to be called, which takes one parameter which is a table containing player_id, team_only, and string.
    • The completion function passed into GeneratePath() now has 3 parameters -- the second one is new, and is the index of the path request returned from GeneratePath().
    • Fixed the logic of HasBuyback() being incorrect.

  2. #2
    And :
    Fixed an issue where bot games would not be spectatable, and added proper SourceTV support. A related Protocol Buffer has been added for this.

  3. #3
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Yep, that's mostly under-the-hood work for now for getting those bot-vs-bot games more easily spectatable.

  4. #4
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,014
    Chris I think I speak for everyone when I say we love you!
    You not only added one suggestion but all of them. Thank you so much!

    P.S. AddScriptPathingAvoidanceZone is actually AddAvoidanceZone() right?

    P.P.S. moddota is behind on updates. The last 2 patches seem to be missing there
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  5. #5
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Oops yep AddScriptPathingAvoidanceZone is the internal name, you're right -- it's just AddAvoidanceZone() in the API.

  6. #6
    Basic Member
    Join Date
    Oct 2016
    Posts
    247
    Thank you so much for the chat function Chris!!
    now to work out how to use it.

    so glad to see addable avoidance zones too, could this be used to make lichs ult an avoidance zone? considering it is moving.
    Last edited by Yavimaya; 09-20-2017 at 05:03 AM.

  7. #7
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,014
    Quote Originally Posted by ChrisC View Post
    • AddScriptPathingAvoidanceZone() now has a second parameter, which is its duration.
    How do you get the "old" behavior of marking an AZ to last forever? duration = 0 or duration = nil?
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  8. #8
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Yep a duration of 0 means to not expire.

  9. #9
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,014
    Thanks! I noticed something that I initially missed:

    Quote Originally Posted by ChrisC View Post
    • The completion function passed into GeneratePath() now has 3 parameters -- the second one is new, and is the index of the path request returned from GeneratePath().
    So the calling behavior changed. GeneratePath() didn't used to return anything, but now it returns a path index that is also passed in the callback. Right?
    Is the number a sequence and guaranteed to never repeat itself?
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  10. #10
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Quote Originally Posted by The Nomad View Post
    Thanks! I noticed something that I initially missed:



    So the calling behavior changed. GeneratePath() didn't used to return anything, but now it returns a path index that is also passed in the callback. Right?
    Is the number a sequence and guaranteed to never repeat itself?
    The numbers will repeat themselves (it's which "slot" the pathfind is in out of the available 5) but they won't ever be used until one is completed. So if GeneratePath() returns 1, it won't return 1 again until you've gotten your completion function called with 1.

Posting Permissions

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