farkmt2official 1
farkmt2official
mavzermete 1
mavzermete
dreamstone 1
dreamstone
Fethi Polat 1
Fethi Polat
Bvural41 1
Bvural41
OnurBoyla 1
OnurBoyla
Hikaye Ekle

FiveM Script - Stress Sistemi ve Stress Barı

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhabalar arkadaşlar,

Stress sistemi ile alakalı olarak talepler olduğunu gördüm ve bununla alakalı olarak yardımcı olmaya çalışmak istedim.

Öncelikle stress sistemi bir script olarak atıp çalıştıracağınız bir sistem değil. Stress, açlık ve susuzluktan yola çıkılarak bir fikir sahibinin ortaya çıkardığı bir sistem.

Bu sebeple ilk olarak düzenlememiz gereken script esx_basicneeds olacaktır. Kendi basicneeds kodlarımı stress ile alakalı satırlarını buraya yapıştırıyorum. 99- 110 arasında satırlarda hangi düzeyde ne kadar sallanacağını ve ne kadar oranda hangi sallantıyı yaşayacağını ayarlayabilirsiniz.

Kod:
ESX          = nil
local IsDead = false
local IsAnimated = false

Citizen.CreateThread(function()
    while ESX == nil do
        TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
        Citizen.Wait(0)
    end
end)

AddEventHandler('esx_basicneeds:resetStatus', function()
    TriggerEvent('esx_status:set', 'hunger', 500000)
    TriggerEvent('esx_status:set', 'thirst', 500000)
    TriggerEvent('esx_status:set', 'stress', 100000)
end)

RegisterNetEvent('esx_basicneeds:healPlayer')
AddEventHandler('esx_basicneeds:healPlayer', function()
    -- restore hunger & thirst
    TriggerEvent('esx_status:set', 'hunger', 1000000)
    TriggerEvent('esx_status:set', 'thirst', 1000000)
    TriggerEvent('esx_status:set', 'stress', 200000)

    -- restore hp
    local playerPed = PlayerPedId()
    SetEntityHealth(playerPed, GetEntityMaxHealth(playerPed))
end)

AddEventHandler('esx:onPlayerDeath', function()
    IsDead = true
end)

AddEventHandler('playerSpawned', function(spawn)
    if IsDead then
        TriggerEvent('esx_basicneeds:resetStatus')
    end

    IsDead = false
end)

AddEventHandler('esx_status:loaded', function(status)

    TriggerEvent('esx_status:registerStatus', 'hunger', 1000000, '#CFAD0F', function(status)
        return true
    end, function(status)
        status.remove(100)
    end)

    TriggerEvent('esx_status:registerStatus', 'thirst', 1000000, '#0C98F1', function(status)
        return true
    end, function(status)
        status.remove(75)
    end)

    TriggerEvent('esx_status:registerStatus', 'stress', 100000, '#cadfff', function(status)
        return false
    end, function(status)
        status.add(20)
    end)
  
    Citizen.CreateThread(function()
        while true do
            Citizen.Wait(1000)

            local playerPed  = PlayerPedId()
            local prevHealth = GetEntityHealth(playerPed)
            local health     = prevHealth
            local stressVal  = 0

            TriggerEvent('esx_status:getStatus', 'hunger', function(status)
                if status.val == 0 then
                    if prevHealth <= 150 then
                        health = health - 5
                    else
                        health = health - 1
                    end
                end
            end)

            TriggerEvent('esx_status:getStatus', 'thirst', function(status)
                if status.val == 0 then
                    if prevHealth <= 150 then
                        health = health - 5
                    else
                        health = health - 1
                    end
                end
            end)

            TriggerEvent('esx_status:getStatus', 'stress', function(status)
                stressVal = status.val
            end)

            if health ~= prevHealth then
                SetEntityHealth(playerPed, health)
            end

            if stressVal >= 750000 then
                Citizen.Wait(3000)
                ShakeGameplayCam('LARGE_EXPLOSION_SHAKE', 0.35)
            elseif stressVal >= 700000 then
                Citizen.Wait(4000)
                ShakeGameplayCam('LARGE_EXPLOSION_SHAKE', 0.27)
            elseif stressVal >= 600000 then
                Citizen.Wait(5000)
                ShakeGameplayCam('LARGE_EXPLOSION_SHAKE', 0.20)
            elseif stressVal >= 350000 then
                Citizen.Wait(6000)
                ShakeGameplayCam('LARGE_EXPLOSION_SHAKE', 0.07)
            end
        end
    end)
end)

Stressi arttırmak için neleri yaptığında stress artsın ayarı tamamen size kalmış durumda. Artmasını istediğiniz işlemin kodlarının arasında
TriggerClientEvent('esx_status:add', source, 'stress', 100000) kodunu eklemeniz yeterli olacaktır. "100000" değerini siz istediğiniz gibi belirtebilirsiniz.

Düşürmek için ise aşağıda yer alan kodu yazabilirsiniz. Bunu bir yiyecek veya içecekte de kullanabilirsiniz.
TriggerClientEvent('esx_status:remove', source, 'stress', 100000)

Son olarak bar için ise kullandığınız bar için ise sizin yapınıza göre ufak değişiklikler yapmanız gerekmekte. Eğer sadece açlık ve susuzluk varsa ve sunucunuzda sarhoşluk seviyesi özelliği yoksa.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst