Giter VIP home page Giter VIP logo

dota2-fulloverwrite's People

Contributors

byburton avatar dralois avatar eteran avatar keithenneu avatar maseh87 avatar nostrademous avatar paulmaederer avatar rabidcicada avatar reidzeibel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dota2-fulloverwrite's Issues

Item Usage: Eul's

Let's write some rules for using Eul's - especially for comboing on Lina

Objective Defense

Only reason the bots still loose to default bots is b/c they never rotate out of their lane/jungle assignments. They own respectively in that category, but when bots 5-man push down mid... they don't respond in kind.

Need to implement the DefendAlly and DefendObjective functions.

Implement DoRoshan() Function

This should be the actual fight mechanics as well as determining if it is safe to fight or continue an existing fight.

Implement Buying Secret Shop Items

Unfortunately currently courier controls don't exist to send courier anywhere... so we must implement direct pathing code to secret shop when we need items from there.

Lina's LSA Usage

I updated the code to use GetExtrapolatedLocation() with the LSA CastPoint as the argument. But I'm seeing strange behavior.

  1. Sometimes the location is wildly off - perhaps the implementation of GetExtrapolatedLocation() is not so good.

  2. When I use LSA in the Combo function it will print that it is using it but half the time it doesn't. It is like the bot doesn't realize it is using an ability and move-cancels it even though I have detection for Channeling and IsUsingAbility early on in the decision_tree Think()

Hero Selection -> Roles

Just noticed that my depth-first search algorithm doesn't seem to be behaving properly with the recent add of all the new heroes to the pool. It should work, but currently it's not selecting a mid hero, but rather sending Lina to the semi-support Role along with Bane leaving mid empty.

Global Enemy Hero Information

I think all 3 of us are needing this information.

I want to make sure all 3 of us are not implementing different solutions (or even the same solution and wasting time).

Who is doing anything with this?

I assume we will be basically working using the enemy_data.lua but re-writing chunks of it using the new Valve provided APIs of:

  • Added GetUnitList() global bot script function for returning a list of the specified unit types.
  • Added UNIT_LIST_ALL, UNIT_LIST_ALLIES, UNIT_LIST_ALLIED_HEROES, UNIT_LIST_ALLIED_CREEPS, UNIT_LIST_ENEMIES, UNIT_LIST_ENEMY_HEROES, UNIT_LIST_ENEMY_CREEPS, and UNIT_LIST_NEUTRAL_CREEPS global bot script constants.
  • GetLastSeenLocation() and GetTimeSinceLastSeen()

Basic Roaming

I'd like to build some basic roaming, to allow Bloodseeker to get more active during the laning phase.
What I want to do:

  • during jungling, try to stay close to lanes that might need help, or have good kill potential
  • once we have ult (or whatever we need to secure a kill): go to well positioned (pulled) lanes and kill.

Are there any functions yet, to get data about lanes?:

  • potential of getting a kill (having stuns and damage; lane is pulled)
  • potential of getting killed (enemy has stuns, damage; lane is pushed or enemy can dive)
  • position of lane between t1 towers

This should yield good results and not be to hard to implement for now. Later on, this should be integrated with some overall tactic considerations and fighting logic.

Sell/Drop Items

Need to implement some form of item recycling when they are no longer needed, like ironwood branches.....

GetItemCost error

I'm getting a lot of
[VScript] GetItemCost parameter 1: expected cstring but got hscript.
starting at about 3:30 into the game.
Is this a known issue?

AmISafe returns 1 (enemy hero) while jungling far away from any enemy

I guess something is off with the calculation. Not sure though.

It's the line
(bot:GetHealth() < (bot:GetMaxHealth()*0.17*(nEn-nAl+1) + nTo*110))
And it happened at about 34% life.

it also returns 1 if we're already retreating to fountain, making it impossible to differentiate these cases.

Help me help you guys!

I read a few tutorials of how to do pull requests or stuff, but I don't get it.
I cloned it to my desktop. There is now a page "GitHub.com/ByBurton/Dota2-FullOverwrite".
But HOW can I put my changes I do in the desktop to yours, or to my browser thing?

Implement "Localized" Bot Teaming for Fights

When any bot under our control goes into "ACTION_FIGHT" mode... we should search surrounding area (I'm thinking 2500 range) for Allied Bots and notify them to help out and join fight. This needs to be done cleanly through adding to their actionStack and not just setting their action so that after the fight is "done" they can return to what they were doing.

Backpack

The bots need to understand how to use the backpack feature - I see them running around with a complete Shadow blade, power treads etc. in their backpack.
The other issue is already mentioned (they do not sell items).
I understand that this is still heavily under development, but I think that should be easy to implement? Idk.
Also I want to mention it here and not open a new threat - as soon as someone makes a PA bot, I hope you gonna make her lasthit with daggers if she is outzoned, too much under harassment.
But holy shit, that bloodseeker bot and Lina are actually impressive already. Good job guys!
And holy shit you worked a lot on this today.

Make wiki editable?

Is that possible? I would like to add how to implement a item_purchase_SomeNewBot since that works a little bit different now.

What IDE do you use?

Hey guys,
I'm new to Lua and I usually use Visual Studio for coding,
however the Lua support for it isn't exactly what I'd call great..
What IDE do you use, is there one that offers as many comfortable features
sort of like Visual Studio or is there an extension I don't know about yet?

Get Runes

I recently checked in a functional implementation in decision_tree.lua for function X:DoGetRune(npcBot)

It will pick up any rune if we are close to it (within 450 units) - however no code is written to path to runes at appropriate timings (based on rune spawns).

Needs to go into decision_tree.lua "function X:Determine_ShouldGetRune(bot)". Keep in mind fall-through logic here with the "return"

Fix Bloodseeker Retreat to not have Hardcoded Health Threshold

Currently BS will retreat if he falls below the maximum of (15% health, 100 hp). What sometimes happens is that he is 1 more hit away from killing a remaining neutral creep that would have healed him up, but he hits the threshold and start running away... this is dumb. We should add code to check if he can kill something and heal up before getting killed using GetEstimateDamage()

Can't access global hero data

So when I try to get values from global hero data that doesn't work,
it always returns a nil value. The first time an item purchase script is called it calls an init function,
that init functions needs to be able to access the role a hero has. However when I try to get the role
it doesn't do anything.. I still don't fully understand how data is stored in global hero data and who can access is, so that might be part of why it doesn't work.

Time-Based Rune Check

We now have working code to pickup RUNES (bounty and power-up) if we HAPPEN to walk near their location (1000 units) and they happen to be there (RUNE_STATUS_AVAILABLE is true).

We DO NOT have any code to go towards their location based on hard-coded spawn times.

Outsource common bot functions

Is there a way of outsourcing the ItemPurchaseThink, SaveUpdates and LoadUpdates (Maybe others as well)?
Having these in each bots files seems a little redundant.

Item Purchase Generic Test - Piecemeal Purchasing

Wiki says you will consider piece-wise purchasing and track what you already bought to help determine if you need to purchase an item you might already have. This is not the case.

I don't see self.BoughtItems being really used anywhere to check... just populated

Fix melee hero last-hitting

Melee heroes need better approach code for last hitting and denying then the currently implemented code that favors ranged heroes.

Implement Determine_DoAlliesNeedHelp() Function

Write the logic for checking if Allies are in trouble and need help.

Probably the easiest way to do this is to use a setHeroVar("NeedHelp", true) for all heroes that are close to dying, in ACTION_RETREAT state and being chased. Then we should check how close we can TP to them (if we have TP) to determine how soon we can get there.

Code won't compile

And I can't figure out why.. Is there a good way to debug that? A logfile that I can look into or something? It probably is just something little but my IDE doesn't show me those probably obvious mistakes, in fact it doesn't tell me anything :(

Utility.lua needs to be sorted and expanded

The functions are kind of all over the place right now, I will attempt to sort them for readability.
I will add a few table functions like to check if a table contains a key and make some existing functions
available

Implement Using Phase Boots Active

To start - let's just implement it when ACTION_RETREAT is happening.

Later we can use it when chasing down heroes or moving to locations.

Consider Z-Axis for Last-Hitting

Currently in laning phase we don't care about height differences for purposes of positioning and last-hitting. Let's fix that.

Global: GetHeightLevel( locVector ) is available to us. We could check it for our location and target location and make positional adjustments as necessary to make our position >= target z-axis height

Neutral Stacking

Implement support pulling and stacking of Neutrals

I recently checked in a lot of code for Jungle Stacking - timings, vectors for approach and vectors to go to when pulling, etc.

need to complete work

Fix Retreat Code from Creep Damage

Currently even when pushing towers we back off as soon as we take any damage from creeps or tower as there are no rule exceptions written for this when pushing towers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.