Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
D
dota2-ai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
JoyJ
dota2-ai
Commits
71e98103
Commit
71e98103
authored
Apr 03, 2023
by
JoyJ
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates from jodyjmaulana/aba-update
parent
f2f0e0bf
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
2191 additions
and
29 deletions
+2191
-29
BotLib/hero_night_stalker.lua
BotLib/hero_night_stalker.lua
+588
-0
BotLib/hero_obsidian_destroyer.lua
BotLib/hero_obsidian_destroyer.lua
+498
-0
BotLib/hero_terrorblade.lua
BotLib/hero_terrorblade.lua
+701
-0
FunLib/aba_buff.lua
FunLib/aba_buff.lua
+146
-0
FunLib/aba_item.lua
FunLib/aba_item.lua
+23
-2
FunLib/aba_role.lua
FunLib/aba_role.lua
+7
-0
FunLib/aba_site.lua
FunLib/aba_site.lua
+76
-16
FunLib/aba_skill.lua
FunLib/aba_skill.lua
+11
-6
FunLib/jmz_func.lua
FunLib/jmz_func.lua
+49
-0
ability_item_usage_generic.lua
ability_item_usage_generic.lua
+60
-1
hero_selection.lua
hero_selection.lua
+11
-1
item_purchase_generic.lua
item_purchase_generic.lua
+5
-2
mode_farm_generic.lua
mode_farm_generic.lua
+6
-0
mode_laning_generic.lua
mode_laning_generic.lua
+5
-0
mode_team_roam_generic.lua
mode_team_roam_generic.lua
+5
-1
No files found.
BotLib/hero_night_stalker.lua
0 → 100644
View file @
71e98103
This diff is collapsed.
Click to expand it.
BotLib/hero_obsidian_destroyer.lua
0 → 100644
View file @
71e98103
This diff is collapsed.
Click to expand it.
BotLib/hero_terrorblade.lua
0 → 100644
View file @
71e98103
This diff is collapsed.
Click to expand it.
FunLib/aba_buff.lua
View file @
71e98103
...
...
@@ -134,6 +134,152 @@ Buff["hero_not_invisible"] = {
}
Buff
[
"dispellable_debuffs"
]
=
{
"modifier_cold_feet"
,
"modifier_arc_warden_flux"
,
"modifier_axe_battle_hunger"
,
"modifier_bane_enfeeble_effect"
,
"modifier_batrider_sticky_napalm"
,
"modifier_flamebreak_damage"
,
"modifier_beastmaster_axe_stack_counter"
,
"modifier_bounty_hunter_wind_walk_slow"
,
"modifier_bounty_hunter_track"
,
"modifier_brewmaster_cinder_brew"
,
"modifier_bristleback_viscous_nasal_goo"
,
"modifier_broodmother_spawn_spiderlings"
,
"modifier_chaos_knight_reality_rift_debuff"
,
"modifier_chen_penitence"
,
"modifier_crystal_maiden_crystal_nova"
,
"modifier_dark_seer_ion_shell"
,
"modifier_dark_willow_cursed_crown"
,
"modifier_dark_willow_debuff_fear"
,
"modifier_dazzle_poison_touch"
,
"modifier_death_prophet_spirit_siphon_fear"
,
"modifier_disruptor_thunderstrike_slow"
,
"modifier_dragonknight_breathefire_reduction"
,
"modifier_elder_titan_earth_splitter"
,
"modifier_enigma_malefice"
,
"modifier_enchantress_enchant_slow"
,
"modifier_faceless_void_time_dilation_slow"
,
"modifier_grimstroke_dark_artistry_slow"
,
"modifier_gyrocopter_call_down_slow"
,
"modifier_huskar_inner_fire_disarm"
,
"modifier_huskar_life_break_slow"
,
"modifier_invoker_cold_snap"
,
"modifier_invoker_chaos_meteor_burn"
,
"modifier_jakiro_dual_breath_slow"
,
"modifier_jakiro_dual_breath_burn"
,
"modifier_jakiro_liquid_fire_burn"
,
"modifier_jakiro_liquid_ice_debuff"
,
"modifier_keeper_of_the_light_blinding_light"
,
"modifier_kunkka_torrent_slow"
,
"modifier_life_stealer_open_wounds"
,
"modifier_lone_druid_savage_roar"
,
"modifier_magnataur_shockwave"
,
"modifier_naga_siren_rip_tide"
,
"modifier_night_stalker_void"
,
"modifier_ogre_magi_ignite"
,
"modifier_oracle_fortunes_end_purge"
,
"modifier_oracle_fates_edict"
,
"modifier_pangolier_luckyshot_disarm"
,
"modifier_phantom_assassin_stiflingdagger"
,
"modifier_phantom_lancer_spirit_lance"
,
"modifier_phoenix_icarus_dive_burn"
,
"modifier_phoenix_fire_spirit_burn"
,
"modifier_pugna_decrepify"
,
"modifier_queenofpain_shadow_strike"
,
-- "modifier_silencer_curse_of_the_silent",
"modifier_silencer_last_word"
,
"modifier_slardar_amplify_damage"
,
"modifier_templar_assassin_meld_armor"
,
"modifier_terrorblade_reflection_slow"
,
"modifier_tidehunter_gush"
,
"modifier_tidehunter_anchor_smash"
,
"modifier_shredder_whirling_death_debuff"
,
"modifier_tinker_laser_blind"
,
"modifier_treant_leech_seed"
,
"modifier_treant_overgrowth"
,
"modifier_troll_warlord_berserkers_rage_ensnare"
,
"modifier_troll_warlord_whirling_axes_slow"
,
"modifier_troll_warlord_whirling_axes_blind"
,
"modifier_abyssal_underlord_firestorm_burn"
,
"modifier_abyssal_underlord_pit_of_malice_ensare"
,
"modifier_ursa_earthshock"
,
"modifier_vengefulspirit_wave_of_terror"
,
"modifier_venomancer_venomous_gale"
,
"modifier_visage_grave_chill_debuff"
,
"modifier_warlock_fatal_bonds"
,
"modifier_warlock_shadow_word"
,
"modifier_dark_troll_warlord_ensnare"
,
"modifier_lone_druid_spirit_bear_entangle_effect"
,
"modifier_item_diffusal_blade_slow"
,
"modifier_orchid_malevolence_debuff"
,
"modifier_bloodthorn_debuff"
,
"modifier_rod_of_atos_debuff"
,
"modifier_gungir_debuff"
,
"modifier_item_medallion_of_courage_armor_reduction"
,
"modifier_item_solar_crest_armor_reduction"
,
"modifier_item_urn_damage"
,
"modifier_item_spirit_vessel_damage"
,
"modifier_item_veil_of_discord_debuff"
,
}
Buff
[
"dispellable_buffs"
]
=
{
"modifier_abaddon_aphotic_shield"
,
"modifier_bloodseeker_bloodrage"
,
"modifier_dark_seer_ion_shell"
,
"modifier_dark_seer_surge"
,
"modifier_earthshaker_enchant_totem"
,
"modifier_grimstroke_spirit_walk_buff"
,
"modifier_gyrocopter_rocket_barrage"
,
"modifier_invoker_alacrity"
,
"modifier_legion_commander_overwhelming_odds"
,
"modifier_legion_commander_press_the_attack"
,
"modifier_lich_frost_shield"
,
"modifier_magnataur_empower"
,
"modifier_mirana_leap_buff"
,
"modifier_monkey_king_quadruple_tap_bonuses"
,
"modifier_necrolyte_sadist_active"
,
"modifier_ogre_magi_bloodlust"
,
"modifier_omninight_guardian_angel"
,
"modifier_oracle_purifying_flames"
,
"modifier_pangolier_shield_crash_buff"
,
"modifier_phantom_assassin_phantom_strike"
,
"modifier_phantom_lancer_phantom_edge_agility"
,
"modifier_pugna_decrepify"
,
"modifier_slardar_sprint"
,
"modifier_spirit_breaker_bulldoze"
,
"modifier_storm_spirit_overload"
,
"modifier_storm_spirit_electric_rave"
,
"modifier_sven_warcry"
,
"modifier_treant_living_armor"
,
"modifier_ursa_fury_swipes"
,
"modifier_visage_grave_chill_buff"
,
"modifier_warlock_shadow_word"
,
"modifier_windrunner_windrun"
,
"modifier_item_ancient_janggo_active"
,
"modifier_item_forcestaff_active"
,
"modifier_ghost_state"
,
"modifier_item_glimmer_cape_fade"
,
"modifier_item_hurricane_pike_active"
,
"modifier_item_medallion_of_courage_armor_addition"
,
"modifier_item_urn_heal"
,
"modifier_item_solar_crest_armor_addition"
,
"modifier_item_ethereal_blade_ethereal"
,
"modifier_item_crimson_guard_extra"
,
"modifier_item_mask_of_madness_berserk"
,
"modifier_item_mjollnir_static"
,
"modifier_rune_arcane"
,
"modifier_rune_doubledamage"
,
"modifier_rune_haste"
,
"modifier_rune_regen"
,
}
return
Buff
-- dota2jmz@163.com QQ:2462331592..
\ No newline at end of file
FunLib/aba_item.lua
View file @
71e98103
...
...
@@ -329,6 +329,7 @@ Item['tEarlyItem'] = {
'item_tango'
,
'item_flask'
,
'item_infused_raindrop'
,
'item_branches'
,
-- 'item_magic_stick',
-- 'item_orb_of_venom',
'item_bracer'
,
...
...
@@ -338,8 +339,8 @@ Item['tEarlyItem'] = {
'item_soul_ring'
,
-- 'item_magic_wand',
-- 'item_ancient_janggo',
'item_refresher_shard'
,
'item_cheese'
,
--
'item_refresher_shard',
--
'item_cheese',
}
Item
[
'tEarlyBoots'
]
=
{
...
...
@@ -825,6 +826,7 @@ local tDefineItemRealName = {
[
'item_mid_outfit'
]
=
"item_power_treads"
,
[
'item_templar_assassin_outfit'
]
=
"item_power_treads"
,
[
'item_obsidian_destroyer_outfit'
]
=
"item_power_treads"
,
[
'item_ranged_carry_outfit'
]
=
"item_power_treads"
,
...
...
@@ -893,6 +895,7 @@ Item['item_mid_outfit'] = { 'item_tango', 'item_faerie_fire', 'item_double_b
Item
[
'item_templar_assassin_outfit'
]
=
{
'item_tango'
,
'item_faerie_fire'
,
'item_double_branches'
,
'item_wraith_band'
,
'item_flask'
,
'item_magic_stick'
,
'item_recipe_magic_wand'
,
'item_flask'
,
'item_power_treads_agi'
,
'item_blight_stone'
}
Item
[
'item_obsidian_destroyer_outfit'
]
=
{
'item_tango'
,
'item_crown'
,
'item_ring_of_health'
,
'item_void_stone'
,
'item_recipe_meteor_hammer'
,
'item_power_treads_int'
}
----------------------------------------------------------------------
...
...
@@ -1114,6 +1117,24 @@ function Item.IsItemInHero( sItemName )
if
sItemName
==
'item_ultimate_scepter_2'
then
return
(
bot
:
HasScepter
()
and
bot
:
FindItemSlot
(
'item_ultimate_scepter'
)
<
0
)
end
if
(
sItemName
==
'item_power_treads'
or
sItemName
==
'item_phase_boots'
)
and
(
Item
.
IsItemInHero
(
'item_travel_boots'
)
or
Item
.
IsItemInHero
(
'item_travel_boots_2'
)
)
then
return
true
end
if
sItemName
==
'item_power_treads'
and
Item
.
IsItemInHero
(
'item_boots_of_bearing'
)
then
return
true
end
if
sItemName
==
'item_tranquil_boots'
and
Item
.
IsItemInHero
(
'item_guardian_greaves'
)
then
return
true
end
local
nItemSolt
=
bot
:
FindItemSlot
(
sItemName
)
--加入信使背包会更好
...
...
FunLib/aba_role.lua
View file @
71e98103
...
...
@@ -1544,6 +1544,7 @@ X["bottle"] = {
X
[
"phase_boots"
]
=
{
[
"npc_dota_hero_abaddon"
]
=
1
,
[
"npc_dota_hero_night_stalker"
]
=
1
,
[
"npc_dota_hero_alchemist"
]
=
1
,
[
"npc_dota_hero_gyrocopter"
]
=
1
,
[
"npc_dota_hero_medusa"
]
=
1
,
...
...
@@ -1646,6 +1647,7 @@ end
X
[
'off'
]
=
{
'npc_dota_hero_abaddon'
,
'npc_dota_hero_night_stalker'
,
'npc_dota_hero_abyssal_underlord'
,
'npc_dota_hero_axe'
,
'npc_dota_hero_batrider'
,
...
...
@@ -1672,6 +1674,7 @@ X['off'] = {
'npc_dota_hero_venomancer'
,
'npc_dota_hero_windrunner'
,
'npc_dota_hero_primal_beast'
,
'npc_dota_hero_obsidian_destroyer'
,
}
X
[
'mid'
]
=
{
...
...
@@ -1712,6 +1715,7 @@ X['mid'] = {
X
[
'safe'
]
=
{
'npc_dota_hero_antimage'
,
'npc_dota_hero_night_stalker'
,
'npc_dota_hero_chaos_knight'
,
"npc_dota_hero_mars"
,
'npc_dota_hero_drow_ranger'
,
...
...
@@ -2151,6 +2155,8 @@ function X.IsABAHero()
local
sABAHeroIndex
=
{
[
"npc_dota_hero_antimage"
]
=
true
,
[
"npc_dota_hero_night_stalker"
]
=
true
,
[
"npc_dota_hero_obsidian_destroyer"
]
=
true
,
[
"npc_dota_hero_arc_warden"
]
=
true
,
[
"npc_dota_hero_bane"
]
=
true
,
[
"npc_dota_hero_bloodseeker"
]
=
true
,
...
...
@@ -2196,6 +2202,7 @@ function X.IsABAHero()
[
"npc_dota_hero_axe"
]
=
true
,
[
"npc_dota_hero_slardar"
]
=
true
,
[
"npc_dota_hero_legion_commander"
]
=
true
,
[
"npc_dota_hero_terrorblade"
]
=
true
,
[
"npc_dota_hero_tidehunter"
]
=
true
,
[
"npc_dota_hero_omniknight"
]
=
true
,
[
"npc_dota_hero_naga_siren"
]
=
true
,
...
...
FunLib/aba_site.lua
View file @
71e98103
...
...
@@ -505,16 +505,22 @@ end
local
tFarmerList
=
{
[
"npc_dota_hero_nevermore"
]
=
true
,
[
"npc_dota_hero_medusa"
]
=
true
,
[
"npc_dota_hero_razor"
]
=
true
,
[
"npc_dota_hero_luna"
]
=
true
,
[
"npc_dota_hero_sven"
]
=
true
,
[
"npc_dota_hero_antimage"
]
=
true
,
[
"npc_dota_hero_bloodseeker"
]
=
true
,
[
"npc_dota_hero_clinkz"
]
=
true
,
[
"npc_dota_hero_drow_ranger"
]
=
true
,
[
"npc_dota_hero_huskar"
]
=
true
,
[
"npc_dota_hero_luna"
]
=
true
,
[
"npc_dota_hero_medusa"
]
=
true
,
[
"npc_dota_hero_nevermore"
]
=
true
,
[
"npc_dota_hero_phantom_assassin"
]
=
true
,
[
"npc_dota_hero_phantom_lancer"
]
=
true
,
[
"npc_dota_hero_naga_siren"
]
=
true
,
[
"npc_dota_hero_razor"
]
=
true
,
[
"npc_dota_hero_slark"
]
=
true
,
[
"npc_dota_hero_sven"
]
=
true
,
[
"npc_dota_hero_templar_assassin"
]
=
true
,
[
"npc_dota_hero_terrorblade"
]
=
true
,
}
function
Site
.
IsSpecialFarmer
(
bot
)
...
...
@@ -526,25 +532,28 @@ end
local
tFarmHeroList
=
{
[
"npc_dota_hero_nevermore"
]
=
true
,
[
"npc_dota_hero_drow_ranger"
]
=
true
,
[
"npc_dota_hero_luna"
]
=
true
,
[
"npc_dota_hero_sven"
]
=
true
,
[
"npc_dota_hero_axe"
]
=
true
,
[
"npc_dota_hero_abaddon"
]
=
true
,
[
"npc_dota_hero_antimage"
]
=
true
,
[
"npc_dota_hero_arc_warden"
]
=
true
,
[
"npc_dota_hero_axe"
]
=
true
,
[
"npc_dota_hero_bloodseeker"
]
=
true
,
[
"npc_dota_hero_clinkz"
]
=
true
,
[
"npc_dota_hero_drow_ranger"
]
=
true
,
[
"npc_dota_hero_huskar"
]
=
true
,
[
"npc_dota_hero_luna"
]
=
true
,
[
"npc_dota_hero_juggernaut"
]
=
true
,
[
"npc_dota_hero_medusa"
]
=
true
,
[
"npc_dota_hero_razor"
]
=
true
,
[
"npc_dota_hero_naga_siren"
]
=
true
,
[
"npc_dota_hero_nevermore"
]
=
true
,
[
"npc_dota_hero_night_stalker"
]
=
true
,
[
"npc_dota_hero_phantom_assassin"
]
=
true
,
[
"npc_dota_hero_phantom_lancer"
]
=
true
,
[
"npc_dota_hero_naga_siren"
]
=
true
,
[
"npc_dota_hero_razor"
]
=
true
,
[
"npc_dota_hero_slark"
]
=
true
,
[
"npc_dota_hero_sven"
]
=
true
,
[
"npc_dota_hero_templar_assassin"
]
=
true
,
[
"npc_dota_hero_huskar"
]
=
true
,
[
"npc_dota_hero_clinkz"
]
=
true
,
[
"npc_dota_hero_juggernaut"
]
=
true
,
[
"npc_dota_hero_terrorblade"
]
=
true
,
[
"npc_dota_hero_tidehunter"
]
=
true
,
[
"npc_dota_hero_slark"
]
=
true
,
}
function
Site
.
IsShouldFarmHero
(
bot
)
...
...
@@ -787,6 +796,8 @@ Site.ConsiderFarmNeutralType["npc_dota_hero_viper"] = function() return 'maxHP'
Site
.
ConsiderFarmNeutralType
[
"npc_dota_hero_huskar"
]
=
function
()
return
'maxHP'
end
Site
.
ConsiderFarmNeutralType
[
"npc_dota_hero_terrorblade"
]
=
function
()
return
'maxHP'
end
Site
.
ConsiderFarmNeutralType
[
"npc_dota_hero_phantom_assassin"
]
=
function
()
local
bot
=
GetBot
()
...
...
@@ -877,6 +888,7 @@ function Site.FindFarmNeutralTarget( creepList )
if
Site
.
IsHaveItem
(
bot
,
"item_bfury"
)
or
Site
.
IsHaveItem
(
bot
,
"item_maelstrom"
)
or
Site
.
IsHaveItem
(
bot
,
"item_mjollnir"
)
or
Site
.
IsHaveItem
(
bot
,
"item_gungir"
)
or
Site
.
IsHaveItem
(
bot
,
"item_radiance"
)
then
targetCreep
=
Site
.
GetMaxHPCreep
(
creepList
)
...
...
@@ -1021,6 +1033,8 @@ function Site.IsTimeToFarm( bot )
return
true
end
if
bot
:
GetNetWorth
()
<
35000
then
return
true
end
return
false
end
...
...
@@ -1153,6 +1167,40 @@ Site.ConsiderIsTimeToFarm["npc_dota_hero_bloodseeker"] = function()
return
false
end
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_terrorblade"
]
=
function
()
local
bot
=
GetBot
()
local
botNetWorth
=
bot
:
GetNetWorth
()
if
DotaTime
()
>
9
*
60
and
(
bot
:
GetLevel
()
<
25
or
botNetWorth
<
20000
)
then
return
true
end
if
not
Site
.
IsHaveItem
(
bot
,
"item_black_king_bar"
)
and
botNetWorth
<
21000
then
if
Site
.
GetAroundAllyCount
(
bot
,
1100
)
<=
2
then
return
true
end
end
if
not
Site
.
IsHaveItem
(
bot
,
"item_satanic"
)
and
botNetWorth
<
25000
then
if
Site
.
GetAroundAllyCount
(
bot
,
1000
)
<=
1
then
return
true
end
end
return
false
end
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_bristleback"
]
=
function
()
local
bot
=
GetBot
()
...
...
@@ -1424,12 +1472,24 @@ Site.ConsiderIsTimeToFarm["npc_dota_hero_nevermore"] = function()
end
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_night_stalker"
]
=
function
()
return
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_bristleback"
]()
end
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_omniknight"
]
=
function
()
return
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_bristleback"
]()
end
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_obsidian_destroyer"
]
=
function
()
return
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_bristleback"
]()
end
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_ogre_magi"
]
=
function
()
return
Site
.
ConsiderIsTimeToFarm
[
"npc_dota_hero_bristleback"
]()
...
...
FunLib/aba_skill.lua
View file @
71e98103
...
...
@@ -58,12 +58,17 @@ X['sOnlyProjectileAbilityIndex'] = {
X
[
'sStunProjectileAbilityIndex'
]
=
{
[
"chaos_knight_chaos_bolt"
]
=
true
,
[
"skeleton_king_hellfire_blast"
]
=
true
,
[
"sven_storm_bolt"
]
=
true
,
[
"vengefulspirit_magic_missile"
]
=
true
,
[
"witch_doctor_paralyzing_cask"
]
=
true
,
[
"dragon_knight_dragon_tail"
]
=
true
,
[
"alchemist_unstable_concoction"
]
=
true
,
[
"brewmaster_earth_hurl_boulder"
]
=
true
,
[
"chaos_knight_chaos_bolt"
]
=
true
,
[
"dragon_knight_dragon_tail"
]
=
true
,
[
"gyrocopter_homing_missile"
]
=
true
,
[
"mud_golem_hurl_boulder"
]
=
true
,
[
"skeleton_king_hellfire_blast"
]
=
true
,
[
"sven_storm_bolt"
]
=
true
,
[
"tusk_snowball"
]
=
true
,
[
"vengefulspirit_magic_missile"
]
=
true
,
[
"witch_doctor_paralyzing_cask"
]
=
true
,
}
...
...
FunLib/jmz_func.lua
View file @
71e98103
...
...
@@ -2445,6 +2445,55 @@ function J.IsRealInvisible( bot )
end
function
J
.
ShouldDispelBuff
(
npcTarget
)
for
_
,
modifier
in
pairs
(
J
.
Buff
[
"dispellable_buffs"
]
)
do
if
npcTarget
:
HasModifier
(
modifier
)
then
return
true
end
end
return
false
end
function
J
.
ShouldDispelDebuff
(
npcTarget
)
if
npcTarget
:
IsSilenced
()
or
npcTarget
:
IsRooted
()
or
npcTarget
:
IsNightmared
()
then
return
true
end
for
_
,
modifier
in
pairs
(
J
.
Buff
[
"dispellable_debuffs"
]
)
do
if
npcTarget
:
HasModifier
(
modifier
)
then
return
true
end
end
return
false
end
function
J
.
ShouldDispelStrongDebuff
(
npcTarget
)
if
npcTarget
:
IsStunned
()
or
npcTarget
:
IsHexed
()
then
return
true
end
return
J
.
ShouldDispelDebuff
(
npcTarget
)
end
function
J
.
GetModifierTime
(
bot
,
sModifierName
)
...
...
ability_item_usage_generic.lua
View file @
71e98103
...
...
@@ -1512,8 +1512,11 @@ X.ConsiderItemDesire["item_cyclone"] = function( hItem )
then
if
botTarget
:
HasModifier
(
'modifier_teleporting'
)
or
botTarget
:
HasModifier
(
'modifier_abaddon_borrowed_time'
)
or
botTarget
:
HasModifier
(
"modifier_dazzle_shallow_grave"
)
or
botTarget
:
HasModifier
(
"modifier_oracle_false_promise_timer"
)
or
botTarget
:
HasModifier
(
"modifier_ursa_enrage"
)
or
botTarget
:
HasModifier
(
"modifier_item_satanic_unholy"
)
or
botTarget
:
HasModifier
(
"modifier_troll_warlord_battle_trance"
)
or
botTarget
:
IsChanneling
()
then
hEffectTarget
=
botTarget
...
...
@@ -3073,6 +3076,59 @@ X.ConsiderItemDesire["item_moon_shard"] = function( hItem )
end
X
.
ConsiderItemDesire
[
"item_meteor_hammer"
]
=
function
(
hItem
)
local
nCastRange
=
600
+
aetherRange
local
nRadius
=
400
local
sCastType
=
'ground'
local
nChannelTime
=
2
.
5
local
nDelayTime
=
nChannelTime
+
0
.
5
local
hEffectTarget
=
nil
local
sCastMotive
=
nil
local
nEnemyHeroesInRange
=
bot
:
GetNearbyHeroes
(
nCastRange
+
nRadius
,
true
,
BOT_MODE_NONE
)
if
J
.
IsGoingOnSomeone
(
bot
)
then
if
J
.
IsValidHero
(
botTarget
)
and
J
.
IsInRange
(
botTarget
,
bot
,
nCastRange
+
nRadius
)
and
botTarget
:
HasModifier
(
'modifier_obsidian_destroyer_astral_imprisonment_prison'
)
and
J
.
GetModifierTime
(
botTarget
,
'modifier_obsidian_destroyer_astral_imprisonment_prison'
)
<
nDelayTime
and
J
.
GetModifierTime
(
botTarget
,
'modifier_obsidian_destroyer_astral_imprisonment_prison'
)
>=
(
nDelayTime
-
0
.
5
)
then
local
hEffectTarget
=
J
.
GetCastLocation
(
bot
,
botTarget
,
nCastRange
,
nRadius
)
return
BOT_ACTION_DESIRE_HIGH
,
hEffectTarget
,
sCastType
,
sCastMotive
end
end
local
nTowerList
=
bot
:
GetNearbyTowers
(
990
,
true
)
local
nBarrackList
=
bot
:
GetNearbyBarracks
(
990
,
true
)
local
nEnemyAcient
=
GetAncient
(
GetOpposingTeam
()
)
local
hBuildingList
=
{
nTowerList
[
1
],
nBarrackList
[
1
],
nEnemyAcient
,
}
for
_
,
nBuilding
in
pairs
(
hBuildingList
)
do
if
J
.
IsValidBuilding
(
nBuilding
)
and
J
.
IsInRange
(
bot
,
nBuilding
,
nCastRange
+
nRadius
-
50
)
and
not
nBuilding
:
HasModifier
(
'modifier_fountain_glyph'
)
and
not
nBuilding
:
HasModifier
(
'modifier_invulnerable'
)
and
not
nBuilding
:
HasModifier
(
'modifier_backdoor_protection'
)
and
not
J
.
IsKeyWordUnit
(
"DOTA_Outpost"
,
nBuilding
)
and
#
nEnemyHeroesInRange
==
0
then
local
hEffectTarget
=
J
.
GetCastLocation
(
bot
,
nBuilding
,
nCastRange
,
nRadius
)
return
BOT_ACTION_DESIRE_HIGH
,
hEffectTarget
,
sCastType
,
sCastMotive
end
end
end
--死灵书
X
.
ConsiderItemDesire
[
"item_necronomicon"
]
=
function
(
hItem
)
...
...
@@ -4219,7 +4275,10 @@ X.ConsiderItemDesire["item_tpscroll"] = function( hItem )
or
(
bot
:
HasModifier
(
"modifier_item_armlet_unholy_strength"
)
)
or
(
bot
:
HasModifier
(
"modifier_kunkka_x_marks_the_spot"
)
)
or
(
bot
:
HasModifier
(
"modifier_sniper_assassinate"
)
)
or
(
bot
:
HasModifier
(
"modifier_disruptor_glimpse"
)
)
or
(
bot
:
HasModifier
(
"modifier_viper_nethertoxin"
)
)
or
(
bot
:
HasModifier
(
"modifier_disruptor_static_storm"
)
)
or
(
bot
:
HasModifier
(
"modifier_enigma_midnight_pulse_damage"
)
)
or
(
bot
:
HasModifier
(
"modifier_oracle_false_promise_timer"
)
and
J
.
GetModifierTime
(
bot
,
"modifier_oracle_false_promise_timer"
)
<=
3
.
2
)
or
(
bot
:
HasModifier
(
"modifier_jakiro_macropyre_burn"
)
and
J
.
GetModifierTime
(
bot
,
"modifier_jakiro_macropyre_burn"
)
>=
1
.
4
)
or
(
bot
:
HasModifier
(
"modifier_arc_warden_tempest_double"
)
and
bot
:
GetRemainingLifespan
()
<
3
.
3
)
...
...
@@ -5735,7 +5794,7 @@ local function UseGlyph()
if
GetGlyphCooldown
(
)
>
0
or
DotaTime
()
<
60
or
bot
~=
GetTeamMember
(
1
)
--
or bot ~= GetTeamMember( 1 )
then
return
end
...
...
hero_selection.lua
View file @
71e98103
...
...
@@ -174,6 +174,8 @@ local sUserKeyDir = Chat.GetUserKeyDir()
local
sHasDevelopmentHeroList
=
{
"npc_dota_hero_abaddon"
,
"npc_dota_hero_night_stalker"
,
"npc_dota_hero_obsidian_destroyer"
,
"npc_dota_hero_abyssal_underlord"
,
"npc_dota_hero_alchemist"
,
"npc_dota_hero_life_stealer"
,
...
...
@@ -234,6 +236,7 @@ local sHasDevelopmentHeroList = {
"npc_dota_hero_muerta"
,
"npc_dota_hero_visage"
,
'npc_dota_hero_venomancer'
,
"npc_dota_hero_terrorblade"
,
}
...
...
@@ -270,6 +273,7 @@ local sSecondList = {
"npc_dota_hero_bane"
,
"npc_dota_hero_abyssal_underlord"
,
"npc_dota_hero_visage"
,
"npc_dota_hero_terrorblade"
,
}
...
...
@@ -292,6 +296,7 @@ local sThirdList = {
"npc_dota_hero_axe"
,
"npc_dota_hero_slark"
,
"npc_dota_hero_juggernaut"
,
"npc_dota_hero_night_stalker"
,
}
local
sFourthList
=
{
...
...
@@ -322,6 +327,7 @@ local sFifthList = {
"npc_dota_hero_mirana"
,
"npc_dota_hero_life_stealer"
,
"npc_dota_hero_alchemist"
,
"npc_dota_hero_obsidian_destroyer"
,
}
---------------------------------------------------------
...
...
@@ -378,7 +384,7 @@ local sMageList = {
"npc_dota_hero_queenofpain"
,
"npc_dota_hero_disruptor"
,
'npc_dota_hero_venomancer'
,
"npc_dota_hero_obsidian_destroyer"
,
}
local
sCarryList
=
{
...
...
@@ -419,6 +425,9 @@ local sCarryList = {
"npc_dota_hero_naga_siren"
,
"npc_dota_hero_life_stealer"
,
"npc_dota_hero_muerta"
,
"npc_dota_hero_obsidian_destroyer"
,
"npc_dota_hero_terrorblade"
,
"npc_dota_hero_night_stalker"
,
}
...
...
@@ -464,6 +473,7 @@ local sMidList = {
"npc_dota_hero_viper"
,
"npc_dota_hero_muerta"
,
'npc_dota_hero_venomancer'
,
"npc_dota_hero_obsidian_destroyer"
,
}
...
...
item_purchase_generic.lua
View file @
71e98103
...
...
@@ -606,7 +606,7 @@ function ItemPurchaseThink()
--出售过度装备
if
currentTime
>
sell_time
+
0
.
5
and
(
bot
:
GetItemInSlot
(
6
)
~=
nil
or
bot
:
GetItemInSlot
(
7
)
~=
nil
or
bot
:
GetItemInSlot
(
8
)
~=
nil
)
and
(
bot
:
DistanceFromFountain
()
<=
100
or
bot
:
DistanceFromSecretShop
()
<=
100
)
and
(
bot
:
DistanceFromFountain
()
<=
100
or
bot
:
DistanceFromSecretShop
()
<=
100
or
GetGameMode
()
==
23
)
then
sell_time
=
currentTime
...
...
@@ -624,7 +624,10 @@ function ItemPurchaseThink()
--当有飞鞋时卖掉其他早期鞋子
if
currentTime
>
18
*
60
and
(
Item
.
HasItem
(
bot
,
"item_travel_boots"
)
or
Item
.
HasItem
(
bot
,
"item_travel_boots_2"
)
)
and
(
Item
.
HasItem
(
bot
,
"item_travel_boots"
)
or
Item
.
HasItem
(
bot
,
"item_travel_boots_2"
)
or
Item
.
HasItem
(
bot
,
"item_guardian_greaves"
)
or
Item
.
HasItem
(
bot
,
"item_boots_of_bearing"
)
)
then
for
i
=
1
,
#
Item
[
'tEarlyBoots'
]
do
...
...
mode_farm_generic.lua
View file @
71e98103
...
...
@@ -1142,6 +1142,11 @@ function X.CouldBlink(bot,nLocation)
local
maxBlinkDist
=
1199
;
local
blink
=
J
.
IsItemAvailable
(
"item_blink"
);
if
blink
==
nil
then
blink
=
J
.
IsItemAvailable
(
"item_overwhelming_blink"
)
end
if
blink
==
nil
then
blink
=
J
.
IsItemAvailable
(
"item_swift_blink"
)
end
if
blink
==
nil
then
blink
=
J
.
IsItemAvailable
(
"item_arcane_blink"
)
end
if
blink
==
nil
then
blink
=
J
.
IsItemAvailable
(
"item_fallen_sky"
)
end
if
botName
==
"npc_dota_hero_antimage"
then
blink
=
bot
:
GetAbilityByName
(
"antimage_blink"
);
...
...
@@ -1264,6 +1269,7 @@ function X.IsHighFarmer(bot)
or
botName
==
"npc_dota_hero_slark"
or
botName
==
"npc_dota_hero_naga_siren"
or
botName
==
"npc_dota_hero_legion_commander"
or
botName
==
"npc_dota_hero_obsidian_destroyer"
end
...
...
mode_laning_generic.lua
View file @
71e98103
...
...
@@ -39,6 +39,11 @@ function GetDesire()
return
0
.
228
end
if
botLV
<=
25
then
return
0
.
203
end
return
0
end
...
...
mode_team_roam_generic.lua
View file @
71e98103
...
...
@@ -1594,6 +1594,7 @@ function X.IsSpecialCarry(bot)
[
"npc_dota_hero_mirana"
]
=
true
,
[
"npc_dota_hero_naga_siren"
]
=
true
,
[
"npc_dota_hero_nevermore"
]
=
true
,
[
"npc_dota_hero_night_stalker"
]
=
true
,
[
"npc_dota_hero_ogre_magi"
]
=
true
,
[
"npc_dota_hero_omniknight"
]
=
true
,
[
"npc_dota_hero_phantom_assassin"
]
=
true
,
...
...
@@ -1607,8 +1608,11 @@ function X.IsSpecialCarry(bot)
[
"npc_dota_hero_sniper"
]
=
true
,
[
"npc_dota_hero_sven"
]
=
true
,
[
"npc_dota_hero_templar_assassin"
]
=
true
,
[
"npc_dota_hero_terrorblade"
]
=
true
,
[
"npc_dota_hero_tidehunter"
]
=
true
,
[
"npc_dota_hero_viper"
]
=
true
,
[
"npc_dota_hero_muerta"
]
=
true
,
[
"npc_dota_hero_obsidian_destroyer"
]
=
true
,
}
return
tSpecialCarryList
[
botName
]
==
true
...
...
@@ -1639,7 +1643,7 @@ function X.IsSpecialSupport(bot)
[
"npc_dota_hero_warlock"
]
=
true
,
[
"npc_dota_hero_windrunner"
]
=
true
,
[
"npc_dota_hero_witch_doctor"
]
=
true
,
[
"npc_dota_hero_zuus"
]
=
true
,
[
"npc_dota_hero_zuus"
]
=
true
,
[
"npc_dota_hero_abaddon"
]
=
true
,
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment