Думаю вы сами видите что происходит
Админка какая стоит на серве? На юлх может быть такая хрень(у меня такое было…), и скрипт на граб игроков откуда?
FAdmin
local allowed = {
["superadmin"] = true,
["sudoroot"] = true,
-- и т.д.
}
hook.Add("PhysgunPickup", "restrict_physgun", function(ply, ent)
if((ply:Team() != TEAM_HOBO || !allowed[ply:GetUserGroup()]) && ent:GetOwner() != ply)then return end
return true
end)```
Добавь в /garrysmod/cfg/server.cfg
sv_gravity “600”
sv_airaccelerate “100”
Ну, тут явно что-то с гравитацией
Ищи по всей сборке
gravity
Не исключено, что это какой-то другой скрипт/модуль на анти бхоп / анти проп серф и тд
есть на двойной прыжок, он может мозг выносить?
hook.Add("KeyPress", "DoubleJump", function(pl, k)
if not pl or not pl:IsValid() or k~=2 then
return
end
if not pl:HasPurchase("doublejump") then return end
if not pl.Jumps or pl:IsOnGround() then
pl.Jumps=0
end
if pl.Jumps==2 then return end
pl.Jumps = pl.Jumps + 1
if pl.Jumps==2 then
local ang = pl:GetAngles()
local forward, right = ang:Forward(), ang:Right()
local vel = -1 * pl:GetVelocity() -- Nullify current velocity
vel = vel + Vector(0, 0, 300) -- Add vertical force
local spd = pl:GetMaxSpeed()
if pl:KeyDown(IN_FORWARD) then
vel = vel + forward * spd
elseif pl:KeyDown(IN_BACK) then
vel = vel - forward * spd
end
if pl:KeyDown(IN_MOVERIGHT) then
vel = vel + right * spd
elseif pl:KeyDown(IN_MOVELEFT) then
vel = vel - right * spd
end
pl:SetVelocity(vel)
end
end)
если по всей сборке искать, то там 4589 строк с gravity
может всё, что ты “натянул” на обычный прыжок. Убирай и пробуй
С обычным прыжком я ничего не делал, даже не знаю как это сделать
Ты не понял, ясно.
Убери двойной прыжок и тестируй
Не помогло
hook.Add('PhysgunPickup', 'FAdmin_PickUpPlayers', function(pl, ent)
if !isplayer(ent) then return end
--pl-игрок который поднял
--ent кого подняли
if PlayersCanPickUpPlayers:GetBool() or AdminsCanPickUpPlayers:GetBool() and
FAdmin.Access.PlayerHasPrivilege(pl, "PickUpPlayers", ent) and tobool(pl:GetInfo("cl_pickupplayers")) then
ent:SetMoveType(MOVETYPE_NOCLIP)
ent:Freeze(true)
return true
end
end)
и что с этим делать?
засунь в любой sv файл
теперь вообще игроки не поднимаются
hook.Add('PhysgunPickup', 'FAdmin_PickUpPlayers', function(pl, ent)
if !isplayer(ent) then return end
--pl-игрок который поднял
--ent кого подняли
--Без проверки админки и т.д
ent:SetMoveType(MOVETYPE_NOCLIP)
ent:Freeze(true)
return true
end)
Думаю вы сами видите что происходит
Видно только то, что ты избиваешь работягу
А если серьёзно, то это не связано с ни гравитацией, ни с SetMoveType(MOVETYPE_NOOCLIP)
, ни с двойным прыжком.
В стандартном DarkRP уже стоит SetMoveType(MOVETYPE_NONE)
- это отлично работает, это убирает у игроку возможность двигаться.
Тут могут быть только 2 причины:
- У тебя где-то стоит хук
PhysgunPickup
который переписывает стандартный хук от FAdmin. ( напримерreturn true
в конце )
Напиши в консоль сервера вот эту команду и скинь результат (либо найди плохой хук самостоятельно):
lua_run PrintTable(hook.GetTable()['PhysgunPickup'])
- Может у тебя есть хук который переписывает постоянно
MOVETYPE
игрока. Из-за этого и случается такой баг. С решением тут не помогу, нужно дебажить все на сервере.