Смена модели персонажа

Dolaxome

Новичок
27 Ноя 2023
1
0
Проект
League Of Dota
В общем, мне надо условно при нажатии абилки сменить модель джаги на модель лины.
Вот моя функция изменения модельки:
Lua:
function ModelSwap( keys )
    local caster = keys.caster
    local model = keys.model
    
    if caster.caster_model == nil then
        caster.caster_model = caster:GetModelName()
    end
    
    caster:SetOriginalModel(model)
end
Но проблема в том что мы получаем лысую лину (не имеет шмоток), как такое пофиксить?
1701110743127.png
 

iia3uk666

Друзья CG
18 Дек 2021
411
70
Проект
Ушел с CG
Потому-что надо использовать асинхронную функцию свапа персонажа, откуда он подгрузит все партиклы и звуки
 

iia3uk666

Друзья CG
18 Дек 2021
411
70
Проект
Ушел с CG
Пример асинхронного свапа
Lua:
function addon:OnNPCSpawned(event)
    local npc = EntIndexToHScript(event.entindex)
    local heroName = npc:GetUnitName()
    local playerID = npc:GetPlayerOwnerID()
    local team = PlayerResource:GetTeam(playerID)

    if heroName == "npc_dota_hero_wisp" then
        if team == DOTA_TEAM_BADGUYS then
            PrecacheUnitByNameAsync("npc_dota_hero_antimage", function()
                PlayerResource:ReplaceHeroWith(playerID, "npc_dota_hero_antimage", 0, 0)
            end)
        elseif team == DOTA_TEAM_GOODGUYS then
            PrecacheUnitByNameAsync("npc_dota_hero_monkey_king", function()
                PlayerResource:ReplaceHeroWith(playerID, "npc_dota_hero_monkey_king", 0, 0)
            end)
        end
    end
end
 

iia3uk666

Друзья CG
18 Дек 2021
411
70
Проект
Ушел с CG
В доте нельзя вроде менять онли модельку, но это не точно ибо я давно не занимаюсь кастомками, проще свапнуть героя и заместить абилки с одного на другого точно знать, что звуки/партиклы/шмотки подгрузит
 
Реклама: