Вопрос Вопрос по кодингу

  • 14
  • 0
Контакты для связи отсутствуют.
У меня имеется код:
Lua:
local function weaponspeed()
        ply:GetActiveWeapon():GetClass()
        if ply:HasWeapon("at_sw_dc15s_recon3", "at_sw_dc15s_recon2", "at_sw_dc15s_recon1") then
           ply:SetRunSpeed(300)
           else
           ply:SetRunSpeed(250)
      end
end
Суть в том что если у игрока в руках определенная пушка то ему ставится скорость 300, а если эта пушка отсутствует в руках/инвентаре то 250
Код не работает
Знающие люди подскажите, че куда кидать и правильно ли эта херня вообще написана
 
Последнее редактирование:
  • Nellored
  • Модератор раздела "Garry's Mod"
  • 831
  • 160
  • 172


Код:
local function weaponspeed()
      local wp = ply:GetActiveWeapon():GetClass()
      if wp == "at_sw_dc15s_recon3" or wp == "at_sw_dc15s_recon2" or wp == "at_sw_dc15s_recon1" then
          ply:SetRunSpeed(300)
      else
          ply:SetRunSpeed(250)
      end
end
 
Последнее редактирование:
  • 14
  • 0
Контакты для связи отсутствуют.


Код:
local function weaponspeed()
      local wp = ply:GetActiveWeapon():GetClass()
      if wp == "at_sw_dc15s_recon3" or wp == "at_sw_dc15s_recon2" or wp == "at_sw_dc15s_recon1" then
          ply:SetRunSpeed(300)
      else
          ply:SetRunSpeed(250)
      end
end
Благодарю, а куда это кидать? в модулях даркрп оно не работает
 
  • 59
  • 1
  • 15
Вообще это должно делаться на стороне оружия когда оно меняется, НО если ты не понимаешь но хочешь, то вот 2 варианта

1.Возможны лаги из за постоянного вызова SetRunSpeed

hook.Add("Think", "ChangeRunSpeed", function()
for _, ply in next player.GetAll() do
local wp = ply:GetActiveWeapon():GetClass()
if wp == "at_sw_dc15s_recon3" or wp == "at_sw_dc15s_recon2" or wp == "at_sw_dc15s_recon1" then
ply:SetRunSpeed(300)
else
ply:SetRunSpeed(250)
end
end
end)

2.Более дешевый вариант с активацией каждую секунду

timer.Create("ChangePlayerSpeed", 1, 0, function()
for _, ply in next player.GetAll() do
local wp = ply:GetActiveWeapon():GetClass()
if wp == "at_sw_dc15s_recon3" or wp == "at_sw_dc15s_recon2" or wp == "at_sw_dc15s_recon1" then
ply:SetRunSpeed(300)
else
ply:SetRunSpeed(250)
end
end
end)

один из этих вариантов кидай просто в серверную часть(sv)
иначе в shared(sh) с проверкой на сервер if SERVER then ... end
 
Сверху Снизу