Хочу поделиться одним лайфхаком, который наверняка облегчит жизнь многим. Лично мне облегчило.
Короче говоря, можно не перезагружать кастомку после каждого обновления скрипта, ведь есть замечательная консольная команда -
script_reload. Она хорошо работает с активными способностями, но есть минус: код уже существующих модификаторов (например, пассивных абилок) не обновляется, их нужно перенакладывать. Собственно, простенький код, который, надеюсь, поможет лишний раз не перезапускать кастомку:
Применение: вставить это в код кастомки и писать в чат команду '-sr' (в идеале несколько раз). Скрипты будут перезагружаться с внесенными в них изменениями (включая пассивные модификаторы). Не перезагружает keyvalues, и вряд ли существует команда, способная их обновить без перезапуска кастомки, увы и ах)
Короче говоря, можно не перезагружать кастомку после каждого обновления скрипта, ведь есть замечательная консольная команда -
script_reload. Она хорошо работает с активными способностями, но есть минус: код уже существующих модификаторов (например, пассивных абилок) не обновляется, их нужно перенакладывать. Собственно, простенький код, который, надеюсь, поможет лишний раз не перезапускать кастомку:
Lua:
ListenToGameEvent("player_chat", function(keys)
local text = keys.text
local hero = PlayerResource:GetSelectedHeroEntity(keys.playerid)
if hero and text and text == "-sr" then
print('reloading scripts')
local modifiers = hero:FindAllModifiers()
local saved_modifiers = {}
for k,v in pairs(modifiers) do
if v:GetRemainingTime() <= -1 then
table.insert(saved_modifiers, {
name = v:GetName(),
ability = v:GetAbility(),
parent = v:GetParent(),
stacks = v:GetStackCount()
})
hero:RemoveModifierByName(name)
end
end
SendToServerConsole('script_reload')
for k,v in pairs(saved_modifiers) do
hero:AddNewModifier(v.parent, v.ability, v.name, {}):SetStackCount(v.stacks)
end
saved_modifiers = nil
end
end)
Применение: вставить это в код кастомки и писать в чат команду '-sr' (в идеале несколько раз). Скрипты будут перезагружаться с внесенными в них изменениями (включая пассивные модификаторы). Не перезагружает keyvalues, и вряд ли существует команда, способная их обновить без перезапуска кастомки, увы и ах)
Последнее редактирование: