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

Статус
В этой теме нельзя размещать новые ответы.

danilkoo832832

Пользователь
5 Фев 2016
40
3
Вроде бы можно просто в BaseClass прописать стандартного героя, но восприниматься он будет как новый.
Как я понял надо сделать так?
Код:
"custom_npc_finnick"
    {
        "HeroID" 170
        "BaseClass"    "npc_dota_hero_invoker"
        "Model"        "models/heroes/invoker/invoker.vmdl"
        "ModelScale"    "1.1"
        "Ability1"                    "generic_hidden"
        "Ability2"                    "dota_ability_give_regen_health"
        "Ability3"                    "generic_hidden"
        "Ability4"                    "generic_hidden"
        "Ability5"                    "generic_hidden"
        "Ability6"                    "generic_hidden"
        "Ability7"                    "custom_ability_finnick_invulnerability"
        "Ability10" "special_bonus_strength_6"
        "Ability11" "special_bonus_attack_damage_20"
        "Ability12" "special_bonus_attack_speed_20"
        "Ability13" "special_bonus_hp_250"
        "Ability14" "special_bonus_evasion_15"
        "Ability15" "special_bonus_all_stats_10"
        "Ability16" "special_bonus_hp_250"
        "Ability17" "special_bonus_all_stats_10"
        "AbilityTalentStart"        "10"
        "AttackCapabilities"    "DOTA_UNIT_CAP_MELEE_ATTACK"
        "AttributePrimary"        "DOTA_ATTRIBUTE_STRENGTH"
        "AttackRange"            "150"
        "AttackRate"            "2.2"
        "AttributeBaseStrength"    "24"
        "AttributeBaseIntelligence"    "28"
        "AttributeBaseAgility"    "20"
        "AttributeStrengthGain"    "2.8"
        "AttributeIntelligenceGain"    "3.0"
        "AttributeAgilityGain"    "2.2"
        "MagicalResistance"        "45"
        "AttackDamageMin"        "22"
        "AttackDamageMax"        "32"
    }
Таким и всеми любыми способами как должно это работать, что пришли мне в голову не работают. Создаётся герой в меню пика без портрета которого нельзя пикнуть.

Будет проще смириться.

При более чем 100 героях - разве сложно переписать и перерисовать одно из них? (через тот же хекс модифаер - сменить модельку)
Я хочу сделать что бы и старых героев можно было пикать.

Я вкратце смотрел что да как в Angel arena black star и там как я понял это с помощью крипов сделано.
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Как я понял надо сделать так?
Код:
"custom_npc_finnick"
    {
        "HeroID" 170
        "BaseClass"    "npc_dota_hero_invoker"
        "Model"        "models/heroes/invoker/invoker.vmdl"
        "ModelScale"    "1.1"
        "Ability1"                    "generic_hidden"
        "Ability2"                    "dota_ability_give_regen_health"
        "Ability3"                    "generic_hidden"
        "Ability4"                    "generic_hidden"
        "Ability5"                    "generic_hidden"
        "Ability6"                    "generic_hidden"
        "Ability7"                    "custom_ability_finnick_invulnerability"
        "Ability10" "special_bonus_strength_6"
        "Ability11" "special_bonus_attack_damage_20"
        "Ability12" "special_bonus_attack_speed_20"
        "Ability13" "special_bonus_hp_250"
        "Ability14" "special_bonus_evasion_15"
        "Ability15" "special_bonus_all_stats_10"
        "Ability16" "special_bonus_hp_250"
        "Ability17" "special_bonus_all_stats_10"
        "AbilityTalentStart"        "10"
        "AttackCapabilities"    "DOTA_UNIT_CAP_MELEE_ATTACK"
        "AttributePrimary"        "DOTA_ATTRIBUTE_STRENGTH"
        "AttackRange"            "150"
        "AttackRate"            "2.2"
        "AttributeBaseStrength"    "24"
        "AttributeBaseIntelligence"    "28"
        "AttributeBaseAgility"    "20"
        "AttributeStrengthGain"    "2.8"
        "AttributeIntelligenceGain"    "3.0"
        "AttributeAgilityGain"    "2.2"
        "MagicalResistance"        "45"
        "AttackDamageMin"        "22"
        "AttackDamageMax"        "32"
    }
Таким и всеми любыми способами как должно это работать, что пришли мне в голову не работают. Создаётся герой в меню пика без портрета которого нельзя пикнуть.


Я хочу сделать что бы и старых героев можно было пикать.

Я вкратце смотрел что да как в Angel arena black star и там как я понял это с помощью крипов сделано.
В кратце. Тебе нужен KV объект в файлах с юнитами и героями и чтобы heroid не было использовано ранее у других героев. Я точно не помню лимит, но он около 20 может меньше героев, своих.
 

danilkoo832832

Пользователь
5 Фев 2016
40
3
В кратце. Тебе нужен KV объект в файлах с юнитами и героями и чтобы heroid не было использовано ранее у других героев. Я точно не помню лимит, но он около 20 может меньше героев, своих.
Айди не совпадает, а так была бы ошибка. Я сейчас буду создавать крипа и с помощью CreateHeroForPlayer c кастомным меню пика присваивать героя. Осталось сделать это меню... На кройняк сделаю выбор через команду -pick в чат и применять ReplaceHeroWith.
P.S: Что-то ничего не получается. CreateHeroForPlayer создаёт героя, но контролировать я его не могу, хоть он и считается моим. Пробовал удалять перед этим основного героя через Destroy, но не уверен что это правильно. ReplaceHeroWith отлично меняет героев стандартных, но вот моего что-то не хочет. На верхней панели герой пропадает и отключает мне взаимодействие с миром т.е. старый персонаж остался, на мои команды передвижение и подобные не реагирует, как и все остальные заспавненые нпс. Надеюсь объяснил понятно.
Оставлю тут на всякий
Код:
function ChatCommand:PickHero(playerid,text)
    print(string.sub(text, 7))
    if string.sub(text, 7) == "finnick" then
        PlayerResource:GetPlayer(playerid):GetAssignedHero():Destroy()
        CreateHeroForPlayer("npc_dota_hero_riki",PlayerResource:GetPlayer(playerid)) -- Мой 2 способ изменить героя
    else
        PlayerResource:ReplaceHeroWith(playerid,string.sub(text, 7),0,0) --Изначально использовал этот способ.
    end
end
Код:
"DOTAHeroes"
{
    "custom_hero_finnick"
    {
        // General
        //
        "HeroID"        "134"
        "BaseClass"                    "npc_dota_hero"
        "Model"                        "models/heroes/invoker/invoker.vmdl"
        "SoundSet"                    "0"                    // Name of sound set.
        "SelectOnSpawn"                "0"
        "UnitLabel"                 "finnick"
        "new_player_enable"        "1"
       
        // Abilities
        //----------------------------------------------------------------
       
        "Ability1"                    "generic_hidden"
        "Ability2"                    "dota_ability_give_regen_health"
        "Ability3"                    "generic_hidden"
        "Ability4"                    "generic_hidden"
        "Ability5"                    "generic_hidden"
        "Ability6"                    "generic_hidden"
        "Ability7"                    "custom_ability_finnick_invulnerability"
        "Ability10" "special_bonus_strength_6"
        "Ability11" "special_bonus_attack_damage_20"
        "Ability12" "special_bonus_attack_speed_20"
        "Ability13" "special_bonus_hp_250"
        "Ability14" "special_bonus_evasion_15"
        "Ability15" "special_bonus_all_stats_10"
        "Ability16" "special_bonus_hp_250"
        "Ability17" "special_bonus_all_stats_10"
        "AbilityTalentStart"        "10"

        // Armor
        //----------------------------------------------------------------
        "ArmorPhysical"                "0"            // Physical protection.
        "MagicalResistance"                "0"            // Magical protection.

        // Attack
        //----------------------------------------------------------------
        "AttackCapabilities"            "DOTA_UNIT_CAP_MELEE_ATTACK"
        "AttackDamageMin"            "23"            // Damage range min.
        "AttackDamageMax"            "28"            // Damage range max.
        "AttackDamageType"            "DAMAGE_TYPE_ArmorPhysical"
        "AttackRate"                "2.2"        // Speed of attack.
        "AttackAnimationPoint"        "0.4"        // Normalized time in animation cycle to attack.
        "AttackAcquisitionRange"    "250"        // Range within a target can be acquired.
        "AttackRange"                "120"        // Range within a target can be attacked.
        "AttackRangeBuffer"            "250"        // Extra attack range within which the target can move without canceling the attack

        // Attributes
        //----------------------------------------------------------------
        "AttributePrimary"            "DOTA_ATTRIBUTE_STRENGTH"
        "AttributeBaseStrength"        "24"            // Base strength
        "AttributeStrengthGain"        "2.8"            // Strength bonus per level.
        "AttributeBaseIntelligence"    "28"            // Base intelligence
        "AttributeIntelligenceGain"    "3.0"            // Intelligence bonus per level.
        "AttributeBaseAgility"        "20"            // Base agility
        "AttributeAgilityGain"        "2.2"            // Agility bonus per level.

        // Bounty
        //----------------------------------------------------------------
        "BountyXP"                    "0"            // Experience earn.
        "BountyGoldMin"                "0"            // Gold earned min.
        "BountyGoldMax"                "0"            // Gold earned max.

        // Bounds
        //----------------------------------------------------------------
        "BoundsHullName"            "DOTA_HULL_SIZE_HERO"
        "RingRadius"                "70"
        "HealthBarOffset"            "250"        // -1 means use the models

        // Movement
        //----------------------------------------------------------------
        "MovementCapabilities"        "DOTA_UNIT_CAP_MOVE_GROUND"
        "MovementSpeed"                "300"        // Speed
        "MovementTurnRate"            "0.5"        // Turning rate.
        "HasAggressiveStance"        "0"            // Plays alternate idle/run animation when near enemies
        "FollowRange"                "100"        // Distance to keep when following

        // Status
        //----------------------------------------------------------------
        "StatusHealth"                "250"        // Base health.
        "StatusHealthRegen"            "0"            // Health regeneration rate.
        "StatusMana"                "0"            // Base mana.
        "StatusManaRegen"            "0"            // Mana regeneration rate.
        "StatusStartingMana"        "-1"        // -1 means default to full mana

        // Team
        //----------------------------------------------------------------
        "TeamName"                    "DOTA_TEAM_GOODGUYS"
        "CombatClassAttack"            "DOTA_COMBAT_CLASS_ATTACK_HERO"
        "CombatClassDefend"            "DOTA_COMBAT_CLASS_DEFEND_HERO"
        "UnitRelationshipClass"        "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
       
        // Vision
        //----------------------------------------------------------------
        "VisionDaytimeRange"        "575"        // Range of vision during day light.
        "VisionNighttimeRange"        "575"        // Range of vision at night time.
       
        // Bots
        //----------------------------------------------------------------
        "AttackDesire"                "1.0"        // How much bots want to attack them vs other non-hero things

        //Inventory
        "HasInventory"                "1"

        "IdleSoundLoop"                ""
    }
}
 
Последнее редактирование:

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Айди не совпадает, а так была бы ошибка. Я сейчас буду создавать крипа и с помощью CreateHeroForPlayer c кастомным меню пика присваивать героя. Осталось сделать это меню... На кройняк сделаю выбор через команду -pick в чат и применять ReplaceHeroWith.
P.S: Что-то ничего не получается. CreateHeroForPlayer создаёт героя, но контролировать я его не могу, хоть он и считается моим. Пробовал удалять перед этим основного героя через Destroy, но не уверен что это правильно. ReplaceHeroWith отлично меняет героев стандартных, но вот моего что-то не хочет. На верхней панели герой пропадает и отключает мне взаимодействие с миром т.е. старый персонаж остался, на мои команды передвижение и подобные не реагирует, как и все остальные заспавненые нпс. Надеюсь объяснил понятно.
Оставлю тут на всякий
Код:
function ChatCommand:PickHero(playerid,text)
    print(string.sub(text, 7))
    if string.sub(text, 7) == "finnick" then
        PlayerResource:GetPlayer(playerid):GetAssignedHero():Destroy()
        CreateHeroForPlayer("npc_dota_hero_riki",PlayerResource:GetPlayer(playerid)) -- Мой 2 способ изменить героя
    else
        PlayerResource:ReplaceHeroWith(playerid,string.sub(text, 7),0,0) --Изначально использовал этот способ.
    end
end
Код:
"DOTAHeroes"
{
    "custom_hero_finnick"
    {
        // General
        //
        "HeroID"        "134"
        "BaseClass"                    "npc_dota_hero"
        "Model"                        "models/heroes/invoker/invoker.vmdl"
        "SoundSet"                    "0"                    // Name of sound set.
        "SelectOnSpawn"                "0"
        "UnitLabel"                 "finnick"
        "new_player_enable"        "1"
      
        // Abilities
        //----------------------------------------------------------------
      
        "Ability1"                    "generic_hidden"
        "Ability2"                    "dota_ability_give_regen_health"
        "Ability3"                    "generic_hidden"
        "Ability4"                    "generic_hidden"
        "Ability5"                    "generic_hidden"
        "Ability6"                    "generic_hidden"
        "Ability7"                    "custom_ability_finnick_invulnerability"
        "Ability10" "special_bonus_strength_6"
        "Ability11" "special_bonus_attack_damage_20"
        "Ability12" "special_bonus_attack_speed_20"
        "Ability13" "special_bonus_hp_250"
        "Ability14" "special_bonus_evasion_15"
        "Ability15" "special_bonus_all_stats_10"
        "Ability16" "special_bonus_hp_250"
        "Ability17" "special_bonus_all_stats_10"
        "AbilityTalentStart"        "10"

        // Armor
        //----------------------------------------------------------------
        "ArmorPhysical"                "0"            // Physical protection.
        "MagicalResistance"                "0"            // Magical protection.

        // Attack
        //----------------------------------------------------------------
        "AttackCapabilities"            "DOTA_UNIT_CAP_MELEE_ATTACK"
        "AttackDamageMin"            "23"            // Damage range min.
        "AttackDamageMax"            "28"            // Damage range max.
        "AttackDamageType"            "DAMAGE_TYPE_ArmorPhysical"
        "AttackRate"                "2.2"        // Speed of attack.
        "AttackAnimationPoint"        "0.4"        // Normalized time in animation cycle to attack.
        "AttackAcquisitionRange"    "250"        // Range within a target can be acquired.
        "AttackRange"                "120"        // Range within a target can be attacked.
        "AttackRangeBuffer"            "250"        // Extra attack range within which the target can move without canceling the attack

        // Attributes
        //----------------------------------------------------------------
        "AttributePrimary"            "DOTA_ATTRIBUTE_STRENGTH"
        "AttributeBaseStrength"        "24"            // Base strength
        "AttributeStrengthGain"        "2.8"            // Strength bonus per level.
        "AttributeBaseIntelligence"    "28"            // Base intelligence
        "AttributeIntelligenceGain"    "3.0"            // Intelligence bonus per level.
        "AttributeBaseAgility"        "20"            // Base agility
        "AttributeAgilityGain"        "2.2"            // Agility bonus per level.

        // Bounty
        //----------------------------------------------------------------
        "BountyXP"                    "0"            // Experience earn.
        "BountyGoldMin"                "0"            // Gold earned min.
        "BountyGoldMax"                "0"            // Gold earned max.

        // Bounds
        //----------------------------------------------------------------
        "BoundsHullName"            "DOTA_HULL_SIZE_HERO"
        "RingRadius"                "70"
        "HealthBarOffset"            "250"        // -1 means use the models

        // Movement
        //----------------------------------------------------------------
        "MovementCapabilities"        "DOTA_UNIT_CAP_MOVE_GROUND"
        "MovementSpeed"                "300"        // Speed
        "MovementTurnRate"            "0.5"        // Turning rate.
        "HasAggressiveStance"        "0"            // Plays alternate idle/run animation when near enemies
        "FollowRange"                "100"        // Distance to keep when following

        // Status
        //----------------------------------------------------------------
        "StatusHealth"                "250"        // Base health.
        "StatusHealthRegen"            "0"            // Health regeneration rate.
        "StatusMana"                "0"            // Base mana.
        "StatusManaRegen"            "0"            // Mana regeneration rate.
        "StatusStartingMana"        "-1"        // -1 means default to full mana

        // Team
        //----------------------------------------------------------------
        "TeamName"                    "DOTA_TEAM_GOODGUYS"
        "CombatClassAttack"            "DOTA_COMBAT_CLASS_ATTACK_HERO"
        "CombatClassDefend"            "DOTA_COMBAT_CLASS_DEFEND_HERO"
        "UnitRelationshipClass"        "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
      
        // Vision
        //----------------------------------------------------------------
        "VisionDaytimeRange"        "575"        // Range of vision during day light.
        "VisionNighttimeRange"        "575"        // Range of vision at night time.
      
        // Bots
        //----------------------------------------------------------------
        "AttackDesire"                "1.0"        // How much bots want to attack them vs other non-hero things

        //Inventory
        "HasInventory"                "1"

        "IdleSoundLoop"                ""
    }
}
Нужно KV в heroes и units
 

danilkoo832832

Пользователь
5 Фев 2016
40
3
Что-то я ничего не понимаю. Надо юнита добавить в "DOTAHeroes" и в "DOTAUnits"? Я так сделал, но проблема остаётся. Потом решил и в npc_heroes_custom. Создай файл с юнитом и привязал его к в двух этих файлах с помощью #base, позже просто записал юнита без #base.
 

Pancer

Активный
30 Мар 2017
127
5
steamcommunity.com
Проект
MARVEL Heroes
Что-то я ничего не понимаю. Надо юнита добавить в "DOTAHeroes" и в "DOTAUnits"? Я так сделал, но проблема остаётся. Потом решил и в npc_heroes_custom. Создай файл с юнитом и привязал его к в двух этих файлах с помощью #base, позже просто записал юнита без #base.
Юнита (если это не герой) надо записывать только в "DOTAUnits" в npc_units_custom.txt. А проблема-то в чём?
 

Pancer

Активный
30 Мар 2017
127
5
steamcommunity.com
Проект
MARVEL Heroes
Слушайте, а как можно получить статистику о герое из npc_heroes_custom.txt? Например, мне надо получить значение "ArmorPhysical" для работы в lua. Находил вот это self:GetParent():GetKeyValue("ArmorPhysical"), но выдаёт ошибку о том, что нет значения.
 
Последнее редактирование:

shesmu

Продвинутый
22 Фев 2018
158
22
Слушайте, а как можно получить статистику о герое из npc_heroes_custom.txt? Например, мне надо получить значение "ArmorPhysical" для работы в lua. Находил вот это self:GetParent():GetKeyValue("ArmorPhysical"), но выдаёт ошибку о том, что нет значения.
LoadKeyValues( "scripts/npc/npc_heroes_custom.txt" )[ self:GetParent():GetUnitName() ][ "ArmorPhysical" ], функции GetKeyValue не существует
 
  • Нравится
Реакции: GooDDarK

WinTPo

Новичок
26 Янв 2019
1
0
Всем привет! Цель у меня такая - нужно на иконку скилла сделать иконку героя. Как это правильно сделать? Остановился на том, чтобы создать просто новые иконки и указать путь, а где взять эти иконки? Рылся в файлах доты не нашел.
 

Thunder Lane

Активный
30 Сен 2018
87
16
Проект
Thunder's COT RPG
Всем привет! Цель у меня такая - нужно на иконку скилла сделать иконку героя. Как это правильно сделать? Остановился на том, чтобы создать просто новые иконки и указать путь, а где взять эти иконки? Рылся в файлах доты не нашел.

Можно просто взять с вики
Пример : https://dota2-ru.gamepedia.com/Ember_Spirit
 
  • Нравится
Реакции: WinTPo

almazist1

Продвинутый

Дикий Пёс

Друзья CG
28 Июн 2017
411
96
Проект
Petri Reborn
Ребят как присвоить победу последнему выжившему на карте?
в слушателе на смерть юнита делать проверку на героя и цикл который считает кол-во живых героев на карте, если жив только один то получать команду и присваивать победу
 

almazist1

Продвинутый
в слушателе на смерть юнита делать проверку на героя и цикл который считает кол-во живых героев на карте, если жив только один то получать команду и присваивать победу
Код:
chek = 0
-- An entity died
function GameMode:OnEntityKilled( keys )
  DebugPrint( '[BAREBONES] OnEntityKilled Called' )
  DebugPrintTable( keys )


  -- The Unit that was Killed
  local killedUnit = EntIndexToHScript( keys.entindex_killed )
  -- The Killing entity
  local killerEntity = nil

  if keys.entindex_attacker ~= nil then
    killerEntity = EntIndexToHScript( keys.entindex_attacker )
  end

  -- The ability/item used to kill, or nil if not killed by an item/ability
  local killerAbility = nil

  if keys.entindex_inflictor ~= nil then
    killerAbility = EntIndexToHScript( keys.entindex_inflictor )
  end

  local damagebits = keys.damagebits -- This might always be 0 and therefore useless
-----------------------------

-------------------------

-------------------------
if killedUnit:IsHero()then
    if killedUnit:IsHero() and killedUnit:IsAlive() then
    chek = chek + 1
    end
   
    if chek == 1 then
    GameRules:SetGameWinner(killedUnit:GetTeam())
    end
   
end
-------------------------
-----------------------------
  -- Put code here to handle when an entity gets killed
end
так?
 

Thunder Lane

Активный
30 Сен 2018
87
16
Проект
Thunder's COT RPG
Привет, ты сделал победу последнему выжившему игроку? Просто нашел твой пост тут на форуме, и сам столкнулся с такой проблемой.
Привет и к сожалению нет так как вообще не разбираюсь в скриптах
 

Pancer

Активный
30 Мар 2017
127
5
steamcommunity.com
Проект
MARVEL Heroes
А как можно текстуру сделать полупрозрачной? Или модель надо сделать полупрозрачной? Просто надо сделать очки для персонажа, чтобы были видны глаза персонажа через них.
 

xDes

Продвинутый
8 Ноя 2018
232
34
Проект
Boss Survival Adventure
как сделать команду в чате GG ? как в капитанском моде
 

Pancer

Активный
30 Мар 2017
127
5
steamcommunity.com
Проект
MARVEL Heroes
Как определить, какой тип и сколько урона наноситься (чистый, магический, критический)? И как посмотреть сколько времени весит на врага дебафф (замедление, оглушение)?
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: