Commit 71e98103 authored by JoyJ's avatar JoyJ

updates from jodyjmaulana/aba-update

parent f2f0e0bf
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -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
......@@ -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 )
--加入信使背包会更好
......
......@@ -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,
......
......@@ -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"]()
......
......@@ -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,
}
......
......@@ -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 )
......
......@@ -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
......
......@@ -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",
}
......
......@@ -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
......
......@@ -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
......
......@@ -39,6 +39,11 @@ function GetDesire()
return 0.228
end
if botLV <= 25
then
return 0.203
end
return 0
end
......
......@@ -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,
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment