Простые вопросы #3

  • Автор темы Автор темы ZLOY
  • Дата начала Дата начала
В разделе "Гайды", есть закреплённые темы и он там первый
 
Кто-нибудь знает как снизить сопротивление эффектам?
Просто я попытался и ничего не вышло, хотя если я наоборот даю статус резист всё выдаётся. Даже примеры нигде не нашёл, может такой механики во все нет?
 
Кто-нибудь знает как снизить сопротивление эффектам?
Просто я попытался и ничего не вышло, хотя если я наоборот даю статус резист всё выдаётся. Даже примеры нигде не нашёл, может такой механики во все нет?
Если нужно понизить статус резист цели.
MODIFIER_PROPERTY_STATUS_RESISTANCE_STACKING
GetModifierStatusResistanceStacking

Если нужно увеличить длительность эффектов которые накладывает цель (как ульта рубика)
MODIFIER_PROPERTY_STATUS_RESISTANCE_CASTER
GetModifierStatusResistanceCaster
 
модификатор MODIFIER_PROPERTY_ATTACKSPEED_BASE_OVERRIDE
Что он ждет? скорость атаки, которая от 100 и выше, или базовую скорость атаки - время одной атаки?
 
Как сделать так что-бы крипы не агрились ни на кого
 
"AttackRange" "0" // Range within a target can be attacked.
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_NONE"
Но они просто перестали идти. А мне нужно чтобы они шли к 1 точке не агрясь на атаки по ним или на кого-то возле них

UPD: Уже не надо сам нашел, но спасибо за помощь.
Lua:
"AttackCapabilities"        "DOTA_UNIT_CAP_NO_ATTACK"
Если указать так в npc_units_custom.txt тогда они не будут реагировать ни на кого
 
Последнее редактирование:
Помогите опять пожалуйста.

Создал башню по этому гайду. Все работает но нельзя выделить башню.
Так-же в коментах гайда нашел эти 2 сообщения, но так и не монял как это сделать.
Вопрос - Можно ли как-то это исправить?

Код:

Код:
// 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"
      } 
    }
  }
}
Lua:
 -- Константу пишем тут, чтобы была на виду
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.            
    }
}
 
1658241666951.png
1658241685149.png
Почему при запуске в доте не отображена цена и характеристики предмета, делал всё по шаблону из вещей доты из item.txt?
 
Забыл указать путь к луа файлу предмета
Код:
"ScriptFile"    "path/to/item_claw.lua"
 
Забыл указать путь к луа файлу предмета
Код:
"ScriptFile"    "path/to/item_claw.lua"
Так я же создал и описал файл в item.text, получается, что он должен просто давать характеристики, судя по примерам из доты, скрипт файл подключаются только в случае артефактов с использованием?? или я что-то не так понял. Если же я не прав, то можно пример, что должно быть в script файле, к которому мы указываем путь?
 
Предмет не будет давать никаких характеристик без кода, будет просто пустышка
 
Предмет не будет давать никаких характеристик без кода, будет просто пустышка
Есть ли пример такого кода? Просто мне всё никак не удаётся найти, мне нужно чтобы он просто передавал характеристики, и не более.
 
Гайс, как это пофиксить?
 

Вложения

  • 1659011634165.png
    1659011634165.png
    37.5 KB · Просмотры: 26
Гайс, как это пофиксить?
У тебя ошибка где-то в кв файлах, можешь их временно переименовать чтобы найти в каком именно файле.
По скрину видно что это касается файла абилок
Потом удаляя чать файла ты можешь узнать в какой части и тд
 
У тебя ошибка где-то в кв файлах, можешь их временно переименовать чтобы найти в каком именно файле.
По скрину видно что это касается файла абилок
Потом удаляя чать файла ты можешь узнать в какой части и тд
а у меня кв нету вроде я баребонс поставил
 
Как создать пассивку с кд, без Lua? Суть её в том, чтобы при атаке она наносила крит. Создать-то создал, "AbilityCooldown" выставил, а вот в кд она не уходит.
 
Ошибка парсинга файла "....\modmaker.xml" в строке 6. Ошибка: Не могу загрузить css файл "...\hero_splash.vcss_c".
Наверное потому что у тебя нету файла hero_splash в panorama\styles?
Точно такая же проблема.
Я несколько раз переустанавливал доту, проверял наличие файлов. Всё ок, но hero_splash не имеется.
Где его можно восстановить/скачать?
 
Как создать пассивку с кд, без 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"
}
}
}
}
 
Реклама: