doter.ua

Пользователь

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

doter.ua

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

Предыдущая часть:

Абилки (Ability)

(на основе существующих)

1) Создание скилов можно разделить на две категории:

  • На основе существующих
  • Полностью новые (основа - базовый класс)

Первый тип создается довольно просто (об этом и пойдет речь этой части)

Второй  тип мутный и не понятный. Ходят слухи про парня который познал дзень создания абилок, но на следующий день он сошел с ума и застрелился.

2)  Перед работой нужно приготовить следующее:

  • Файл npc_abilities.txt (из файла pak01_dir.vpk)
  • Файл npc_heroes.txt (там же)
  • Создать свои npc_abilities_custom.txt и npc_heroes_custom.txt
  • Закинуть наши custom файлы в папку scripts/npc/
  • Изменить название абилки. (дописать в конце что-то типа _new) но это чуть позже

Да да npc_heroes_custom. Нужно же как-то затестить наши абилки.

В созданный нами нпс_абилити_кастом запишите:

"DOTAAbilities"

{

    "Version"        "1"

   //Сюда будем кодить.

}

С героями похожая штука:

"DOTAHeroes"

{

        //Сюда будем кодить.

}

Кто хочет, посмотрите примеры в холдауте

Примерная схема работы:

3) Первые два файла - это файлы из доты, от туда мы будем брать абилки и героев (как пример)

  • Находим нужную абилку (юзайте поиск по документу, зависит от редактора)
  • Копируем ее, вставляем целиком в наш кастомный файл.
  • Обязательно нужно добавить "BaseClass"  и "AbilityTextureName"
  • Изменить название например вместо "lina_dragon_slave" напишите "lina_dragon_slave_new" (новое название будем использовать при редактировании героя)

Итак пример:

Спойлер: "Пример"

   //=================================================================================================================

    // Ability: Lina Dragon Slave

    //=================================================================================================================

    "lina_dragon_slave"

    {

        // General

        //-------------------------------------------------------------------------------------------------------------

        "ID"                    "5040"                                                        // unique ID number for this ability.  Do not change this once established or it will invalidate collected stats.

        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET | DOTA_ABILITY_BEHAVIOR_POINT"

        "AbilityUnitTargetTeam"            "DOTA_UNIT_TARGET_TEAM_ENEMY"

        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"

        "AbilityUnitDamageType"            "DAMAGE_TYPE_MAGICAL"

        "FightRecapLevel"                "1"

        // Casting

        //-------------------------------------------------------------------------------------------------------------

        "AbilityCastRange"                "800"

        "AbilityCastPoint"                "0.45 0.45 0.45 0.45"

        // Time

        //-------------------------------------------------------------------------------------------------------------

        "AbilityCooldown"                "8.5 8.5 8.5 8.5"

        "AbilityDuration"                "0.6875 0.6875 0.6875 0.6875"

        // Damage.

        //-------------------------------------------------------------------------------------------------------------

        "AbilityDamage"                    "100 170 230 280"

        // Cost

        //-------------------------------------------------------------------------------------------------------------

        "AbilityManaCost"                "90 105 125 140"

        // Special

        //-------------------------------------------------------------------------------------------------------------

        "AbilitySpecial"

        {

            "01"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_speed"        "1200"

            }

  

            "02"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_width_initial"    "275"

            }

            "03"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_width_end"        "200"

            }

  

            "04"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_distance"            "1075"

            }

        }

    }

Это кусок из стандартного нпс_абилити. Можно стереть id или назначить свой, но уникальный(без повторов).

Можете поменять данные (там все интуитивно понятно) Например:

"AbilityManaCost"                                                "25"

Фрагмент будет выглядеть приблизительно так

Спойлер: "Код"

   // Ability: Lina Dragon Slave

    //=================================================================================================================

    "lina_dragon_slave_new"

    {

        // General

        //-------------------------------------------------------------------------------------------------------------

        "BaseClass"                        "lina_dragon_slave"

        "AbilityTextureName"            "lina_dragon_slave"

        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET | DOTA_ABILITY_BEHAVIOR_POINT"

        "AbilityUnitTargetTeam"            "DOTA_UNIT_TARGET_TEAM_ENEMY"

        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"

        "AbilityUnitDamageType"            "DAMAGE_TYPE_MAGICAL"

        "FightRecapLevel"                "1"

        // Casting

        //-------------------------------------------------------------------------------------------------------------

        "AbilityCastRange"                "800"

        "AbilityCastPoint"                "0.45 0.45 0.45 0.45"

        // Time

        //-------------------------------------------------------------------------------------------------------------

        "AbilityCooldown"                "8.5 8.5 8.5 8.5"

        "AbilityDuration"                "0.6875 0.6875 0.6875 0.6875"

        // Damage.

        //-------------------------------------------------------------------------------------------------------------

        "AbilityDamage"                    "100 170 230 280"

        // Cost

        //-------------------------------------------------------------------------------------------------------------

        "AbilityManaCost"                "25"

        // Special

        //-------------------------------------------------------------------------------------------------------------

        "AbilitySpecial"

        {

            "01"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_speed"        "1200"

            }

  

            "02"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_width_initial"    "275"

            }

            "03"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_width_end"        "200"

            }

  

            "04"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_distance"            "1075"

            }

        }

    }

4)     Так же нужно прекэшировать файлы для анимации, патиклы (particle)

Делается это в функции

function Precache( context )

end

И не нужно нигде писать вызов функции типа Precache(context) система магическим образом все сделает сама.

Есть два вызова прекэширования (точнее я знаю только 2)

PrecacheResource( "particle_folder", "particles/units/heroes/hero_dragon_knight", context)

PrecacheUnitByNameSync("npc_dota_hero_templar_assassin", context)

Первый  требует наличия файла с анимацией в myAddon/particles/units/heroes/ по идее эти файлы создаются вами.

Если же нужно использовать анимацию, которая уже есть в доте(стандартную кароче), то используют второй способ, в котором нужн опередать имя героя, чья магия требует анимации (В нашем примере это Лина  
npc_dota_hero_lina). Вот и все.

   5)  Теперь добавим нашу абилку к герою. Откроем наш файл хирос_кастом

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

Спойлер: "Пример из холдаута"

// Dota Heroes File

// NOTE: This is not for creating new heroes, this is for taking a currently existing hero as a template and overriding

// the specified key-value combinations.  Use override_hero <hero_to_override> for this.

"DOTAHeroes"

{

  бла бла бла тут я все удалил.

}

Итак нужно написать название подопытного героя

"
npc_dota_hero_pudge_template"

   {

        "
override_hero"                    "npc_dota_hero_pudge"    

       

        "MovementSpeed"                "500"                                    // Speed.

      

        "Ability3"                    "lina_dragon_slave_new"        

  

    }  

(на видео изменены все абилки, но для примера хватит и одной)

Главное здесь это "override_hero"                    "npc_dota_hero_pudge"

Обратите внимание, что я указал именно НОВОЕ название абилки с приставкой _new в конце (это делается для того, чтобы дота отличала обычную абилку от нашей, да и вообще две абилки с одинаковым именем ничего хорошего не принесут)

    Кстати можно написать и любую стандартную абилку, тоже будет работать, но не  забудьте прекэшировать её.

Здесь мы указываем название героя, которого хотим изменить.

НЕ обязательно копировать все описание героя из файла npc_heroes.txt

Копируйте только те свойства которые хотите поменять. Этот герой уже описан в оригинальных файлах, и если вы не напишите "MovementSpeed"   "500",  это не будет означать, что у пуджа не будет скорости вообще, просто она будет такой, как в оригинальном файле. Для примера скину кусок кода с пуджом из оригинала, там можно посмотреть на свойства которые можно изменить.

Спойлер: "Пудж ориджинал"

//=================================================================================================================

    // HERO: Pudge

    //=================================================================================================================

    "npc_dota_hero_pudge"

    {

        // General

        //-------------------------------------------------------------------------------------------------------------

        "Model"                    "models/heroes/pudge/pudge.mdl"                // Model.

        "Portrait"                "vgui/hud/heroportraits/portrait_pudge"        // Small image for hero selection

        "IdleExpression"        "scenes/pudge/pudge_exp_idle_01.vcd"        // custom facial animation idle

        "SoundSet"                "Hero_Pudge"                                // Name of sound set.

        "PickSound"                "pudge_pud_spawn_10"

        "BanSound"                "pudge_pud_anger_01"

        "IdleSoundLoop"            "Hero_Pudge.IdleLoop"

        "Enabled"                "1"

        "HeroUnlockOrder"        "3"

        "Role"                    "Durable,Disabler"

        "Rolelevels"            "3,1"

        "Team"                    "Bad"

        "HeroID"                "14"                                    // unique ID number for this hero.  Do not change this once established or it will invalidate collected stats.

        "ModelScale"            "0.98"

        "LoadoutScale"          ".92"

        "HeroGlowColor"            "178 128 114"

        "CMEnabled"                "1"

        "url"                "Pudge"

        "LastHitChallengeRival"    "npc_dota_hero_skeleton_king"

        "HeroSelectSoundEffect"        ")weapons/hero/pudge/dismember_swing2.wav"

        // Abilities

        //-------------------------------------------------------------------------------------------------------------

        "Ability1"                "pudge_meat_hook"                            // Ability 1

        "Ability2"                "pudge_rot"                                    // Ability 2

        "Ability3"                "pudge_flesh_heap"                            // Ability 3

        "Ability4"                "pudge_dismember"                            // Ability 4

        // Armor

        //-------------------------------------------------------------------------------------------------------------

        "ArmorPhysical"            "-1"                                            // Physical protection.

        // Attack

        //-------------------------------------------------------------------------------------------------------------

        "AttackCapabilities"        "DOTA_UNIT_CAP_MELEE_ATTACK"

        "AttackDamageMin"            "27"                                    // Damage range min.

        "AttackDamageMax"            "33"                                    // Damage range max.

        "AttackRate"                "1.7"                                    // Speed of attack.

        "AttackAnimationPoint"        "0.5"                                    // Normalized time in animation cycle to attack.

        "AttackAcquisitionRange"    "600"                                    // Range within a target can be acquired.

        "AttackRange"                "128"                                    // Range within a target can be attacked.

        "ProjectileModel"            ""                                        // Particle system model for projectile.

        "ProjectileSpeed"            "0"                                        // Speed of projectile.

        // Attributes

        //-------------------------------------------------------------------------------------------------------------

        "AttributePrimary"            "DOTA_ATTRIBUTE_STRENGTH"

        "AttributeBaseStrength"        "25"                                    // Base strength

        "AttributeStrengthGain"        "3.2"                                    // Strength bonus per level.

        "AttributeBaseIntelligence"    "14"                                    // Base intelligence

        "AttributeIntelligenceGain"    "1.5"                                    // Intelligence bonus per level.

        "AttributeBaseAgility"        "14"                                    // Base agility

        "AttributeAgilityGain"        "1.5"                                    // Agility bonus per level.

        // Movement

        //-------------------------------------------------------------------------------------------------------------

        "MovementSpeed"                "285"                                    // Speed.

        "MovementTurnRate"            "0.5"                                    // Turning rate.

        // Bounds

        //-------------------------------------------------------------------------------------------------------------

        "BoundsHullName"            "DOTA_HULL_SIZE_HERO"

        "HealthBarOffset"            "180"

        "ParticleFile"                "particles/units/heroes/hero_pudge.pcf"

        "GameSoundsFile"            "scripts/game_sounds_heroes/game_sounds_pudge.txt"

        "VoiceFile"                    "scripts/voscripts/game_sounds_vo_pudge.txt"

        "VoiceBackgroundSound"        "Pudge.Background"

        // Additional data needed to render the out of game portrait

        "RenderablePortrait"

        {

            "Particles"

            {

                "pudge_ambient_chain"

                {

                    "0"

                    {

                        "type"        "follow_attachment"

                        "location"    "attach_weapon_chain_lf"

                    }

                    "1"

                    {

                        "type"        "follow_attachment"

                        "location"    "attach_arm_chain_lf"

                    }

                }

                "pudge_ambient_chain"

                {

                    "0"

                    {

                        "type"        "follow_attachment"

                        "location"    "attach_weapon_chain_rt"

                    }

                    "1"

                    {

                        "type"        "follow_attachment"

                        "location"    "attach_arm_chain_rt"

                    }

                }

                "pudge_ambient_flies"

                {

                    "0"

                    {

                        "type"        "follow_origin"

                        "location"    "attach_hitloc"  //Note : shouldn't need this

                    }

                }

                "pudge_loadout"

                {

                    "0"

                    {

                        "type"        "follow_origin"

                        "location"        "attach_hitloc"

                    }

                    "1"

                    {

                        "type"        "follow_origin"

                        "position"        "200 1 200"

                    }

                }

            }

        }

        // Hero Selection

        "AbilityPreview"

        {

            "resource"    "resource/UI/Heroes/default.res"

            "movie"        "media/heroes/default"

            "resource"    "resource/UI/Heroes/default.res"

            "resource"    "resource/UI/Heroes/default.res"

            "resource"    "resource/UI/Heroes/default.res"

            "resource"    "resource/UI/Heroes/default.res"

        }

        // Items

        "ItemSlots"

        {

            "0"

            {

                "SlotIndex"    "0"

                "SlotName"    "weapon"

                "SlotText"    "#LoadoutSlot_Weapon"

                "TextureWidth"        "256"

                "TextureHeight"        "256"

                "MaxPolygonsLOD0"    "350"

                "MaxPolygonsLOD1"    "350"

            }

            "1"

            {

                "SlotIndex"    "1"

                "SlotName"     "head"

                "SlotText"    "#LoadoutSlot_Head"

                "TextureWidth"        "256"

                "TextureHeight"        "256"

                "MaxPolygonsLOD0"    "550"

                "MaxPolygonsLOD1"    "300"

            }

            "2"

            {

                "SlotIndex"    "2"

                "SlotName"     "offhand_weapon"

                "SlotText"    "#LoadoutSlot_offhand_weapon"

                "TextureWidth"        "256"

                "TextureHeight"        "256"

                "MaxPolygonsLOD0"    "350"

                "MaxPolygonsLOD1"    "350"

            }

            "3"

            {

                "SlotIndex"    "3"

                "SlotName"     "arms"

                "SlotText"    "#LoadoutSlot_arms"

                "TextureWidth"        "256"

                "TextureHeight"        "128"

                "MaxPolygonsLOD0"    "200"

                "MaxPolygonsLOD1"    "150"

            }

            "4"

            {

                "SlotIndex"    "4"

                "SlotName"     "shoulder"

                "SlotText"    "#LoadoutSlot_shoulder"

                "TextureWidth"        "256"

                "TextureHeight"        "256"

                "MaxPolygonsLOD0"    "800"

                "MaxPolygonsLOD1"    "400"

            }  

            "5"

            {

                "SlotIndex"    "5"

                "SlotName"     "back"

                "SlotText"    "#LoadoutSlot_back"

                "TextureWidth"        "256"

                "TextureHeight"        "256"

                "MaxPolygonsLOD0"    "700"

                "MaxPolygonsLOD1"    "400"

            }

            "6"

            {

                "SlotIndex"    "6"

                "SlotName"    "taunt"

                "SlotText"    "#LoadoutSlot_Taunt"

            }

            "7"

            {

                "SlotIndex"    "7"

                "SlotName"    "belt"

                "SlotText"    "#LoadoutSlot_Belt"

                "TextureWidth"        "256"

                "TextureHeight"        "128"

                "MaxPolygonsLOD0"    "600"

                "MaxPolygonsLOD1"    "400"

            }

  

        }

        "Bot"

        {

            "Loadout"

            {

                "item_gauntlets"                "ITEM_CORE"

                "item_circlet"                    "ITEM_CORE"

                "item_flask"                    "ITEM_CONSUMABLE | ITEM_SELLABLE"

                "item_bottle"                    "ITEM_CORE"

                "item_boots"                    "ITEM_CORE"

      

                "item_recipe_bracer"            "ITEM_CORE"

                "item_bracer"                    "ITEM_DERIVED | ITEM_SELLABLE"

                "item_magic_stick"                "ITEM_CORE"

                "item_branches"                    "ITEM_EXTENSION"

                "item_branches"                    "ITEM_EXTENSION"

                "item_branches"                    "ITEM_EXTENSION"

                "item_recipe_magic_wand"        "ITEM_EXTENSION"

                "item_magic_wand"                "ITEM_DERIVED | ITEM_SELLABLE"

                "item_ring_of_regen"            "ITEM_EXTENSION"

                "item_ring_of_protection"        "ITEM_EXTENSION"

                "item_tranquil_boots"            "ITEM_DERIVED"

                "item_cloak"                    "ITEM_EXTENSION"

                "item_ring_of_health"            "ITEM_EXTENSION"

                "item_ring_of_regen"            "ITEM_EXTENSION"

                "item_ring_of_regen"            "ITEM_EXTENSION"

                "item_hood_of_defiance"            "ITEM_DERIVED"

      

                "item_blink"                    "ITEM_EXTENSION"

                "item_branches"                    "ITEM_EXTENSION"

                "item_ring_of_regen"            "ITEM_EXTENSION"

                "item_recipe_headdress"            "ITEM_EXTENSION"

                "item_headdress"                "ITEM_DERIVED"

      

                "item_recipe_pipe"                "ITEM_EXTENSION"

                "item_pipe"                        "ITEM_DERIVED"

                "item_reaver"                    "ITEM_LUXURY"

                "item_vitality_booster"            "ITEM_LUXURY"

                "item_recipe_heart"                "ITEM_LUXURY"

                "item_heart"                    "ITEM_DERIVED"

                "item_platemail"                "ITEM_LUXURY"

                "item_mystic_staff"                "ITEM_LUXURY"

                "item_recipe_shivas_guard"        "ITEM_LUXURY"

                "item_shivas_guard"                "ITEM_DERIVED"

                "item_point_booster"            "ITEM_LUXURY"

                "item_ogre_axe"                    "ITEM_LUXURY"

                "item_blade_of_alacrity"        "ITEM_LUXURY"

                "item_staff_of_wizardry"        "ITEM_LUXURY"

                "item_ultimate_scepter"            "ITEM_DERIVED"

            }

            "Build"

            {

                "1"        "pudge_rot"

                "2"        "pudge_meat_hook"

                "3"        "pudge_meat_hook"

                "4"        "pudge_rot"

                "5"        "pudge_meat_hook"

                "6"        "pudge_dismember"

                "7"        "pudge_meat_hook"

                "8"        "pudge_rot"

                "9"        "pudge_rot"

                "10"    "pudge_flesh_heap"

                "11"    "pudge_dismember"

                "12"    "pudge_flesh_heap"

                "13"    "pudge_flesh_heap"

                "14"    "pudge_flesh_heap"

                "15"    "attribute_bonus"

                "16"    "pudge_dismember"

                "17"    "attribute_bonus"

                "18"    "attribute_bonus"

                "19"    "attribute_bonus"

                "20"    "attribute_bonus"

                "21"    "attribute_bonus"

                "22"    "attribute_bonus"

                "23"    "attribute_bonus"

                "24"    "attribute_bonus"

                "25"    "attribute_bonus"

            }

            "HeroType"            "DOTA_BOT_GANKER | DOTA_BOT_TANK"

            "LaningInfo"

            {

                "SoloDesire"            "2"

                "RequiresBabysit"        "0"

                "ProvidesBabysit"        "1"

                "SurvivalRating"        "2"

                "RequiresFarm"            "2"

                "ProvidesSetup"            "2"

                "RequiresSetup"            "1"

            }

        }

    }    

Там много всякой инфы про ботов про билд... не знаю будет ли работать если что-то там поменять(я просто скопировал весь блок кода про пуджа)

Спойлер: "ФУЛЛ КОД_абилити"

// Dota Heroes File

"DOTAAbilities"

{

    "Version"        "1"

    // Ability: Lina Dragon Slave

    //=================================================================================================================

    "lina_dragon_slave_new"

    {

        // General

        //-------------------------------------------------------------------------------------------------------------

        "BaseClass"                        "lina_dragon_slave"

        "AbilityTextureName"            "lina_dragon_slave"

        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET | DOTA_ABILITY_BEHAVIOR_POINT"

        "AbilityUnitTargetTeam"            "DOTA_UNIT_TARGET_TEAM_ENEMY"

        "AbilityUnitTargetType"            "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"

        "AbilityUnitDamageType"            "DAMAGE_TYPE_MAGICAL"

        "FightRecapLevel"                "1"

        // Casting

        //-------------------------------------------------------------------------------------------------------------

        "AbilityCastRange"                "800"

        "AbilityCastPoint"                "0.45 0.45 0.45 0.45"

        // Time

        //-------------------------------------------------------------------------------------------------------------

        "AbilityCooldown"                "8.5 8.5 8.5 8.5"

        "AbilityDuration"                "0.6875 0.6875 0.6875 0.6875"

        // Damage.

        //-------------------------------------------------------------------------------------------------------------

        "AbilityDamage"                    "100 170 230 280"

        // Cost

        //-------------------------------------------------------------------------------------------------------------

        "AbilityManaCost"                "25"

        // Special

        //-------------------------------------------------------------------------------------------------------------

        "AbilitySpecial"

        {

            "01"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_speed"        "1200"

            }

    

            "02"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_width_initial"    "275"

            }

            "03"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_width_end"        "200"

            }

    

            "04"

            {

                "var_type"                    "FIELD_INTEGER"

                "dragon_slave_distance"            "1075"

            }

        }

    }

}

