Вопрос Система тяжести при ношении оружия

  • 5
  • 0
Контакты для связи отсутствуют.
Как возможно сделать ходьбу медленнее при различных видах оружия в руках?
 
  • Nellored
  • Модератор раздела "Garry's Mod"
  • 831
  • 160
  • 174
Я бы сделал так:
Задал значение стандартной скорости ходьбы, например GM.WalkSpeed = 240.
Задал оружию вес, например: в файле оружия swb_ak47 задал SWEP.Weight = 30. Так же можно просто задать таблицу где-нибудь с такими же значениями по классам оружий, swb_ak47 = 30.
Через хук GM:PlayerSwitchWeapon брал значение у оружия и выставлял игроку значение через Player:SetWalkSpeed, а если у оружия нет параметра Weight, то пропускаем просто возращаемся.
Попробую своими кривыми руками предоставить тебе примерный код.
Lua:
function GM:PlayerSwitchWeapon(pl, prev, now)
    if not now.Weight then
        return
    end
    pl:SetWalkSpeed(GM.WalkSpeed - now.Weight)
end

так же представлю пример для классов
Lua:
-- пускай, это будет задано в другом файле, но напишу тут
GM.WeaponsWeight = {
    ["swb_ak47"] = 30,
}

function GM:PlayerSwitchWeapon(pl, prev, now)
    local nowclass = now:GetClass()
    if not GM.WeaponsWeight[nowclass] then
        return
    end
    pl:SetWalkSpeed(GM.WalkSpeed - GM.WeaponsWeight[nowclass])
end
поидее правильно, прошу прощения, если ошибся
 
Сверху Снизу