[Dev-Resource] Mythic Hospital (Body Part Damage & Healing)

i can try and nope bro

I mean there’s something that you have that’s conflicting and causing the issues. I’ve tried it several times and works everytime for me so there’s something you have that’s causing it.

With no other resources that’re messing with clipsets, it works fine. If you’re wanting it to work with one that changes the players clipset, you’ll have to implement it.

I understand, but I will not use it in such a great case, but the animation does not work constantly … Still, thank you for everything, the animations are great for the role: /

I will try that alzar, thanks :slight_smile:

so does ESX have a way to disable its health regen to 75? it seems to be interfering with your bleeding effect

Probably GTA regen, disable it with

SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0)
1 Like

where would this go exactly?

Any client script, only needs to be called once

@Alzar
can you tip any example for save injuries after relog? please

Json encode the list, store it in DB. When the player logs in , retrieve the string from the DB and json decode it

No way.
Is there something similar where to see how to do it?

It’d be the same as the way you store & retrieve anything else from the Database.

But when storing, use json.encode() & when you’re retreiving use json.decode(). Than add the below event to the Wounds.lua file and call it while passing the decoded json object to it. Storing & syncing bleed is just storing & retreiving the int value, the event to sync that already exists in the client file.

RegisterNetEvent('mythic_hospital:client:SyncLimbs')
AddEventHandler('mythic_hospital:client:SyncLimbs', function(limbs)
    BodyParts = limbs

    for k, v in pairs(BodyParts) do
        if v.isDamaged then
            table.insert(injured, {
                part = k,
                label = v.label,
                severity = v.severity
            })
        end
    end
end)

i keep falling through the map

how do u heal the limp?

edit

anyone know how to send the money into society for ems

Citizen.CreateThread(function()
    while true do
        Citizen.Wait(0)
        SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0)
    end
end)

replace SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0)
in client/main.lua

1 Like

use a medkit, go to hospital, use vicodin to temporarily heal it

Is there a fix for the crouch and prone issue?

this is to heal the limp? that line of code?

Also was wondering how can I make it so the EMS can heal the limp for someone as well

that code is to make it so the health stops regenerating

Alzar has given a fix
Add to client/wound.lua

Citizen.CreateThread( function()
    while true do
    Citizen.Wait( 1 )

        local ped = PlayerPedId()

        if ( DoesEntityExist( ped ) and not IsEntityDead( ped ) ) then 
            DisableControlAction( 0, 36, true ) -- INPUT_DUCK  

            if ( not IsPauseMenuActive() ) then 
                if ( IsDisabledControlJustPressed( 0, 36 ) ) then 
                    RequestAnimSet( "move_ped_crouched" )

                    while ( not HasAnimSetLoaded( "move_ped_crouched" ) ) do 
                        Citizen.Wait( 1 )
                    end 

                    if ( crouched == true ) then
                        if IsInjuryCausingLimp() and not (onPainKiller > 0)  then
                            RequestAnimSet("move_m@injured")
                            while not HasAnimSetLoaded("move_m@injured") do
                                Citizen.Wait(0)
                            end
                            SetPedMovementClipset(ped, "move_m@injured", 0.25 )
                        else
                            ResetPedMovementClipset(ped, 0.25)
                        end
                        crouched = false 
                    elseif ( crouched == false ) then
                        SetPedMovementClipset( ped, "move_ped_crouched", 0.25 )
                        SetPedStrafeClipset(ped, 'move_ped_crouched_strafing')
                        crouched = true 
                    end 
                end
            end 
        end 
    end
end)

find ProcessRunStuff and replace it all with this

function ProcessRunStuff(ped)
    if not crouched then
        if IsInjuryCausingLimp() and not (onPainKiller > 0)  then
            RequestAnimSet("move_m@injured")
            while not HasAnimSetLoaded("move_m@injured") do
                Citizen.Wait(0)
            end
            SetPedMovementClipset(ped, "move_m@injured", 1 )
            SetPlayerSprint(PlayerId(), false)
    
            local level = 0
            for k, v in pairs(injured) do
                if v.severity > level then
                    level = v.severity
                end
            end
    
            SetPedMoveRateOverride(ped, MovementRate[level])
    
            if wasOnPainKillers then
                SetPedToRagdoll(PlayerPedId(), 1500, 2000, 3, true, true, false)
                wasOnPainKillers = false
                exports['mythic_notify']:DoCustomHudText('inform', 'You\'ve Realized Doing Drugs Does Not Fix All Your Problems', 5000)
            end
        else
            SetPedMoveRateOverride(ped, 1.0)
            RemoveClipSet("move_m@injured")
    
            if not wasOnPainKillers and (onPainKiller > 0) then wasOnPainKillers = true end
    
            if onPainKiller > 0 then
                onPainKiller = onPainKiller - 1
            end
        end
    end
end