жаргон не знаю ) что значит это? " ссылки на репозитории"Первый закреп в гайдах чекни, там есть ссылки на репозитории.
Изучай исходники сделанных абилок на здоровье.
жаргон не знаю ) что значит это? " ссылки на репозитории"Первый закреп в гайдах чекни, там есть ссылки на репозитории.
Изучай исходники сделанных абилок на здоровье.
Если нужно понизить статус резист цели.Кто-нибудь знает как снизить сопротивление эффектам?
Просто я попытался и ничего не вышло, хотя если я наоборот даю статус резист всё выдаётся. Даже примеры нигде не нашёл, может такой механики во все нет?
Но они просто перестали идти. А мне нужно чтобы они шли к 1 точке не агрясь на атаки по ним или на кого-то возле них"AttackRange" "0" // Range within a target can be attacked.
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_NONE"
"AttackCapabilities" "DOTA_UNIT_CAP_NO_ATTACK"
// Dota Heroes File
"DOTAAbilities"
{
"Version" "1"
//=================================================================================================================
// TOWER
//=================================================================================================================
"place_tower"
{
// Все способности контроля требуют базовый класс, и так как это класс не просто изменяет старую абилку, он должен быть "data_driven"
"BaseClass" "ability_datadriven"
// Мы запрашиваем blah_POINT, для получение параметра "Target" для Lua функции, и blah_AOE для отображения AOE, когда размещаем башню
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_POINT | DOTA_ABILITY_BEHAVIOR_AOE"
// Этот кусок не сильно важен, но делает тесты немного легче
"AbilityTextureName" "axe_battle_hunger"
"Ability Cast Range" "0"
"Ability Cast Point" "0"
"Damage" "30"
// А вот этот важен. С его помощью задаем радиус AOE. Этот радиус будет отображаться в игре. Вы должны назвать так же, как PLACED_BUILDING_RADIUS в сценарии Lua для соответствия.
"AOERadius" "45"
// Когда мы начинаем заклинание (т.е. после того как мы нажали расположение где хотим построить)
"OnSpellStart"
{
// Мы хотим запустить Lua скрипт
"RunScript"
{
// Файл скрипта, который мы вызваем
"ScriptFile" "scripts/vscripts/custom_abilities.lua"
// Специфичная функция, которая нам нужна
"Function" "placeBuilding"
// Дополнительная информацию которую мы отправляем в файл Lua
"Target" "POINT"
}
}
}
}
-- Константу пишем тут, чтобы была на виду
PLACED_BUILDING_RADIUS = 45.0;
function placeBuilding(keys)
-- Нам потребуется несколько переменных, они должны быть понятны
blocking_counter = 0
attempt_place_location = keys.target_points[1]
-- Как же сложно! В основном, эта строка находит все объекты внутри PLACED_BUILDING_RADIUS от того, где мы хотим поставить башню
-- Цикл для подсчета
for _,thing in pairs(Entities:FindAllInSphere(GetGroundPosition(attempt_place_location, nil), PLACED_BUILDING_RADIUS) ) do
blocking_counter = blocking_counter + 1
end
print(blocking_counter .. " blockers")
-- Если есть объекты, которые мешают размещению башни, тогда не строим здесь, иначе - размещаем
if( blocking_counter < 1) then
tower = CreateUnitByName("npc_dota_building_homebase", keys.target_points[1], false, nil, nil,keys.caster:GetPlayerOwner():GetTeam() )
end
end
// Units File
"DOTAUnits"
{
"Version" "1"
"npc_dota_building_homebase"
{
// Что мы ходим видеть - моделька
"Model" "models/buildings/building_plain_reference.vmdl"
"BaseClass" "npc_dota_creature"
// Насколько большой масштаб. Относится к PLACED_BUILDING_RADIUS
"BoundsHullName" "DOTA_HULL_SIZE_HUGE"
"AttackCapabilities" "DOTA_UNIT_CAP_RANGED_ATTACK"
"AttackDamageMin" "30" // Damage range min.
"AttackDamageMax" "30" // Damage range max.
"AttackRate" "1.6" // Speed of attack.
"AttackAnimationPoint" "0.4" // Normalized time in animation cycle to attack.
"AttackAcquisitionRange" "500" // Range within a target can be acquired.
"AttackRange" "500" // Range within a target can be attacked.
"ProjectileModel" "particles/neutral_fx/gnoll_base_attack.vpcf" // Particle system model for projectile.
"ProjectileSpeed" "1500" // Speed of projectile.
}
}
Так я же создал и описал файл в item.text, получается, что он должен просто давать характеристики, судя по примерам из доты, скрипт файл подключаются только в случае артефактов с использованием?? или я что-то не так понял. Если же я не прав, то можно пример, что должно быть в script файле, к которому мы указываем путь?Забыл указать путь к луа файлу предметаКод:"ScriptFile" "path/to/item_claw.lua"
Есть ли пример такого кода? Просто мне всё никак не удаётся найти, мне нужно чтобы он просто передавал характеристики, и не более.Предмет не будет давать никаких характеристик без кода, будет просто пустышка
а у меня кв нету вроде я баребонс поставилУ тебя ошибка где-то в кв файлах, можешь их временно переименовать чтобы найти в каком именно файле.
По скрину видно что это касается файла абилок
Потом удаляя чать файла ты можешь узнать в какой части и тд
Точно такая же проблема.Ошибка парсинга файла "....\modmaker.xml" в строке 6. Ошибка: Не могу загрузить css файл "...\hero_splash.vcss_c".
Наверное потому что у тебя нету файла hero_splash в panorama\styles?
можно на дд, но это сраньКак создать пассивку с кд, без Lua? Суть её в том, чтобы при атаке она наносила крит. Создать-то создал, "AbilityCooldown" выставил, а вот в кд она не уходит.
"AbilitySpecial"{ }
"Modifiers"
{
"modifier_coup_de_grace_datadriven"
{
"Passive" "1"
"IsHidden" "1"
"OnAttackStart"
{
"RemoveModifier"
{
"ModifierName" "modifier_coup_de_grace_crit_datadriven"
"Target" "CASTER"
}
"Random"
{
"Chance" "%crit_chance"
"PseudoRandom" "DOTA_PSEUDO_RANDOM_PHANTOMASSASSIN_CRIT"
"OnSuccess"
{
"ApplyModifier"
{
"ModifierName" "modifier_coup_de_grace_crit_datadriven"
"Target" "CASTER"
}
}
}
}
}
"modifier_coup_de_grace_crit_datadriven"
{
"IsHidden" "1"
"Properties"
{
"MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE" "%crit_bonus"
}
"OnAttackLanded"
{
"RemoveModifier"
{
"ModifierName" "modifier_coup_de_grace_crit_datadriven"
"Target" "CASTER"
}
"FireEffect"
{
"EffectName" "particles/units/heroes/hero_phantom_assassin/phantom_assassin_crit_impact.vpcf"
"EffectAttachType" "start_at_customorigin"
"ControlPointEntities"
{
"TARGET" "follow_origin"
"TARGET" "follow_origin"
}
}
"FireSound"
{
"EffectName" "Hero_PhantomAssassin.CoupDeGrace"
"Target" "TARGET"
}
}
}
}