Announcement

Collapse

Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.



In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.



All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

[Bug] Wearable models are "frozen" on first load in Source 2

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Bug] Wearable models are "frozen" on first load in Source 2

    When you iterate over the child entities of a hero and try to change the dota_item_wearable models, the models remain the original ones, although GetModelName() returns the new set model.
    If you disconnect and load the map again it works. This makes all wearable modification effectively impossible outside Workshop Tools.

    Code by Noya

    Code:
    function HideWearables( hero )
     --local hero = event.caster
     --local ability = event.ability
     --local duration = ability:GetLevelSpecialValueFor( "duration", ability:GetLevel() - 1 )
     print("Hiding Wearables")
     --hero:AddNoDraw() -- Doesn't work on classname dota_item_wearable
    
     hero.wearableNames = {} -- In here we'll store the wearable names to revert the change
     hero.hiddenWearables = {} -- Keep every wearable handle in a table, as its way better to iterate than in the MovePeer system
        local model = hero:FirstMoveChild()
        while model ~= nil do
            if model:GetClassname() ~= "" and model:GetClassname() == "dota_item_wearable" then
                local modelName = model:GetModelName()
                if string.find(modelName, "invisiblebox") == nil then
                 -- Add the original model name to revert later
                 table.insert(hero.wearableNames,modelName)
                 print("Hidden "..modelName.."")
    
                 -- Set model invisible
                 model:SetModel("models/development/invisiblebox.vmdl")
                 table.insert(hero.hiddenWearables,model)
                end
            end
            model = model:NextMovePeer()
            if model ~= nil then
             print("Next Peer:" .. model:GetModelName())
            end
        end
    end
    Identical output both times, but the models only get hidden on the second run.

  • #2
    Worth noting that SetOriginalModel(string model) can not be applied to a dota_item_wearable, as it can only be applied to a BaseNPC.

    This SetOriginalModel function is usually needed when changing models of heroes dynamically, so if this is exposed to CBaseEntity, this issue might be resolved this way.


    Added to the list.
    ModDota | My GitHub Profile | My Project's Page

    Comment


    • #3
      This can be solved by adding SendToServerConsole( "dota_combine_models 0" )

      Marking as "fixed"
      ModDota | My GitHub Profile | My Project's Page

      Comment

      Working...
      X