Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Türkiye'nin İlk ve tek FiveM forum adresi

Forum adresimize hoş geldin FiveMTürk olarak amacımız siz değerli kullanıcılarımıza en aktif fikir ve paylaşım platformu sunmak bir yana en güvenilir şekilde alışveriş yapabileceğiniz bir platform sunmaktır.
DF DF
DF DF
DF DF

Rehber Client Tarafından RESMON Optimizasyon

Deniz11

?Loper
Yasaklandı
FT Kullanıcı
Katılım
4 yıl 4 ay 3 gün
Mesajlar
417
Herkese merhabalar karşılaştığım sunucuların çoğunda en basit bazı scriptler bile 0.10 çekiyor. Bu yüzden bu rehberi oluşturuyorum. Dikkatlice okursanız ve yaparsanız script'i bozmadan resmon optimizasyonu yapabilirsiniz.

HERHANGİ BİR YARDIM VS. YAPMAYACAĞIM

Bu işlemleri yapmadan önce editleyeceğiniz script'in kopyasını alın.

İlk önce ;

Kod:
GetPlayerPed(-1)

kodunu kesinlikle kullanmıyoruz. Eğer script'in içinde var ise şu şekilde değiştiriyoruz.

Kod:
PlayerPedId()

İkinci Aşama ;

Kod:
CreateThread(function()

ile başlayan kodları editleyeceğiz.
Bu kodların ms arttırma sebebi " Citizen.Wait() " kodudur. Parantezin içindeki kod ne kadar az ise o kadar hızlı kontrol ediyordur içinde ki kod satırlarını.
1000 = 1 saniye
Citizen.Wait(1000) = 1 saniyede 1 kontrol demektir.

O yüzden bu kodları editleyeceğiz. Burdaki mantık en çok,bir yerde misin değil misin diye kontrol yapar.
Bu kodları şu şekilde düzelteceğiz. Eğer kişi belirlenen alandan uzak ise 5 veya 4 saniyede bir şekilde, eğer kişi belirlenen kodlara daha yakın ise daha hızlı kontrol yapacak.

Şöyle yapacağız.

esx_advancedgarage ile örnek veriyorum. Marker oluşturma kodu ;

Editlemiş olduğum hali :

Kod:
Citizen.CreateThread(function()
    while true do
        local sleep = 2000

        while ESX == nil do
            TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
            Citizen.Wait(0)
        end
       
        local playerPed = PlayerPedId()
        local coords    = GetEntityCoords(playerPed)
       
        if Config.UseCarGarages == true then
            -- Car Garages
            for k,v in pairs(Config.CarGarages) do
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) < 20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PointMarker.x, Config.PointMarker.y, Config.PointMarker.z, Config.PointMarker.r, Config.PointMarker.g, Config.PointMarker.b, 100, false, true, 2, false, false, false, false)  
                    DrawMarker(Config.MarkerType, v.DeletePoint.x, v.DeletePoint.y, v.DeletePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.DeleteMarker.x, Config.DeleteMarker.y, Config.DeleteMarker.z, Config.DeleteMarker.r, Config.DeleteMarker.g, Config.DeleteMarker.b, 100, false, true, 2, false, false, false, false)  
                end
            end
           
            -- Car Pounds
            for k,v in pairs(Config.CarPounds) do
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PoundMarker.x, Config.PoundMarker.y, Config.PoundMarker.z, Config.PoundMarker.r, Config.PoundMarker.g, Config.PoundMarker.b, 100, false, true, 2, false, false, false, false)
                end
            end
        end
       
        if Config.UseBoatGarages == true then
            -- Boat Garages
            for k,v in pairs(Config.BoatGarages) do
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PointMarker.x, Config.PointMarker.y, Config.PointMarker.z, Config.PointMarker.r, Config.PointMarker.g, Config.PointMarker.b, 100, false, true, 2, false, false, false, false)  
                    DrawMarker(Config.MarkerType, v.DeletePoint.x, v.DeletePoint.y, v.DeletePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.DeleteMarker.x, Config.DeleteMarker.y, Config.DeleteMarker.z, Config.DeleteMarker.r, Config.DeleteMarker.g, Config.DeleteMarker.b, 100, false, true, 2, false, false, false, false)  
                end
            end
           
            -- Boat Pounds
            for k,v in pairs(Config.BoatPounds) do
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PoundMarker.x, Config.PoundMarker.y, Config.PoundMarker.z, Config.PoundMarker.r, Config.PoundMarker.g, Config.PoundMarker.b, 100, false, true, 2, false, false, false, false)
                end
            end
        end
       
        if Config.UseAircraftGarages == true then
            -- Aircraft Garages
            for k,v in pairs(Config.AircraftGarages) do
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PointMarker.x, Config.PointMarker.y, Config.PointMarker.z, Config.PointMarker.r, Config.PointMarker.g, Config.PointMarker.b, 100, false, true, 2, false, false, false, false)  
                    DrawMarker(Config.MarkerType, v.DeletePoint.x, v.DeletePoint.y, v.DeletePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.DeleteMarker.x, Config.DeleteMarker.y, Config.DeleteMarker.z, Config.DeleteMarker.r, Config.DeleteMarker.g, Config.DeleteMarker.b, 100, false, true, 2, false, false, false, false)  
                end
            end
           
            -- Aircraft Pounds
            for k,v in pairs(Config.AircraftPounds) do
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PoundMarker.x, Config.PoundMarker.y, Config.PoundMarker.z, Config.PoundMarker.r, Config.PoundMarker.g, Config.PoundMarker.b, 100, false, true, 2, false, false, false, false)
                end
            end
        end

        if Config.UseHelicopterGarages == true then
            -- Aircraft Garages
            for k,v in pairs(Config.HelicopterGarages) do
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PointMarker.x, Config.PointMarker.y, Config.PointMarker.z, Config.PointMarker.r, Config.PointMarker.g, Config.PointMarker.b, 100, false, true, 2, false, false, false, false)  
                    DrawMarker(Config.MarkerType, v.DeletePoint.x, v.DeletePoint.y, v.DeletePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.DeleteMarker.x, Config.DeleteMarker.y, Config.DeleteMarker.z, Config.DeleteMarker.r, Config.DeleteMarker.g, Config.DeleteMarker.b, 100, false, true, 2, false, false, false, false)  
                end
            end
           
            -- Aircraft Pounds
            for k,v in pairs(Config.HelicopterPounds) do
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) <  20.0) then
                    sleep = 5
                end
                if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) < Config.DrawDistance) then
                    DrawMarker(Config.MarkerType, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PoundMarker.x, Config.PoundMarker.y, Config.PoundMarker.z, Config.PoundMarker.r, Config.PoundMarker.g, Config.PoundMarker.b, 100, false, true, 2, false, false, false, false)
                end
            end
        end
       
        if Config.UsePrivateCarGarages == true then
            -- Private Garages
            for k,v in pairs(Config.PrivateCarGarages) do
                if not v.Private or has_value(userProperties, v.Private) then
                    if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) <  20.0) then
                        sleep = 5
                    end
                    if (GetDistanceBetweenCoords(coords, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, true) < Config.DrawDistance) then
                        DrawMarker(Config.MarkerType, v.GaragePoint.x, v.GaragePoint.y, v.GaragePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.PointMarker.x, Config.PointMarker.y, Config.PointMarker.z, Config.PointMarker.r, Config.PointMarker.g, Config.PointMarker.b, 100, false, true, 2, false, false, false, false)  
                        DrawMarker(Config.MarkerType, v.DeletePoint.x, v.DeletePoint.y, v.DeletePoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.DeleteMarker.x, Config.DeleteMarker.y, Config.DeleteMarker.z, Config.DeleteMarker.r, Config.DeleteMarker.g, Config.DeleteMarker.b, 100, false, true, 2, false, false, false, false)  
                    end
                end
            end
        end
       
        if Config.UseJobCarGarages == true then
            -- esx_policejob
            if ESX.PlayerData.job ~= nil and ESX.PlayerData.job.name == 'police' then
                for k,v in pairs(Config.PolicePounds) do
                    if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) <  20.0) then
                        sleep = 5
                    end
                    if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) < Config.DrawDistance) then
                        DrawMarker(Config.MarkerType, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.JobPoundMarker.x, Config.JobPoundMarker.y, Config.JobPoundMarker.z, Config.JobPoundMarker.r, Config.JobPoundMarker.g, Config.JobPoundMarker.b, 100, false, true, 2, false, false, false, false)
                    end
                end
            end
           
            -- esx_ambulancejob
            if ESX.PlayerData.job ~= nil and ESX.PlayerData.job.name == 'ambulance' then
                for k,v in pairs(Config.AmbulancePounds) do
                    if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) <  20.0) then
                        sleep = 5
                    end
                    if (GetDistanceBetweenCoords(coords, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, true) < Config.DrawDistance) then
                        DrawMarker(Config.MarkerType, v.PoundPoint.x, v.PoundPoint.y, v.PoundPoint.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.JobPoundMarker.x, Config.JobPoundMarker.y, Config.JobPoundMarker.z, Config.JobPoundMarker.r, Config.JobPoundMarker.g, Config.JobPoundMarker.b, 100, false, true, 2, false, false, false, false)
                    end
                end
            end
        end
        Citizen.Wait(sleep)
    end
end)

Bu şekilde "sleep" kodları ile sadece belirlenen koordinatlara yakın ise çalışır şekilde editledim ve 0.25 çeken bu scripti 0.01'e düşürdüm. Bütün kodu editleyerek, sizde bu şekilde edit yaparak resmon optimizasyonu yapabilirsiniz.

 
DF
Son düzenleme:
Yararlı
 
DF
Yorumlarınız için teşekkür ederim. Başarıyla yapıp resmon değeri düşürebilen arkadaşlar olursa resimlerini bekliyorum. ?
 
DF
Yararlı paylaşım eline,emeğine sağlık :)
 
DF
Yararlı paylaşım olmuş dostum, eline sağlık :)
 
DF
Konu güzel ancak bir sorum var. Kodlar githubdaki advancedgarage ile uyuşmuyor hangi versiyondan aldın kodları, aldığın yeri atabilir misin?
 
DF
ekstra olarak .lua içerisindeki junk codeleri temizlerseniz 0.01 ms alabilrisiniz çoğu scriptte.
 
DF
Moderatör tarafında düzenlendi:
Konu güzel ancak bir sorum var. Kodlar githubdaki advancedgarage ile uyuşmuyor hangi versiyondan aldın kodları, aldığın yeri atabilir misin?
eski benim ki galiba zaten kullanmıyorum bu garaj script'ini, kendi yazdığımız garaj var.
İstersen atayım client tarafını
 
DF
Yararlı. son kısmı anlamayan arkadaşlara şöyle özetleyebilirim ; NPC lerin üzerinde çıkan yazılar ve Markerler herhangi bir client in (oyuncu) ona belirli bir yakınlıkta olması ile çizilir (genelde) Markerlerde herzaman olduğu söylenmez. biz bunu el ile ekliyoruz var ise kısaltıyoruz Marker i çizen native DrawMarker nativesidir google üzerinde FiveM Native Referances adıyla aratırsanız kullanım şeklini ve distance eklemeyi öğrenebilirsiniz ekleyen arkadaşlar için ; 1 = 1metre dir sayı ne kadar küçük olur ise oyuncu markeri o kadar yakinina gelmeden göremeyecektir buda resmon değerlerini oldukça yükseltecektir.
 
DF

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Bu konuyu görüntüleyen kullanıcılar

Tema düzenleyici

Tema özelletirmeleri

Granit arka planlar

Lütfen Javascript'i etkinleştirin!Javascript'i etkinleştirin!