- 20.06.2022
- 26 977
- 230
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1

Небольшой гайд по замене любых моделей в софте hake на примере курьеров
Приветствую! Решил публично поделиться наработками псевдо-чейнджера для юзеров hake
Не для кого не секрет что данный софт имеет достаточно кастрированный чейнджер в котором можно менять разве что вещи на героях, находясь непосредственно в игре.
Данный мини-гайд направлен решить эту проблему нестандартным способом без участия разработчиков.
Будем использовать костыльный метод замены, путем скрипта.
Рабочий пример кода:
Код:
local CChanger = {}
CChanger.courierChanger = Menu.AddOption({"Couriers Changer [Example]"}, "Enable", "")
CChanger.courierModel = Menu.AddOption({"Couriers Changer [Example]"}, "Courier Type:", "", 0, 3, 1)
Menu.SetValueName(CChanger.courierModel, 0, "Baby Roshan TI10")
Menu.SetValueName(CChanger.courierModel, 1, "Baby Roshan TI9")
Menu.SetValueName(CChanger.courierModel, 2, "Gold Greevil")
Menu.SetValueName(CChanger.courierModel, 3, "Amaterasu")
--Пример:
--[[if NPC.GetCurrentLevel(npc) < 3 then -- Если уровень курьера < 3 применяем пешую модель
Entity.SetModel(npc, model path)
else -- Если уровень курьера > 3 применяем летающую модель
Entity.SetModel(npc, model path)
end--]]
function CChanger.OnUpdate()
if Engine.IsInGame() == false then return end
if Menu.IsEnabled(CChanger.courierChanger) == false then return end
local setCourier = Menu.GetValue(CChanger.courierModel)
for i = 1, NPCs.Count() do
local npc = NPCs.Get(i)
if NPC.IsCourier(npc) and Entity.IsSameTeam(npc, Heroes.GetLocal()) and Entity.GetField(npc, "m_iIsControllableByPlayer64") and Entity.IsAlive(npc) and Entity.OwnedBy(npc, Players.GetLocal())
then
if setCourier == 0 then
if NPC.GetCurrentLevel(npc) < 3 then
Entity.SetModel(npc, "models/courier/baby_rosh/babyroshan_ti10_dire.vmdl_c")
else
Entity.SetModel(npc, "models/courier/baby_rosh/babyroshan_ti10_dire_flying.vmdl_c")
end
end
if setCourier == 1 then
if NPC.GetCurrentLevel(npc) < 3 then
Entity.SetModel(npc, "models/courier/baby_rosh/babyroshan_ti9.vmdl_c")
else
Entity.SetModel(npc, "models/courier/baby_rosh/babyroshan_ti9_flying.vmdl_c")
end
end
if setCourier == 2 then
if NPC.GetCurrentLevel(npc) < 3 then
Entity.SetModel(npc, "models/courier/gold_mega_greevil/gold_mega_greevil.vmdl_c")
else
Entity.SetModel(npc, "models/courier/gold_mega_greevil/gold_mega_greevil_flying.vmdl_c")
end
end
if setCourier == 3 then
if NPC.GetCurrentLevel(npc) < 3 then
Entity.SetModel(npc, "models/items/courier/amaterasu/amaterasu.vmdl_c")
else
Entity.SetModel(npc, "models/items/courier/amaterasu/amaterasu_flying.vmdl_c")
end
end
end
end
end
return CChanger
Данный метод очень прост в использовании, но позволит вам менять абсолютно любые игровые модели, будь то деревья, или прочие NPC.
Для поиска требуемых моделей рекомендую использовать

Последние темы в этом разделе:
- База знаний по Dota 2 Tools
- Самые популярные герои на рейтинге 8000+ в патче 7.36c
- Гайд по подбору аккаунта Dota 2 - Как избежать смурф бана в Dota 2
- Как играть на рекрутах на новых аккаунтах в Dota 2
- Оптимизируем DOTA 2 для слабых ПК
- Меняем деревья (tree changer) в Dota 2 на любые - Скины tree changer для Dota 2
- Делаем свой AHK скрипт для авто принятия игры Dota 2
- Как собрать vpk файлы самому
- Пак звуков для Dota 2 [Soundpad][Оск. Рамзеса Алохи и Санекинга][Папич]
- Самые необычные настройки в Dota 2 у про-игроков