[LimbRagdollEffect] Вызов GetHitGroup недоступен или возвращает nil.
```lua
-- Серверный скрипт: lua/autorun/server/example.lua

util.AddNetworkString("LimbRagdollEffect") -- Для связи с клиентом, если необходимо

-- Получаем метатаблицу игрока
local PlayerMeta = FindMetaTable("Player")
if not PlayerMeta then
    error("Не удалось найти метатаблицу 'Player'")
end

-- Функция для получения физического объекта кости
function PlayerMeta:GetBonePhysicsObject(bone)
    if not self:GetBoneCount() then return nil end
    local phys = self:GetPhysicsObjectNum(bone)
    if IsValid(phys) then
        return phys
    end
    return nil
end

hook.Add("EntityTakeDamage", "LimbRagdollEffect", function(target, dmginfo)
    if not IsValid(target) or not target:IsPlayer() then return end

    -- Добавляем отладочный вывод для проверки доступности метода GetHitGroup
    if not dmginfo.GetHitGroup or not dmginfo.GetHitGroup(dmginfo) then
        print("[LimbRagdollEffect] Вызов GetHitGroup недоступен или возвращает nil.")
        return
    end

    local hitgroup = dmginfo:GetHitGroup()

    -- Добавляем отладочный вывод для значения hitgroup
    print("[LimbRagdollEffect] Полученная группа попадания: " .. tostring(hitgroup))

    -- Определяем, в какую конечность попали
    local limbHitgroups = {
        [HITGROUP_LEFTARM] = "ValveBiped.Bip01_L_UpperArm",  -- Левая рука
        [HITGROUP_RIGHTARM] = "ValveBiped.Bip01_R_UpperArm", -- Правая рука
        [HITGROUP_LEFTLEG] = "ValveBiped.Bip01_L_UpperLeg",  -- Левая нога
        [HITGROUP_RIGHTLEG] = "ValveBiped.Bip01_R_UpperLeg"  -- Правая нога
    }

    local boneName = limbHitgroups[hitgroup]
    if not boneName then
        print("[LimbRagdollEffect] Попадание не в конечность. Группа: " .. tostring(hitgroup))
        return
    end

    local boneIndex = target:LookupBone(boneName)
    if not boneIndex then
        print("[LimbRagdollEffect] Не удалось найти индекс кости: " .. boneName)
        return
    end

    -- Проверяем, не был ли уже активирован эффект для этой кости
    if target.RagdollBones and target.RagdollBones[boneIndex] then
        print("[LimbRagdollEffect] Эффект уже применен к кости: " .. boneName)
        return
    end

    target.RagdollBones = target.RagdollBones or {}
    target.RagdollBones[boneIndex] = true

    -- Временно отключаем анимацию кости путем установки ее масштаба в ноль
    target:ManipulateBoneScale(boneIndex, Vector(0, 0, 0))

    -- Получаем физический объект кости и включаем движение
    local physObj = target:GetBonePhysicsObject(boneIndex)
    if IsValid(physObj) then
        physObj:EnableMotion(true)
        
        -- Применяем небольшую силу для имитации ragdoll эффекта
        local forceDirection = VectorRand() * 1000
        physObj:ApplyForceCenter(forceDirection)
        print("[LimbRagdollEffect] Применена сила к кости: " .. boneName)
    else
        print("[LimbRagdollEffect] Физический объект кости недоступен: " .. boneName)
    end

    -- Таймер для восстановления состояния через 1 секунду
    timer.Simple(1, function()
        if not IsValid(target) then return end

        -- Восстанавливаем масштаб кости
        target:ManipulateBoneScale(boneIndex, Vector(1, 1, 1))

        -- Отключаем физику кости, чтобы она снова следовала анимации
        local physObj = target:GetBonePhysicsObject(boneIndex)
        if IsValid(physObj) then
            physObj:EnableMotion(false)
            physObj:SetVelocity(Vector(0, 0, 0)) -- Сбрасываем скорость
            print("[LimbRagdollEffect] Физика кости отключена и скорость сброшена: " .. boneName)
        end

        -- Обновляем кость модели
        target:InvalidateBoneCache()
        target:SetupBones()

        -- Убираем метку, что эффект применен
        if target.RagdollBones then
            target.RagdollBones[boneIndex] = nil
            -- Если больше нет костей с активным эффектом, очищаем таблицу
            if not next(target.RagdollBones) then
                target.RagdollBones = nil
            end
            print("[LimbRagdollEffect] Эффект восстановлен для кости: " .. boneName)
        end
    end)
end)
```