CustomGames.ru - Dota 2 пользовательские игры

[Гайд] Как создать кастомного юнита в Valve Hammer Editor (01.06.2016 Fixed)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Как создать юнита и увидеть его в игре?

Идем в папку вашего проекта и находим файл npc_units_custom.txt

Если не знаете где это файл находится, прочитайте: https://customgames.ru/forum/index.php?topic=940.0

Структура юнита в файле npc_units_custom.txt:
Код
1.	"human_footman" //имя юнита
2. {
3.         // General
4.         //----------------------------------------------------------------
5.         "BaseClass"             "npc_dota_creature" //базовый класс
6.         "Model"                 "models/heroes/dragon_knight/dragon_knight.vmdl" //модель
7.         "ModelScale"            "0.8" //размер модели
8.         "Level"                 "2" //уровень
9.         "HealthBarOffset"       "140" //насколько высоко будет хп бар
10.         "HasInventory"          "1" //имеет ли инвентарь
11.        //Дальше - смотрите по гайду)
12.         // Abilities
13.         //----------------------------------------------------------------
14.         "Ability1"              "human_defend"
15.         "Ability2"              "human_backpack"
16.        
17.         // Armor
18.         //----------------------------------------------------------------
19.         "ArmorPhysical"         "2"
20.         "MagicalResistance"     "0"
21.        
22.         // Attack
23.         //----------------------------------------------------------------
24.         "AttackCapabilities"    "DOTA_UNIT_CAP_MELEE_ATTACK"
25.         "AttackDamageType"      "DAMAGE_TYPE_ArmorPhysical"
26.         "AttackDamageMin"       "12.0"
27.         "AttackDamageMax"       "13.0"
28.         "AttackRate"            "1.35"
29.         "AttackAnimationPoint"  "0.5"
30.         "AttackAcquisitionRange" "500"
31.         "AttackRange"           "90"
32.        
33.         // Bounty
34.         //----------------------------------------------------------------
35.         "BountyGoldMin"         "26.0"
36.         "BountyGoldMax"         "38.0"
37.        
38.         // Bounds
39.         //----------------------------------------------------------------
40.         "BoundsHullName"        "DOTA_HULL_SIZE_HERO"
41.         "RingRadius"            "70"
42.        
43.         // Movement
44.         //----------------------------------------------------------------
45.         "MovementCapabilities"  "DOTA_UNIT_CAP_MOVE_GROUND"
46.         "MovementSpeed"         "270"
47.         "MovementTurnRate"      "0.6"
48.        
49.         // Status
50.         //----------------------------------------------------------------
51.         "StatusHealth"          "420"
52.         "StatusHealthRegen"     "0.25"
53.         "StatusMana"            "0"
54.         "StatusManaRegen"       "0"
55.        
56.         // Vision
57.         //----------------------------------------------------------------
58.         "VisionDaytimeRange"    "1400"
59.         "VisionNighttimeRange"  "800"
60.        
61.         // Team
62.         //----------------------------------------------------------------
63.         "TeamName"              "DOTA_TEAM_NEUTRALS"
64.         "CombatClassAttack"     "DOTA_COMBAT_CLASS_ATTACK_BASIC"
65.         "CombatClassDefend"     "DOTA_COMBAT_CLASS_DEFEND_STRONG"
66.         "UnitRelationShipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
67.        
68.         // Creature Data
69.         //----------------------------------------------------------------
70.         "Creature"
71.         {
72.                 "DisableClumpingBehavior"       "1"
73.                 "AttachWearables"
74.                 {
75.                         "Wearable1" { "ItemDef" "63" }
76.                         "Wearable2" { "ItemDef" "64" }
77.                         "Wearable3" { "ItemDef" "65" }
78.                         "Wearable4" { "ItemDef" "66" }
79.                         "Wearable5" { "ItemDef" "67" }
80.                         "Wearable6" { "ItemDef" "68" }
81.                 }
82.         }
83. }




Базовые классы:   

•   npc_dota_creature - существо
Самый основной и наиболее часто применяемый класс. Этим классом можно обозначить любого юнита. Как только мы выбрали этот тип юнита, нам становится доступен блок “Creature”, значение которого я объясню ниже. Ещё этот класс связан с “DOTA_UNIT_TARGET_BASIC” в целевых спеллах (способностях).
Есть один ньюанс: все способности подобного юнита после его создания будут автоматически прокачены до максимального уровня, если это возможно. (Есть лимит и он заключается в формуле: Уровень*2 существа, означает что Существо 1 уровня автоматически прокачает все скиллы до 2 уровня). Этого конечно можно избежать, выставив lua-скрипт.

Если говорить проще, когда вы пишете что это существо (creature) то это превращает энтити в юнита, который может двигаться, бить, использовать способности и тому подобное. Если делаете юнита или героя - это всегда creature.

•   npc_dota_building - здание
Связано с “DOTA_UNIT_TARGET_BUILDING”, этот класс может быть полезен в различных ситуациях.
У этого класса есть некоторые свойства, над которыми мы не имеем контроля.
•   Неуязвимость по умолчанию. Очень раздражающе, но вопреки всему неуязвимость можно убрать через lua. building_handle:RemoveModifierByName("modifier_invulnerable").   
Здание всегда видно даже через туман войны. Очень проблематично, поскольку в играх типа castle_fight, противник может проследить какие здания вы построили. Соответственно создатели карт используют в таких проектах класс npc_dota_creature даже для зданий.
•      Никакого визуального поворота. Здание не может быть вообще повернуто.

   
Уровень
Код
	"Level"                        "32"

Можно легко изменить через lua-скрипт.
Есть одна особенность у юнита, позволяющая использовать уровень юнитов себе на пользу и даже улучшать их. Об этом ниже.

Модель юнита и её размер
Код
"Model"                        "models/heroes/dragon_knight/dragon_knight.vmdl"
"ModelSize"                    "0.8"
Asset-browser позволяет найти модель юнита, а его размер корректируется вторым параметром. Если не указан размер, будет взят стандарт: 1.0
Существа, которые используют недействительные модели, будут «голыми» пока мы не наденем на них одежду. Подробнее ниже.


Иконки на миникарте
Код
"MinimapIcon"               "minimap_candybucket"
"MinimapIconSize"           "1000"
Покажет юнита на миникарте вот так:
В доте2 есть по стандарту много иконок для миникарты, можете посмотреть в ассет браузере minimap_ vmats.
Поняли, что можно будет для каждого юнита сделать разные иконки и импортировать в карту?)

Unit Label
"UnitLabel"                    "healing_ward"
Здесь может быть любое имя, это очень удобно через lua-скрипт получать его label-метку используя GetUnitLabel(). Допустим у вас на карте есть жуки, которые грызут  любого, кто к ним близко подойдет.
И чтобы не вводить кучу дополнительных проверок, просто проверяете на метку:
Код
if unit:GetUnitLabel() == "Juk" then ваши действия
end

Boolean Values and Flags, значения типа true
Код
"HasInventory"                "1" //есть ли инвентарь
Ассоциативные lua-функции: HasInventory() и SetHasInventory(bool)
Заметка: SetHasInventory(true) не будет работать на юнитах, у которых заранее было выставлено "HasInventory" "1" .


Код
"ConsideredHero"        "1"
"DOTA_UNIT_TARGET_FLAG_NOT_CREEP_HERO" флаг из датадривен системы. Если стоит 1, то дает вот так хп бар юниту:
 


Код
"IsAncient"                    "1" //эншент ли?
Ассоциативная lua функция: IsAncient()
"DOTA_UNIT_TARGET_FLAG_NOT_ANCIENTS" флаг датадривен системы.


Код
"IsNeutralUnitType"            "1" //нейтрал ли?
Ассоциативная lua функция: IsNeutralUnitType()


Код
"CanBeDominated"               "0"
Создавалось в доте, чтобы определить можно ли подчинить юнита через Helm of Dominator.
Можно кстати создать функцию, которая считывает данный параметр.


Код
"AutoAttacksByDefault"         "0" //атакует ли сам?
Игнорирует врагов рядом, сам не нападает (если 1). В доте используется на фамильярах висажа.


Код
"WakesNeutrals"                "1"
Юнит, у которого выставлено 1, не будет агрить нейтралов, если сам юнит-носитель не подошел слишком близко для их acquisition _Range.

Свойства выборки:
Код
"SelectionGroup"               "string"              
"SelectOnSpawn"                "1"
"IgnoreAddSummonedToSelection" "1"
•   SelectionGroup сделает так, что все юниты могут быть выбраны в одну группу и к ним можно получить доступ через tab.


Я нажал таб один раз и все эти юниты были выбраны, после того как я назначил их в одну группу.
•   SelectOnSpawn когда спавнишь этих юнитов, они сразу входят в группу с героем. Например когда призываешь фамильяров висажа, выбираются висаж и 2 саммона сразу.
•   IgnoreAddSummonedToSelection если стоит 1, то "Auto Select Summoned Units" не работает. Используется в ульте Brewmaster, чтобы вызванные юниты не выбирались сразу.

Звуки:
Код
"SoundSet"                     "Hero_DragonKnight"
"GameSoundsFile"               "soundevents/game_sounds_heroes/game_sounds_dragon_knight.vsndevts"
"IdleSoundLoop"                "Hero_DragonKnight.Tutorial_Intro"
•   SoundSet с правильными GameSoundsFile служит для таких звуков как шаги героя и его атаки. Все эти настройки всегда можно посмотреть с помощью Dota 2 Sound Editor. Образец
•   IdleSoundLoop этот звук будет сразу использовать после того как юнит заспавнится.

Способности:
Код
"AbilityLayout"               "4" //допустимые значения только 4 5 6
"Ability1"                    ""            // первая способность юнита, в кавычках  //надо указать имя способности либо из units_custom_abilities, либо из стандартных.
//"Ability2" ... до "Ability16"
Максимально, герой может иметь до 16 способностей.
"AbilityLayout" это в общем то кол-во доступных для способностей слотов. У инвокера сразу при спавне 6 слотов под способностей, так же как и у Дума. А вот у пуджа 4.

Статы
Valve не позаботилась об идеальном редактировании статов.
Физическая и магическая защита
Код
"ArmorPhysical"                "0" //изначальная защита
"MagicalResistance"            "0" //изначальное маг. сопротивление
Возможности атаки
Код
"AttackCapabilities"         "DOTA_UNIT_CAP_NO_ATTACK"
Список:
•   DOTA_UNIT_CAP_NO_ATTACK //не может атаковать
•   DOTA_UNIT_CAP_MELEE_ATTACK //ближний бой
•   DOTA_UNIT_CAP_RANGED_ATTACK //дальний бой


Другие характеристики атаки
Код
"AttackDamageMin"            "50"       // Мин атака.
"AttackDamageMax"            "40"       // Макс атака.
"AttackRate"                 "1.7"     // Скорость атаки. (это величина в секундах)
"AttackAnimationPoint"       "0.75"    // сколько проигрывается анимация, прежде чем наносятся повреждения, у каждого своя анимация, поэтому тут по разному
"AttackAcquisitionRange"     "800"     // Если это нейтрал, то с какого расстояние он сам начнет вас атаковать.
"AttackRange"                "600"     // Макс дистанция атаки.
"AttackRangeBuffer"          "250"     // Это насколько далеко может забежать нейтрал, если вы его забайтили и убегаете



Дальние атаки:
Код
"ProjectileModel"            "particles/units/heroes/hero_lina/lina_base_attack.vpcf"
"ProjectileSpeed"            "900"
1. Модель снаряда
2. Скорость снаряда - оптимально выставить 900-1200, в других случаях будет либо очень быстро, либо очень медленно

Чтобы найти снаряды, для специфичного героя, можно вбить в ассет браузере gyro + attack vpcf, например
Если у вас герой или юнит каким то образом может использовать метаморфозы и имеет переключение с ближнего на дальний бой, то тут надо обязательно указать скорость снаряда. Иначе если вы превратитесь в дальний бой, то снаряды с 0 скоростью так и останутся стоять на месте.

Некоторые, не работающие пока вещи
Код
"AttackDamageType"           "DAMAGE_TYPE_ArmorPhysical"
Вольво задумывали по всей видимости, что можно будет дать юниту даже магический тип атаки, но сейчас по крайней мере это не поддерживается. Ждём фикса)

Атрибуты, для героев
Используется в  npc_heroes_custom:
Код
"AttributePrimary"             "DOTA_ATTRIBUTE_STRENGTH" //осн. Атрибут - сила
"AttributeBaseStrength"        "0"            // Базовая сила
"AttributeStrengthGain"        "0"            // Сила за уровень.
"AttributeBaseAgility"         "0"            // Базовая ловкость
"AttributeAgilityGain"         "0"            // Ловкость за уровень.
"AttributeBaseIntelligence"    "0"            // Базовый интеллект
"AttributeIntelligenceGain"    "0"            // Интеллект за уровень.

Награда за убийство
Вообще конечно же сейчас можно легко написать систему опыта на lua, особенно если вы хотите учитывать разницу в уровнях. Например, чтобы крип 1 лвла не давал опыта герою 10-го. Но это решать вам)
Код
"BountyXP" "0" // Сколько опыта будет давать за то, что юнит умер. 
"BountyGoldMin" "0" // Мин. Золота за смерть.
"BountyGoldMax" "0" // Макс золота за смерть

Столкновение:
Это именно то, как юнит будет сталкиваться с другими. То есть как он сможет делать бадиблок.
Код
"BoundsHullName"            "DOTA_HULL_SIZE_HERO"
Размеры юнитов:
Код
Value	Radius in Hammer units
DOTA_HULL_SIZE_SMALL 8 //мини юнит, жучок никса например
DOTA_HULL_SIZE_REGULAR 16 //размер юнита-крипа в дотке
DOTA_HULL_SIZE_SIEGE 16 //размер катапульты
DOTA_HULL_SIZE_HERO 24 //геройский размер, стандартный для столкновений
DOTA_HULL_SIZE_HUGE 80 //очень большой и крупный объект, которого долго обходить
DOTA_HULL_SIZE_BUILDING 81 //в доте используется для мелких зданий на базе
DOTA_HULL_SIZE_FILLER 96 //немного больше чем здание, вокруг него можно даже кругами бегать
DOTA_HULL_SIZE_BARRACKS 144 //примерно в уме прикиньте размер барака - это оно и есть
DOTA_HULL_SIZE_TOWER 144
•   Через Lua SetHullRadius(float) можно назначить любое значение до 144.
Смотрите, герой имеет радиус столкновения 24, значит если поставите побольше, то (станет шире кость) его будут обходить на расстояний).


Код
"RingRadius"                "70"
Колечко под юнитом.


Код
HealthBarOffset"           "250" //насколько высоко будет хп бар.
По стандарту поставлено «-1».


Движение:
Код
"MovementCapabilities"        "DOTA_UNIT_CAP_MOVE_NONE" 
"MovementSpeed"               "300"       // скорость перемещения
"MovementTurnRate"            "0.5"       // скорость поворота.
List of Movement Capabilities
Код
•	DOTA_UNIT_CAP_MOVE_NONE //не может двигаться
• DOTA_UNIT_CAP_MOVE_GROUND //двигается по земле
• DOTA_UNIT_CAP_MOVE_FLY //летает
• DOTA_UNIT_CAP_POHUI //земноводный. Шутка.
Некоторые редко применяемые характеристики отсюда:
Код
"HasAggressiveStance"         "0"
Например раньше джаггер, когда рядом противники вытаскивал меч, так что этот параметр тоже решает.
Код
"FollowRange"                 "100"
Дистанция, чтобы когда поставили приказ «Следовать», она будет следовать именно на таком расстоянии. Healing
Код
Ward/Sigil имеют дистанцию 250.

Здоровье и мана
Код
"StatusHealth"                "150"       // Здоровье.
"StatusHealthRegen"           "0"         // Регенерация в секунду.
"StatusMana"                  "0"         // Мана.
"StatusManaRegen"             "0"         // Регенерация маны в секунду.
Заметки:
•   Минусовая регенерация не работает.
•   Если поставите Status Mana = 0, то у юнита не будет мана-бара.
•   К сожалению пока что в lua нет способа изменять макс ману! Мана юнита и его модификации могут быть осуществлены через Levels или Creature block.
Редко используется
Код
"StatusStartingMana"          "-1"
-1 это полная мана в начал. Можно сделать так, чтобы юнит стартовал с 0 маны.


Типы брони и атаки:
Можно посмотреть какой тип атаки контрит определенный тип брони здесь.
"CombatClassAttack"           "DOTA_COMBAT_CLASS_ATTACK_HERO"
"CombatClassDefend"           "DOTA_COMBAT_CLASS_DEFEND_HERO"
Таблица типов атак
Name   Dota Equivalent
Код
Normal	DOTA_COMBAT_CLASS_ATTACK_BASIC
Pierce DOTA_COMBAT_CLASS_ATTACK_PIERCE
Siege DOTA_COMBAT_CLASS_ATTACK_SIEGE
Chaos DOTA_COMBAT_CLASS_ATTACK_LIGHT
Hero DOTA_COMBAT_CLASS_ATTACK_HERO

Типы защит
Код
Name	Dota Equivalent
Unarmored DOTA_COMBAT_CLASS_DEFEND_SOFT
Light DOTA_COMBAT_CLASS_DEFEND_WEAK
Medium DOTA_COMBAT_CLASS_DEFEND_BASIC
Heavy DOTA_COMBAT_CLASS_DEFEND_STRONG
Fortified DOTA_COMBAT_CLASS_DEFEND_STRUCTURE
Hero DOTA_COMBAT_CLASS_DEFEND_HERO

Обзор:
Код
"VisionDaytimeRange"        "1200"        // Дневной обзор (по часам доты).
"VisionNighttimeRange"      "1800"        // Ночной обзор.
Нельзя поставить больше 1800.

Типизация юнитов:
Это обычно сильно не решает, но может использоваться для таггинга юнитов. Например сделать всем жукам на карте тип Siege и так идентифицировать что жук был убит, проверяя всех убитых юнитов на этот  тип.
Код
"UnitRelationshipClass"       "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
List:
Код
•	DOTA_NPC_UNIT_RELATIONSHIP_TYPE_BARRACKS
• DOTA_NPC_UNIT_RELATIONSHIP_TYPE_BUILDING
• DOTA_NPC_UNIT_RELATIONSHIP_TYPE_COURIER
• DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT
• DOTA_NPC_UNIT_RELATIONSHIP_TYPE_HERO
• DOTA_NPC_UNIT_RELATIONSHIP_TYPE_SIEGE
• DOTA_NPC_UNIT_RELATIONSHIP_TYPE_WARD

Путь к lua ИИ скрипту.
Код
"vscripts"                    "path_to_ai_script.lua"
Как только юнит заспавнится, включится этот скрипт. Вот пример: https://github.com/MNoya/Warchasers/blob/master/game/dota_addons/warchasers/scripts/vscripts/ai_tank_miniboss.lua

The Creature Block
Этот как раз тот блок, который работает если вы указали класс npc_dota_creature :
Код
"custom_unit"
{
    "BaseClass" "npc_dota_creature"
    // ....

    "Creature"
    {
        // ...
    }
}
Все значения, которые здесь относится к блоку Creature.

Прикрепить одежду:
Есть стандартный блок для героев, который отвечает их за одежду.
Код
"AttachWearables"
{
    "Wearable1" { "ItemDef" "63" }
    "Wearable2" { "ItemDef" "64" }
    "Wearable3" { "ItemDef" "65" }
    "Wearable4" { "ItemDef" "66" }
    "Wearable5" { "ItemDef" "67" }
    "Wearable6" { "ItemDef" "68" }
}

Без и «с» указанным блоком attachWearables.

Каждое числовое значение "IdemDef" можно найти в https://raw.githubusercontent.com/dotabuff/d2vpk/master/dota_pak01/scripts/items/items_game.txt, просто откройте ссылку, она всегда обновляется.
Не все вещи для героев доступны в Source 2, запомните.
Если вы точно хотите удостовериться доступна ли модель для source 2 "model_player" вбейте в браузер название вещи, и попробуйте найти её.

Застревание
Код
"DisableClumpingBehavior"   "1"
Это исправляет баг с застреванием юнитов:   
Респаун
Код
 "CanRespawn"                "1"
Не работает.
Назначить сопротивление
Код
"DisableResistance"            "75.0"
Срезает длительность всех станов на определенный процент.


« Последнее редактирование: 01-06-2016, 08:46:48 от Se7eN »

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Параметры уровня
Код
"HPGain"                    "500" //за каждый уровень существо получает хп
"DamageGain"                "25" //дамаг
"ArmorGain"                 "1" //броня
"ManaGain"                  "1" //мана
"MagicResistGain"           "1" //магический резист
"MoveSpeedGain"             "1" //скорость перемещения
"BountyGain"                "3" //доп. золото за уровень, который будет давать
"XPGain"                    "100" //доп. опыт

Предметы:
Должен иметь "HasInventory" "1"
Образец:
Код
"EquippedItems"
{
    "ForceStaff"    {    "Item"    "item_force_staff"    }
    "PhaseBoots"    {    "Item"    "item_phase_boots"    }
    "Drums"           
    {   
        "Item"        "item_ancient_janggo"
        "Charges"    "10"
    }
    "Urn"
    {
        "Item"        "item_urn_of_shadows"
        "Charges"    "10"
    }
}




Changelog: 01.07.15
Гайд переведен и выложен в двух постах.
Некоторые данные дополнены, и упрощены для понимания новичками.
Оригинал by Noya. https://moddota.com/forums/discussion/224/datadriven-units#latest
« Последнее редактирование: 01-07-2015, 08:17:07 от Se7eN »

Оффлайн -ExotiC-

  • Администратор
  • 350
  • Мощь: 3
  • Забанен

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Было бы неплохо адаптировать все гайды из моддоты под рус комьюнити. Продолжай ;)
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Спасибо)

У меня цель, чтобы у нас было своё, русское моддинг сообщество)

А без контента - никак не организуешь, вот и надо постараться

Оффлайн -ExotiC-

  • Администратор
  • 350
  • Мощь: 3
  • Забанен
Спасибо за помощь в развитии. У меня просто не хватает времени переводить уроки. Я выделяю ему максимально много времени, но учёба и работа отнимают большую часть занятости.

Оффлайн M@G

  • Продвинутый
  • 63
  • Мощь: 0
День добрый. После создания и спавна кастомного юнита не проигрывается анимация (обычная idle анимация). За это отвечает какой-то параметр или нужно прекэшировать model_folder?

UPD. Сам спросил - сам ответил: неправильные значения параметров ломают юнит. У меня было неправильно написано названия первой абилки.
« Последнее редактирование: 01-08-2015, 11:26:02 от M@G »

Оффлайн wetalq

  • 30
  • Мощь: 0
данным способом можно открепить одежду героя, и сделать героя в таком виде, в котором он на скриншоте без меча и доспехов ДК

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
данным способом можно открепить одежду героя, и сделать героя в таком виде, в котором он на скриншоте без меча и доспехов ДК
С героями не сработает, только с юнитами класса npc_dota_creature.

Оффлайн Jack of Shadows

  • 1
  • Мощь: 0
Я вот создал в документе кастомного юнита, где теперь его найти в редакторе?

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Я вот создал в документе кастомного юнита, где теперь его найти в редакторе?

В редакторе ты его не найдешь. В коде прописываешь его спавн.
Можешь тут посмотреть.

Оффлайн kain

  • 16
  • Мощь: 0
Цитировать
С героями не сработает, только с юнитами класса npc_dota_creature.
Можно пример или ссылку чем/где одеть именно выбранного/заданного героя ?

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Можно пример или ссылку чем/где одеть именно выбранного/заданного героя ?

Вот

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Хотя, тут же все то же самое пишут. Или ты пропустил мимо эту ссылку?  Там все доступные к использованию вещи. Они имеют свои идентификаторы. Но и имена у них есть. Ищи по имени, что в редаторе можешь раздобыть.

Оффлайн kain

  • 16
  • Мощь: 0
соре илья я видимо криво выразился или меня не правильно поняли)

тут выше автор CryDeS
Цитировать
С героями не сработает, только с юнитами класса npc_dota_creature.
указал что именно с героями которым ты сам играешь т.е. твой персонаж а не моб/босс/волна которую убить надо - такой финт ушами не прокатывает.
Пока не было необходимости но, с созданием кастомного моба и одеть его в нужную вещь, думаю проблем не будет (гайд видел и ссылку твою на файл тоже видел)

Мне надо именно персонаж, те. выбираем SF и я хочу что бы у всех игроков (в не зависимости от наличия у них вещей в инвентаре дота) персонаж был одет одинаково - либо в простой сет SF, либо в аркану, либо иммортал.
« Последнее редактирование: 14-12-2015, 18:45:07 от kain »