Надо писать с нуля абилкуУмоляю, помогите!!
Никак не получается сделать чтобы пассивка и ульта манки кинга работали на крипов.
Надо писать с нуля абилкуУмоляю, помогите!!
Никак не получается сделать чтобы пассивка и ульта манки кинга работали на крипов.
"shadow_master_agility_of_shadows"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilityTextureName" "custom\shadow_master_agility_of_shadows"
"AbilityType" "DOTA_ABILITY_TYPE_ULTIMATE"
"MaxLevel" "1"
"RequiredLevel" "0"
"LevelsBetweenUpgrades" "0"
"precache"
{
"particle" "particles/status_fx/status_effect_gods_strength.vpcf"
}
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"duration" "1"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_attack_speed" "3"
}
"03"
{
"var_type" "FIELD_INTEGER"
"damage_reduction" "40"
}
"04"
{
"var_type" "FIELD_INTEGER"
"armor_bonus" "15"
}
"05"
{
"var_type" "FIELD_INTEGER"
"chance" "10"
}
}
"Modifiers"
{
"modifier_agility_of_shadows"
{
"Passive" "1"
"IsHidden" "1"
"OnAttacked"
{
"Random"
{
"Chance" "%chance"
"OnSuccess"
{
"RunScript"
{
"ScriptFile" "lua_abilities\agilityofshadows.lua"
"Function" "ApplyBuffs"
}
}
}
}
}
"modifier_art_of_shadows_buff"
{
"IsBuff" "1"
"IsPurgable" "1"
"EffectName" "particles/status_fx/status_effect_gods_strength.vpcf"
"EffectAttachType" "follow_origin"
"Properties"
{
"MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE" "%bonus_attack_speed"
"MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE" "%damage_reduction"
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" "%armor_bonus"
}
}
}
}
"crit_aura"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_ALL"
"AbilityTextureName" "phantom_assassin_coup_de_grace"
"AbilityCastRange" "%radius"
"precache"
{
"particle" "particles/units/heroes/hero_phantom_assassin/phantom_assassin_crit_impact.vpcf"
}
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"crit_bonus" "125"
}
"02"
{
"var_type" "FIELD_INTEGER"
"crit_chance" "100"
}
"03"
{
"var_type" "FIELD_INTEGER"
"radius" "900"
}
}
"Modifiers"
{
"Aura_Modifier"
{
"Passive" "1"
"IsHidden" "1"
"IsBuff" "1"
"Aura" "modifier_coup_de_grace_passive"
"Aura_Radius" "%radius"
"Aura_Teams" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
"Aura_Types" "DOTA_UNIT_TARGET_ALL"
}
"modifier_coup_de_grace_passive"
{
"IsHidden" "1"
"OnAttackStart"
{
"Random"
{
"Chance" "%crit_chance"
"PseudoRandom" "DOTA_PSEUDO_RANDOM_PHANTOMASSASSIN_CRIT"
"OnSuccess"
{
"ApplyModifier"
{
"ModifierName" "coup_de_grace_crit"
"Target" "ATTACKER"
}
}
}
}
}
"coup_de_grace_crit"
{
"IsHidden" "1"
"Properties"
{
"MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE" "%crit_bonus"
}
"OnAttackLanded"
{
"RemoveModifier"
{
"ModifierName" "coup_de_grace_crit"
"Target" "ATTACKER"
}
}
}
}
}
function ApplyBuffs(event)
local caster = event.caster
local ability = event.ability
if caster:passivesDisabled() then
return
end
local duration = ability:GetSpecialValueFor("duration")
ability:ApplyDataDrivenModifier(caster, caster, "modifier_art_of_shadows_buff", {duration = duration})
local abiShadow = caster:FindAbilityByName("shadow_master_shadow")
if abiShadow and abiShadow.shadow and IsValidEntity(abiShadow.shadow) and abiShadow.shadow:IsAlive() then
ability:ApplyDataDrivenModifier(caster, abiShadow.shadow, "modifier_art_of_shadows_buff", {duration = duration})
end
local abiArt = caster:FindAbilityByName("shadow_master_art_of_shadows")
if abiArt and abiArt.shadows then
for _,unit in pairs(abiArt.shadows) do
if IsValidEntity(unit) and unit:IsAlive() then
ability:ApplyDataDrivenModifier(caster, unit, "modifier_art_of_shadows_buff", {duration = duration})
end
end
end
end
function Picked (event)
local heroentity = EntIndexToHScript(event.heroindex)
local ability = heroentity:FindAbilityByName("shadow_master_agility_of_shadows")
ability:SetLevel(1)
end
"filler_ability"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_ALL"
"AbilityTextureName" ""
"AbilityCastRange" "%radius"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"duration" "1"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_attack_speed" "3"
}
"03"
{
"var_type" "FIELD_INTEGER"
"damage_reduction" "40"
}
"04"
{
"var_type" "FIELD_INTEGER"
"armor_bonus" "15"
}
"05"
{
"var_type" "FIELD_INTEGER"
"chance" "10"
}
"06"
{
"var_type" "FIELD_INTEGER"
"radius" "900"
}
}
"Modifiers"
{
"Aura_Modifier"
{
"Passive" "1"
"IsHidden" "1"
"IsBuff" "1"
"Aura" "modifier_agility_of_shadows"
"Aura_Radius" "%radius"
"Aura_Teams" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
"Aura_Types" "DOTA_UNIT_TARGET_ALL"
}
"modifier_agility_of_shadows"
{
"Passive" "1"
"IsHidden" "1"
"OnAttacked"
{
"Random"
{
"Chance" "%chance"
"OnSuccess"
{
"RunScript"
{
"ScriptFile" "abilities\agilityofshadows.lua"
"Function" "ApplyBuffs"
}
}
}
}
}
"modifier_art_of_shadows_buff"
{
"IsBuff" "1"
"IsPurgable" "1"
"EffectName" "particles/status_fx/status_effect_gods_strength.vpcf"
"EffectAttachType" "follow_origin"
"Properties"
{
"MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE" "%bonus_attack_speed"
"MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE" "%damage_reduction"
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" "%armor_bonus"
}
}
}
}
ЛулНарод, хелпа нужна, как сделать чтобы юнита нельзя было атаковать через автоатаку и обычную (как 2 скилл дарк виллоу), но он смог получать урон
попробуюЧувак dEN5 пожалуйста прячь весь код специально в
Код:Например как здесь
"sniper_ms"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"Modifiers"
{
"modifier_give_ms"
{
"Passive" "1"
"IsHidden" "1"
"ThinkInterval" "0.01"
"OnIntervalThink"
{
"RunScript"
{
"ScriptFile" "newabilities/sniper.lua"
"Function" "GiveMaxSpeed"
}
}
}
}
}
LinkLuaModifier( "modifier_movespeed_cap", "modifiers/modifier_movespeed_cap.lua" ,LUA_MODIFIER_MOTION_NONE )
function GiveMaxSpeed( keys )
local caster = keys.caster
if caster:HasModifier("modifier_movespeed_cap") == false then
caster:AddNewModifier(caster, nil, "modifier_movespeed_cap", {})
end
end
modifier_movespeed_cap = class({})
function modifier_movespeed_cap:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_MOVESPEED_MAX,
MODIFIER_PROPERTY_MOVESPEED_LIMIT,
}
return funcs
end
function modifier_movespeed_cap:GetModifierMoveSpeed_Max( params )
return 1000
end
function modifier_movespeed_cap:GetModifierMoveSpeed_Limit( params )
return 1000
end
function modifier_movespeed_cap:IsHidden()
return true
end
Нахрена смешивать дд с луа в такой херне? Зачем вообще тут абилка, если можно просто вешать модификатор в коде. Проверка на модификатор каждые 1 сотую секунды, мдаНе работает LIBRARY modifier_movespeed_cap.lua
C++:"sniper_ms" { "BaseClass" "ability_datadriven" "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE" "Modifiers" { "modifier_give_ms" { "Passive" "1" "IsHidden" "1" "ThinkInterval" "0.01" "OnIntervalThink" { "RunScript" { "ScriptFile" "newabilities/sniper.lua" "Function" "GiveMaxSpeed" } } } } }
Lua:LinkLuaModifier( "modifier_movespeed_cap", "modifiers/modifier_movespeed_cap.lua" ,LUA_MODIFIER_MOTION_NONE ) function GiveMaxSpeed( keys ) local caster = keys.caster if caster:HasModifier("modifier_movespeed_cap") == false then caster:AddNewModifier(caster, nil, "modifier_movespeed_cap", {}) end end
Lua:modifier_movespeed_cap = class({}) function modifier_movespeed_cap:DeclareFunctions() local funcs = { MODIFIER_PROPERTY_MOVESPEED_MAX, MODIFIER_PROPERTY_MOVESPEED_LIMIT, } return funcs end function modifier_movespeed_cap:GetModifierMoveSpeed_Max( params ) return 1000 end function modifier_movespeed_cap:GetModifierMoveSpeed_Limit( params ) return 1000 end function modifier_movespeed_cap:IsHidden() return true end
"tusk_flying"
{
"BaseClass" "ability_datadriven"
"AbilityTextureName" "icon"
"MaxLevel" "1"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitiUnitTargetType" "DOTA_UNIT_TARGET_HERO"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_BOTH"
"RequiredLevel" "15"
"precache"
{
"particle" "particles/units/heroes/hero_morphling/morphling_waveform.vpcf"
"particle" "particles/units/heroes/hero_morphling/morphling_waveform_wave_1.vpcf"
"particle" "particles/units/heroes/hero_morphling/morphling_waveform_wave_2.vpcf"
"soundfile" "sounds/weapons/hero/bloodseeker/rupture_cast.vsnd"
}
"OnSpellStart"
{
"ApplyModifier"
{
"ModifierName" "modifier_fly"
"Target" "CASTER"
}
}
"Modifiers"
{
"modifier_fly"
{
"Passive" "1"
"IsHidden" "0"
"OnCreated"
{
"AttachEffect"
{
"EffectName" "particles/units/heroes/hero_morphling/morphling_waveform.vpcf"
"EffectAttachType" "follow_origin"
"Target" "CASTER"
}
}
"States"
{
"MODIFIER_STATE_FLYING" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}
}
}
И со SpellDispellableType та же херняКак на js получить значение SpellImmunityType для способности? Нужной функции у Abilities я не нашел.
Немного почистил код и починилКак прикрепить эффект, у меня есть пассивная способность, но когда я прокачиваю свою способность, эффект остается на месте. Он не следует за героем или проще говоря, он не прикреплен к герою
Код:"tusk_flying" { "BaseClass" "ability_datadriven" "AbilityTextureName" "icon" "MaxLevel" "1" "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE" "AbilitiUnitTargetType" "DOTA_UNIT_TARGET_HERO" "AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_BOTH" "RequiredLevel" "15" "precache" { "particle" "particles/units/heroes/hero_morphling/morphling_waveform.vpcf" "particle" "particles/units/heroes/hero_morphling/morphling_waveform_wave_1.vpcf" "particle" "particles/units/heroes/hero_morphling/morphling_waveform_wave_2.vpcf" "soundfile" "sounds/weapons/hero/bloodseeker/rupture_cast.vsnd" } "OnSpellStart" { "ApplyModifier" { "ModifierName" "modifier_fly" "Target" "CASTER" } } "Modifiers" { "modifier_fly" { "Passive" "1" "IsHidden" "0" "OnCreated" { "AttachEffect" { "EffectName" "particles/units/heroes/hero_morphling/morphling_waveform.vpcf" "EffectAttachType" "follow_origin" "Target" "CASTER" } } "States" { "MODIFIER_STATE_FLYING" "MODIFIER_STATE_VALUE_ENABLED" } } } } }
"tusk_flying"
{
"BaseClass" "ability_datadriven"
"AbilityTextureName" "icon"
"MaxLevel" "1"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"RequiredLevel" "15"
"precache"
{
"particle" "particles/units/heroes/hero_morphling/morphling_waveform.vpcf"
}
"Modifiers"
{
"modifier_fly"
{
"Passive" "1"
"EffectName" "particles/units/heroes/hero_morphling/morphling_waveform.vpcf"
"EffectAttachType" "follow_origin"
"States"
{
"MODIFIER_STATE_FLYING" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}
}
}
OnUpgradeсвап способности при прокачке как сделать ? заранее спасибо !
могу помочь вотКто знает когда герой, умирает то около него спавниться юнит как такое делать?
И ещё как сделать это из переключаемой?