Спойлер: "ФУЛЛ код Героев"

// Dota Heroes File

// NOTE: This is not for creating new heroes, this is for taking a currently existing hero as a template and overriding

// the specified key-value combinations.  Use override_hero  for this.

"DOTAHeroes"

{

    "npc_dota_hero_pudge_template"

    {

        "override_hero"                    "npc_dota_hero_pudge"

        "MovementSpeed"                "500"                                    // Speed.

    

        "Ability3"                    "lina_dragon_slave_new"      

    }

}

Пару замечаний:

  • Если нужно убрать скил просто напишите  "Ability1" "rubick_empty1"  это что-то типа заглушки, так же можно doom_empty1, invoker_empty1, ну вы поняли принцип.
  • Если вы не сделаете прекэширование скилы будут работать нормально, просто вы их не увидете. например задувка дракона (брез фаер) будет отнимать хп у врага, н овы не увидете сам огонь.

Если кто-то шарит в создании своих собственных абилок, тех что от класса

"ability_datadriven" то я буду рад ,если он поделится этой инфой, я в этом способе почти не шарю, если покопаться может быть и слеплю что-нибудь из примеров, но это совсем не те знания, чтобы написать гайд.

Immortal0110

Пользователь

Регистрация: 12.08.2014

Сообщения: 18

Рейтинг: 0

Immortal0110

Регистрация: 12.08.2014

Сообщения: 18

Рейтинг: 0

Извини, что не по тебе, но как ты сделал, что у тебя игра за несколько секунд загрузилась? Мне приходится ждать от 10 до 20 минут.

doter.ua

Пользователь

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

doter.ua

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

Immortal0110 сказал(а):
Извини, что не по тебе, но как ты сделал, что у тебя игра за несколько секунд загрузилась? Мне приходится ждать от 10 до 20 минут.
Нажмите, чтобы раскрыть...

Всю карту компилят в том случае, если были изменения в карте. т.к. скрипты никак не относятся к карте, можно убирать все галочки

Immortal0110

Пользователь

Регистрация: 12.08.2014

Сообщения: 18

Рейтинг: 0

Immortal0110

Регистрация: 12.08.2014

Сообщения: 18

Рейтинг: 0

Не понимаю про анимацию. Куда это нужно писать: "function Precache( context )

end"? Объясни что и куда записывать, если не сложно.

doter.ua

Пользователь

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

doter.ua

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

Immortal0110 сказал(а):
Не понимаю про анимацию. Куда это нужно писать: "function Precache( context )

end"? Объясни что и куда записывать, если не сложно.
Нажмите, чтобы раскрыть...

просто бахни в самы.... гребаный лагерный сайт

doter.ua

Пользователь

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

doter.ua

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

Immortal0110 сказал(а):
Не понимаю про анимацию. Куда это нужно писать: "function Precache( context )

end"? Объясни что и куда записывать, если не сложно.
Нажмите, чтобы раскрыть...

Просто закинь в конец скрипта:

function Precache( context )

    PrecacheUnitByNameSync("npc_dota_hero_lina", context)  

end

Immortal0110

Пользователь

Регистрация: 12.08.2014

Сообщения: 18

Рейтинг: 0

Immortal0110

Регистрация: 12.08.2014

Сообщения: 18

Рейтинг: 0

doter.ua сказал(а):
Просто закинь в конец скрипта:

function Precache( context )

    PrecacheUnitByNameSync("npc_dota_hero_lina", context)  

end
Нажмите, чтобы раскрыть...

В конец npc_ability_custom.txt?

doter.ua

Пользователь

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

doter.ua

Регистрация: 04.07.2012

Сообщения: 547

Рейтинг: 214

Immortal0110 сказал(а):
В конец npc_ability_custom.txt?
Нажмите, чтобы раскрыть...

в addon_game_lua

Mr_MaTBuK

Пользователь

Регистрация: 08.04.2013

Сообщения: 815

Рейтинг: 248

Mr_MaTBuK

Регистрация: 08.04.2013

Сообщения: 815

Рейтинг: 248

Жду полностью новых скиллов :dash:

shoffe

Пользователь

Регистрация: 02.09.2013

Сообщения: 422

Рейтинг: 13

shoffe

Регистрация: 02.09.2013

Сообщения: 422

Рейтинг: 13

doter.ua сказал(а):
Всю карту компилят в том случае, если были изменения в карте. т.к. скрипты никак не относятся к карте, можно убирать все галочки
Нажмите, чтобы раскрыть...

Ну меня почему нельзя вообще скилы изучить

PrekeR

Пользователь

Регистрация: 24.06.2013

Сообщения: 366

Рейтинг: 130

PrekeR

Регистрация: 24.06.2013

Сообщения: 366

Рейтинг: 130

Сначала делал как написано, потом тупо скопировал коды, беру пуджа, всё равно у него пассивка стоит, может не так чего?

Может путь какой то не такой?

Steam\SteamApps\common\dota 2 beta\dota_ugc\game\dota_addons\test\scripts\npc

slonik333

Пользователь

Регистрация: 24.08.2013

Сообщения: 655

Рейтинг: 278

slonik333

Регистрация: 24.08.2013

Сообщения: 655

Рейтинг: 278

А как для способности на основе старой способности сделать свой эффект. Допустим я сделал эффект мне нужно его к скиллу прикрепить.

Sky Elite

Пользователь

Регистрация: 04.02.2015

Сообщения: 635

Рейтинг: 183

Sky Elite

Регистрация: 04.02.2015

Сообщения: 635

Рейтинг: 183

slonik333 сказал(а):
А как для способности на основе старой способности сделать свой эффект. Допустим я сделал эффект мне нужно его к скиллу прикрепить.
Нажмите, чтобы раскрыть...

Всю способность с нуля надо будет писать. Нельзя добавлять ничего нового на основе стандартных

slonik333

Пользователь

Регистрация: 24.08.2013

Сообщения: 655

Рейтинг: 278

slonik333

Регистрация: 24.08.2013

Сообщения: 655

Рейтинг: 278

Sky Elite сказал(а):
Всю способность с нуля надо будет писать. Нельзя добавлять ничего нового на основе стандартных
Нажмите, чтобы раскрыть...

Пичаль тогда

Xionic React

Пользователь

Регистрация: 25.09.2015

Сообщения: 1

Рейтинг: 0

Xionic React

Регистрация: 25.09.2015

Сообщения: 1

Рейтинг: 0

doter.ua сказал(а):
в addon_game_lua
Нажмите, чтобы раскрыть...

похожая проблема , только не могу найти где это. Можно подробнее где эта фигня?

Maelstrom_Dota

Пользователь

Регистрация: 30.12.2017

Сообщения: 2

Рейтинг: 0

Maelstrom_Dota

Регистрация: 30.12.2017

Сообщения: 2

Рейтинг: 0

Xionic React сказал(а):

похожая проблема , только не могу найти где это. Можно подробнее где эта фигня?

Нажмите, чтобы раскрыть...

Спустя 3 года и тут появился я который отвечаю на твой вопрос вот путь

\Steam\steamapps\common\dota 2 beta\game\dota_addons\название_аддона\scripts\vscripts

и в этой пути есть один файл addon_game_mode.lua это и есть