Page 5 of 6 FirstFirst ... 3 4 5 6 LastLast
Results 41 to 50 of 51

Thread: February 9 Bot Update

  1. #41
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Quote Originally Posted by nostrademous View Post
    Is this planned for today or this weekend? I ask b/c I'm sitting on the sideline right now not writing bot code to circumvent this issue through my own global variables in the hope it will be resolved soon. However, if it takes a bit I might as well get cracking.
    Should be today.

  2. #42
    Quote Originally Posted by fandogh View Post
    ChrisC, I Just want to ask whether you have access to npc_heroes.txt and can (will?) correct the game breaking build bugs (item,skill) in it If I precisely pinpoint the problems? it just takes below 15 minutes for you if i pinpoint them for you.

    You now there are lots of people who still use the default bots and also the default bots are a good base of comparison for the community Bots.

    Thanks.
    C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota\scripts\npc

  3. #43
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Sure I'm happy to update builds for the default bots.

  4. #44
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,017
    WOW! Thank you so much, Chris! You really do read EVERY SINGLE suggestion. You are amazing!
    Do GetLastHits() and GetDenies() work on teammates?

    Also, how does GetBotNames() work? I mean how do you make the bots pick names?
    Last edited by The Nomad; 02-10-2017 at 04:16 PM.
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  5. #45
    Quote Originally Posted by ChrisC View Post
    Sure I'm happy to update builds for the default bots.
    Out of curiosity, will there be any new heroes for default bots or improvements to them? (I know there are now community-made bots, but they tend to have kind of different behaviours compared to default e.g. pub simulator.

    Also, an amazing thing would be an option in the lobby to allow bots to wear custom items, clothes when I'm spectating.

  6. #46
    Looks like a aliens invaded the API during the 2 days I wasn't checking

    I wanted to start nagging again, but most the changes are for the better, so thanks for the update ! Some (hopefully) constructive criticism:

    I know I may hate myself in future for saying this, but it would be much cleaner if you could implement:

    Action_PushBack(action_type,inputs)
    Action_PushFront(action_type,inputs)

    Action_ClearQueue()

    Action_PopFront()
    Action_PopBack()

    Action_GetFront()
    Action_GetBack()

    Action_GetActionByIndex(index)

    Action_GetQueue()
    Action_SetQueue(action_queue)

    So the actions queue would look like deque. "input" would a table of parameters, which you could update later on by adding 'delay' parameter for instance without breaking the previous (future) codes.
    GetQueue() would return a table of action types and inputs with an added parameter 'index' for each action query.

    you also wouldn't have to change the current actions this way, and they would be like (I think you are doing something similar now too):

    Action_MoveToLocation(x)
    =>
    Action_ClearQueue()
    Action_PushBack(ACTION_MOVE_TO_LOCATION,{['Location']=x})

    And finally you could remove the "immediate" actions from the queue after each frame, or just implement them differently in the back-end so they don't go to/change the queue (or even leave them as they were).

    The good thing about this design is that it would be more flexible (in case you wanted to change it or add new things to it in future). It would also be easier to understand and cleaner (for you and the scripters).

    Honestly, these Push/Queue names don't look good from a design perspective (and my guess is that they eventually will be changed again).

  7. #47
    Basic Member
    Join Date
    Mar 2012
    Posts
    2,017
    So you want a stack... this might complicate things for newer scripters (especially those not programming before). Your suggestion isn't bad, I would just vote for leaving it as it is now for the sake of simplicity.
    As for flexibility, he could code it like that in C++ but keep it high-level as it is now in LUA (this would be preferable)
    Explanations on the normal, high and very high brackets in replays: here, here & here
    Why maphacks won't work in D2: here

  8. #48
    Basic Member
    Join Date
    Dec 2016
    Posts
    731
    So in my code what I used to do was that I would check what action I want to do that frame every frame. This allowed my bots to change their mind literally every frame. In most cases they would not change anything and I would do the same exact action I did the frame before. For example when moving to location "A" I would literally issue the command bot:Action_MoveToLocation(A) every frame. I believed this worked because on the backend the system would check if the command I issued was the same as the one I issued last frame and ignore it if it was (only reason attack actions could work under such a repetitive command issuing design as mine).

    It seems that under the new design this backend check is no longer happening. Seems @ChrisC reimplemented it for move action. Not attack action (yet). I guess I can implement the equivalent of the backend system checks in my own code, I was just under the impression the new system would add new queueing functionality as an extension and not change it he default mechanics of the Action_*() API

  9. #49
    Basic Member
    Join Date
    Jan 2014
    Posts
    57
    Quote Originally Posted by ChrisC View Post
    Sure I'm happy to update builds for the default bots.
    Thank you very much. Here is the bugs as far as i know:

    Code:
    Item Build -  The Game Breaking Bugs:
    Axe: Line 509 Please remove "item_recipe_blade_mail" (There is no recipe for blade mail) And Please Add Vanguard/Crimson Guard For Him.
    Sven: Line 4053 Please Add "item_recipe_helm_of_the_dominator " before "item_helm_of_the_dominator"
    Skeleton King: Line 8987 Please remove "item_recipe_blade_mail" (Same as Axe)
    Viper: Line 10051: He buys "item_ultimate_orb" for no reason. And Please upgrade his Dragon Lance to Hurricane Pike 
    Dragon Knight: Line 10427 Please Add "item_recipe_helm_of_the_dominator " before "item_helm_of_the_dominator" (Same as Sven (why HotD for DK?)).
    Bounty Hunter: Line 12835 Please Change "item_ring_of_regen" to "item_sobi_mask" For Drum of Endurance.
    Chaos Knight: Line 15941  Please Change "item_ring_of_regen" to "item_sobi_mask" For Drum of Endurance (Same as Bounty)
    
    Item Build -  Suggestions:
    Bane: Goes for Sheep stick which is nearly impossible for him. better go for Aghanim Scepter or force staff etc.
    Pudge: Going for Reaver which is nearly impossible for him. better go for Aghanim Scepter or Aether lens first.
    Tiny: Goes for Sheep stick which is so weird on him! better go for Aghanim Scepter or Echo Sabre
    Lina: Goes for Sheep stick which is nearly impossible for her. better go for Cyclone first (its present in her build but after sheep stick)
    Lion: same as Lina
    Tide-hunter: same as Lina (Why Sheep Stick on Tide?!?)
    Dazzle: Same as Lina
    Sniper: Please Add Shadow Blade in his Build. without it, He is too vulnerable.
    Luna: Please Add Dragon Lance and Hurricane Pike to her Build.
    Vengefulspirit: Her build is extremely Empty. I Suggest she go for Solar Crest (after medalion) or Aghanim Scepter
    
    Hero Build Suggestion:
    Tide-hunter: Please add atleast one  "tidehunter_gush" at first levels. with his current build he is passive until level 11.
    Bloodseeker: Please add atleast one  "bloodseeker_blood_bath" at first levels. with his current build he is passive until level 8.
    Hopefully I mentioned Most of them. Please Correct Me if I'm Wrong or if you have any other suggestions.

    Thanks in Advance.
    Last edited by fandogh; 02-11-2017 at 01:18 PM.

  10. #50
    Valve Developer
    Join Date
    Sep 2011
    Posts
    1,704
    Quote Originally Posted by nostrademous View Post
    So in my code what I used to do was that I would check what action I want to do that frame every frame. This allowed my bots to change their mind literally every frame. In most cases they would not change anything and I would do the same exact action I did the frame before. For example when moving to location "A" I would literally issue the command bot:Action_MoveToLocation(A) every frame. I believed this worked because on the backend the system would check if the command I issued was the same as the one I issued last frame and ignore it if it was (only reason attack actions could work under such a repetitive command issuing design as mine).

    It seems that under the new design this backend check is no longer happening. Seems @ChrisC reimplemented it for move action. Not attack action (yet). I guess I can implement the equivalent of the backend system checks in my own code, I was just under the impression the new system would add new queueing functionality as an extension and not change it he default mechanics of the Action_*() API
    Yes, this is the intention, and the next update should fix cases where calling an Action_* function with the same as a previous call could stall it out.

Posting Permissions

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