djuga228,
Берешь делаешь в abilities_custom.txt в нужном скилле на "OnSpellStart" вызов функции "FunctionName" из скрипта луа, в скрипте делаешь то, что тебе посоветовали, щас немного объясню строки:
Если что не понятно - не стесняйся, спрашивай еще раз, но формулируй вопрос корректно и конкретно. А вообще - советую для начала поковырять что-то попроще, ибо заметно, что ты сразу схватился за следующую ступеньку, не пройдя прошлую 
Берешь делаешь в abilities_custom.txt в нужном скилле на "OnSpellStart" вызов функции "FunctionName" из скрипта луа, в скрипте делаешь то, что тебе посоветовали, щас немного объясню строки:
Код:
function FunctionName(keys) -- собсна, сама ф-ция
local caster = keys.caster -- берем кастера скилла и суем в переменную
local newunit1 = CreateUnitByName(имя_юнита + другие значения, загугли) -- [url]https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API/Global.CreateUnitByName[/url] || Короче эта строка создаст юнита и в данной функции впихнет его в переменную.
там нужно [i]( szUnitName, vLocation, bFindClearSpace, hNPCOwner, hUnitOwner, iTeamNumber ). [i]hNPCOwner, hUnitOwner можно сделать nil - тогда юнит принадлежать никому не будет. [i]bFindClearSpace делай 'true' - не даст юниту застрять при спавне.
[/i][/i][/i]UnitName - пишешь имя юнита в " ", можно использовать юнитов из npc_custom_units.txt. локацию указываешь как вектор.
newunit1:AddAbility(название_способности) -- ":" - что-то вроде присваивания. Здесь мы добавляем юниту скилл.
newunit1:GetAbilityByIndex(номер_способности_юнита):SetLevel(caster:GetAbilityByIndex(номер_способности_героя):GetLevel()) Берем Индекс Скилла Юнита:Меняем Уровень Скилла на тот, до которого прокачан выбранный скилл у героя.
end
Последнее редактирование модератором: