Hiding ancient apparition cosmetics

edited January 31 in General

I feel like this problem has already been solved a long time ago, but i can't figure it out.

As you can see in the picture, my custom goofy hero still shows aa-model pieces at the hero selection screen.

https://snag.gy/XABWuT.jpg

i've read in a thread that u can

1) replace models with empty vmdl's

2) use a lua function

but the problem is that i don't know where the aa model pieces are located for solution 1

for solution 2 i think i already implemented this solution a long time ago (i recently started modding again after 7 months) but while this does work for the hero while he is ingame , it still shows aa stuff on the hero picking screen.

I thought , well maybe i can remove the aa-pieces as soon as the hero is selected, so that would be here

-- A player picked a hero
function GameMode:OnPlayerPickHero(keys)
  DebugPrint('[BAREBONES] OnPlayerPickHero')
  DebugPrintTable(keys)

  local heroClass = keys.hero
  local heroEntity = EntIndexToHScript(keys.heroindex)
  local player = EntIndexToHScript(keys.player)
  print(heroClass)
  print(player)
end

but the actual hero isnt there yet, its just the class and the player

Comments

  • Posts: 329

    aaah i just realized they updated aa model recently, thats why i did not have this problem 7 months ago

  • Posts: 182

    theres some key like "DisableWearables" "1" that you can put in your npc_heroes_custom

  • Posts: 329

    this didnt work for me, i still see the aa stuff

  • Posts: 329

    tried this, but that didnt work eaither

    -- A player picked a hero
    function GameMode:OnPlayerPickHero(keys)
      DebugPrint('[BAREBONES] OnPlayerPickHero')
      DebugPrintTable(keys)
    
      local heroClass = keys.hero
      local heroEntity = EntIndexToHScript(keys.heroindex)
      local player = EntIndexToHScript(keys.player)
    
      local children = heroEntity:GetChildren()
      for k,child in pairs(children) do
         if child:GetClassname() == "dota_item_wearable" then
             child:RemoveSelf()
         end
      end
    end
    

    I also tried with another model (axe) and that ddint work either

  • "DisableWearables" "1" works, you must have misused it

  • Posts: 329
      "npc_dota_hero_goofy"
      {
        "AbilityLayout"     "6"
        "override_hero"     "npc_dota_hero_ancient_apparition"
        "Model"             "models/goofygood12bigger/goofy.vmdl"
        "ModelScale"        "1.0"
        "SoundSet"  "CNY_Beast"
        "IdleSoundLoop"                "CNY_Beast.Breath"
        "HeroSelectSoundEffect"     "CNY_Beast.Spawn.Radiant"
        "Ability1"        "goofy_drop_coin" 
        "Ability2"        "goofy_tumble" 
        "Ability3"        "goofy_roar" 
        "Ability4"        "goofy_song"
        "Ability5"        ""
        "Ability6"        ""
        "Ability7"        ""
        "Ability8"        ""
    
        "MinimapIcon"        "minimap_goofy"
        "MinimapIconSize"    "1000"
        "MinimapDisableTint" "1"
    
        "DisableWearables"          "1"
    
        "ArmorPhysical"       "3"                 // Physical protection.
        "MagicalResistance"       "25"                 // Magical protection (percentage).
    
        "AttackCapabilities"    "DOTA_UNIT_CAP_MELEE_ATTACK"
        "AttackDamageMin"     "40"                   // Damage range min.
        "AttackDamageMax"     "43"                   // Damage range max.
    
        "AttributePrimary"      "DOTA_ATTRIBUTE_INTELLECT"
        "AttributeBaseStrength"   "20"                   // Base strength
        "AttributeStrengthGain"   "1.6"                   // Strength bonus per level.
        "AttributeBaseIntelligence" "20"                   // Base intelligence
        "AttributeIntelligenceGain" "1.6"                   // Intelligence bonus per level.
        "AttributeBaseAgility"    "20"                   // Base agility
        "AttributeAgilityGain"    "1.6"                   // Agility bonus per level.
    
        "BountyXP"          "0"                 // Experience earn.
        "BountyGoldMin"       "0"                   // Gold earned min.
        "BountyGoldMax"       "0"                   // Gold earned max.
    
        "BoundsHullName"      "DOTA_HULL_SIZE_HERO"
        "RingRadius"        "70"
    
        "MovementCapabilities"    "DOTA_UNIT_CAP_MOVE_GROUND"
        "MovementSpeed"       "360"                 // Speed.
        "MovementTurnRate"      "0.3"                 // Turning rate.
    
        "StatusHealth"        "800"                 // Base health.
        "StatusHealthRegen"     "0.25"                 // Health regeneration rate.
        "StatusMana"        "400"                   // Base mana.
        "StatusManaRegen"     "0.3"                 // Mana regeneration rate.
    
        "VisionDaytimeRange"    "1800"                  // Range of vision at night time.
        "VisionNighttimeRange"    "1800"                  // Range of vision at night time.
      }
    
  • Posts: 329

    result is as you see in picture 1 (but only on hero selection screen after picking, not ingame)

  • edited February 2 Posts: 329

    Weirdly enough, on my other hero who replaces anti mage it is not a problem, but when i tried to replace this hero with axe it didnt work either, so this would suggest indeed that there is somethign wrong with this substitute hero in particular. But its just 1 line of code i don't see how it can happen

  • Posts: 329

    same problem with my other character

    https://snag.gy/rm2Dhp.jpg

    and the code

    "npc_dota_hero_deku"
      {
        "AbilityLayout"     "6"
        "override_hero"     "npc_dota_hero_axe"
        "Model"             "models/heroacadmia/dekurechtopnieuwnoggroter.vmdl"
        "ModelScale"        "3.0"
        "Portrait"                  "vgui/hud/heroportraits/portrait_axe"
        "SoundSet"                  "Hero_Axe"
        "GameSoundsFile"            "soundevents/game_sounds_heroes/game_sounds_axe.vsndevts"
        "VoiceFile"                 "soundevents/voscripts/game_sounds_vo_axe.vsndevts"
        "HeroSelectSoundEffect"     "mariopick"
        "PickSound"       "mariopick"
        "BanSound"        "marrioban"
        "Ability1"        "mario_dash" 
        "Ability2"        "mario_mushroom" 
        "Ability3"        "mario_pipe" 
        "Ability4"        "mario_mushroomy"
        "Ability5"        ""
        "Ability6"        ""
        "Ability7"        ""
        "Ability8"        ""
    
        "DisableWearables"          "1"
    
        "MinimapIcon"        "minimap_mario"
        "MinimapIconSize"    "1000"
        "MinimapDisableTint" "1"
    
        "ArmorPhysical"       "3"                 // Physical protection.
        "MagicalResistance"       "25"                 // Magical protection (percentage).
    
        "AttackCapabilities"    "DOTA_UNIT_CAP_MELEE_ATTACK"
        "AttackDamageMin"     "40"                   // Damage range min.
        "AttackDamageMax"     "43"                   // Damage range max.
    
        "AttributePrimary"      "DOTA_ATTRIBUTE_INTELLECT"
        "AttributeBaseStrength"   "20"                   // Base strength
        "AttributeStrengthGain"   "1.6"                   // Strength bonus per level.
        "AttributeBaseIntelligence" "20"                   // Base intelligence
        "AttributeIntelligenceGain" "1.6"                   // Intelligence bonus per level.
        "AttributeBaseAgility"    "20"                   // Base agility
        "AttributeAgilityGain"    "1.6"                   // Agility bonus per level.
    
        "BountyXP"          "0"                 // Experience earn.
        "BountyGoldMin"       "0"                   // Gold earned min.
        "BountyGoldMax"       "0"                   // Gold earned max.
    
        "BoundsHullName"      "DOTA_HULL_SIZE_HERO"
        "RingRadius"        "70"
    
        "MovementCapabilities"    "DOTA_UNIT_CAP_MOVE_GROUND"
        "MovementSpeed"       "360"                 // Speed.
        "MovementTurnRate"      "0.3"                 // Turning rate.
    
        "StatusHealth"        "800"                 // Base health.
        "StatusHealthRegen"     "0.25"                 // Health regeneration rate.
        "StatusMana"        "400"                   // Base mana.
        "StatusManaRegen"     "0.3"                 // Mana regeneration rate.
    
        "VisionDaytimeRange"    "1800"                  // Range of vision at night time.
        "VisionNighttimeRange"    "1800"                  // Range of vision at night time.
      }
    
  • Apparently "DisableWearables" only works in-game and the hero selection screen "still looks weird".

  • Posts: 329

    ah so its just a valve thing that we can't do anything about?

  • Sounds about right.

  • Posts: 182

    well.. you could always make your own hero picking screen

  • Posts: 329

    yeah lol, thats possible, but kinda low effort-reward ratio just for some items showing at pick screen

  • Posts: 329

    is there a way to get all the code for the normal dota picking screen, and then just modify it slightly? or is the only option to recreate a whole new one?

  • Posts: 329

    ok guys i actually found a way in here

    https://moddota.com/forums/discussion/95/importing-custom-model-into-the-map-without-any-cosmetics/p1

    it's pretty cumbersome, but doable, you just have to replace all the item models with invisible boxes, ez pz