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

Paylaşım | Script Optimizasyonu | Tuşlara Basıldığında Tespit Etme |

F3D3R4LL

Admin
Admin
Administrator
Katılım
4 yıl 9 ay 14 gün
Mesajlar
1,113
Discord
F3D3R4LL#2433
Merhaba arkadaşlar, bugün ihtiyacım olduğu için ufak çapta bir sistem yazdım. Sizlerde tekrar yazmayın diye sizlerle paylaşmak istedim.

Sistem ne işe yarar ?

Bu script bir tuşa basıldığında o tuşun tespitini ve config üzerine o tuş atamasında hangi trigger var ise onu çalıştırır. Böylelikle her scriptte şu tuşa basıldı mı diye bir saçma durumlar karşı karşıya kalıp her tuş tespiti için sonsuz döngü çalıştırmazsınız. 1 Sonsuz döngü tüm tuşları kontrol edip size bilgi verir. "Keyup" durumu gibidir. İstediğiniz scriptte bir trigger oluşturup tuşa basıldığında oraya göndermek istiyorsanız event'i yerleştirirsiniz. Bi Tuş birden fazla defa kullanılıyorsa hiç problem değil istediğiniz kadar register atıp dilediğiniz şartlarda değerlendirebilirsiniz. Coordinata göre & farklı bir parametreye göre bu size kalmış.

f3_controller > client.lua

Kod:
Citizen.CreateThread(function()
    while true do
        Citizen.Wait(5)
        for k,v in pairs(Config.Key) do
            if IsControlJustPressed(0,v.No) then
                if v.Trigger ~= "" then
                    TriggerEvent(v.Trigger)
                end
                print("Button Pressed: " .. v.Tus)
            end
        end
    end
end)

RegisterNetEvent('F3:tusTesti')
AddEventHandler('F3:tusTesti', function()

    print("Tus Function'u Basariyla Calisti")

end)

f3_controller > config.lua

Kod:
Config = {}
Config.Key = {
    {Tus ="ESC", No = 322, Trigger = ""},
    {Tus ="F1", No = 288, Trigger = ""},
    {Tus ="F2", No = 289, Trigger = ""},
    {Tus ="F3", No = 170, Trigger = ""},
    {Tus ="F5", No = 166, Trigger = ""},
    {Tus ="F6", No = 167, Trigger = ""},
    {Tus ="F7", No = 168, Trigger = ""},
    {Tus ="F8", No = 169, Trigger = ""},
    {Tus ="F9", No = 56, Trigger = ""},
    {Tus ="F10", No = 57, Trigger = ""},
    {Tus ="~", No = 243, Trigger = ""},
    {Tus ="1", No = 157, Trigger = ""},
    {Tus ="2", No = 158, Trigger = ""},
    {Tus ="3", No = 160, Trigger = ""},
    {Tus ="4", No = 164, Trigger = ""},
    {Tus ="5", No = 165, Trigger = ""},
    {Tus ="6", No = 159, Trigger = ""},
    {Tus ="7", No = 161, Trigger = ""},
    {Tus ="8", No = 162, Trigger = ""},
    {Tus ="9", No = 163, Trigger = ""},
    {Tus ="-", No = 84, Trigger = ""},
    {Tus ="=", No = 83, Trigger = ""},
    {Tus ="BACKSPACE", No = 177, Trigger = ""},
    {Tus ="TAB", No = 37, Trigger = ""},
    {Tus ="Q", No = 44, Trigger = ""},
    {Tus ="W", No = 32, Trigger = ""},
    {Tus ="E", No = 38, Trigger = "F3:tusTesti"},
    {Tus ="R", No = 45, Trigger = ""},
    {Tus ="T", No = 245, Trigger = ""},
    {Tus ="Y", No = 246, Trigger = ""},
    {Tus ="U", No = 303, Trigger = ""},
    {Tus ="P", No = 199, Trigger = ""},
    {Tus ="[", No = 39, Trigger = ""},
    {Tus ="]", No = 40, Trigger = ""},
    {Tus ="ENTER", No = 18, Trigger = ""},
    {Tus ="CAPS", No = 137, Trigger = ""},
    {Tus ="A", No = 34, Trigger = ""},
    {Tus ="S", No = 8, Trigger = ""},
    {Tus ="D", No = 9, Trigger = ""},
    {Tus ="F", No = 23, Trigger = ""},
    {Tus ="G", No = 47, Trigger = ""},
    {Tus ="H", No = 74, Trigger = ""},
    {Tus ="K", No = 311, Trigger = ""},
    {Tus ="L", No = 182, Trigger = ""},
    {Tus ="LEFTSHIFT", No = 21, Trigger = ""},
    {Tus ="Z", No = 20, Trigger = ""},
    {Tus ="X", No = 73, Trigger = ""},
    {Tus ="C", No = 26, Trigger = ""},
    {Tus ="V", No = 0, Trigger = ""},
    {Tus ="B", No = 29, Trigger = ""},
    {Tus ="N", No = 249, Trigger = ""},
    {Tus ="M", No = 244, Trigger = ""},
    {Tus =",", No = 82, Trigger = ""},
    {Tus =".", No = 81, Trigger = ""},
    {Tus ="LEFTCTRL", No = 36, Trigger = ""},
    {Tus ="LEFTALT", No = 19, Trigger = ""},
    {Tus ="SPACE", No = 22, Trigger = ""},
    {Tus ="RIGHTCTRL", No = 70, Trigger = ""},
    {Tus ="HOME", No = 213, Trigger = ""},
    {Tus ="PAGEUP", No = 10, Trigger = ""},
    {Tus ="PAGEDOWN", No = 11, Trigger = ""},
    {Tus ="DELETE", No = 178, Trigger = ""},
    {Tus ="LEFT", No = 174, Trigger = ""},
    {Tus ="RIGHT", No = 175, Trigger = ""},
    {Tus ="TOP", No = 27, Trigger = ""},
    {Tus ="DOWN", No = 173, Trigger = ""},
}

Bu konu altında görüşlerini belirtirseniz mantıklı olur ben bu şekilde daha optimize bir sonuç çıkacağını düşünüyorum. Ortalama tüketimi 0.05 ms i9 9900ks işlemciye göre normal bir işlemcide daha fazla çıkacaktır. Fakat ortalama bi pakette 20-30 yerde tuş beklentisi vardır ve bunların her biri için döngü döner bu ise çok daha fazla bir tüketim yapar. Fikirlere açığım
 
DF
Başarılı bir rehber olmuş elinize sağlık
 
DF
Başarılı Ve güzel bir rehber olmuş ellerinize Sağlık
 
DF
Yararlı ve güzel bir paylaşım olmuş. Ellerine sağlık.
 
DF
Bazı döngüler üst üste geldiği için pek kullanmadım. Yaklaşık olarak 0.15 ms düşüm sağladı çoğu sistemlerimde kullanmaya başladım. Aynı registercommand gibi oldu when keyup olduğunda trigger uzanıyor cidden tavsiye ederim. Ufak bir kaç görüntü ekleyeyim.

39471

39472
 
DF
Başarılı olmuş tüm sistemlere entegre edildiğinde daha güzel bir sonuç çıkacaktır.
 
DF
Merhaba arkadaşlar, bugün ihtiyacım olduğu için ufak çapta bir sistem yazdım. Sizlerde tekrar yazmayın diye sizlerle paylaşmak istedim.

Sistem ne işe yarar ?

Bu script bir tuşa basıldığında o tuşun tespitini ve config üzerine o tuş atamasında hangi trigger var ise onu çalıştırır. Böylelikle her scriptte şu tuşa basıldı mı diye bir saçma durumlar karşı karşıya kalıp her tuş tespiti için sonsuz döngü çalıştırmazsınız. 1 Sonsuz döngü tüm tuşları kontrol edip size bilgi verir. "Keyup" durumu gibidir. İstediğiniz scriptte bir trigger oluşturup tuşa basıldığında oraya göndermek istiyorsanız event'i yerleştirirsiniz. Bi Tuş birden fazla defa kullanılıyorsa hiç problem değil istediğiniz kadar register atıp dilediğiniz şartlarda değerlendirebilirsiniz. Coordinata göre & farklı bir parametreye göre bu size kalmış.

f3_controller > client.lua

Kod:
Citizen.CreateThread(function()
    while true do
        Citizen.Wait(5)
        for k,v in pairs(Config.Key) do
            if IsControlJustPressed(0,v.No) then
                if v.Trigger ~= "" then
                    TriggerEvent(v.Trigger)
                end
                print("Button Pressed: " .. v.Tus)
            end
        end
    end
end)

RegisterNetEvent('F3:tusTesti')
AddEventHandler('F3:tusTesti', function()

    print("Tus Function'u Basariyla Calisti")

end)

f3_controller > config.lua

Kod:
Config = {}
Config.Key = {
    {Tus ="ESC", No = 322, Trigger = ""},
    {Tus ="F1", No = 288, Trigger = ""},
    {Tus ="F2", No = 289, Trigger = ""},
    {Tus ="F3", No = 170, Trigger = ""},
    {Tus ="F5", No = 166, Trigger = ""},
    {Tus ="F6", No = 167, Trigger = ""},
    {Tus ="F7", No = 168, Trigger = ""},
    {Tus ="F8", No = 169, Trigger = ""},
    {Tus ="F9", No = 56, Trigger = ""},
    {Tus ="F10", No = 57, Trigger = ""},
    {Tus ="~", No = 243, Trigger = ""},
    {Tus ="1", No = 157, Trigger = ""},
    {Tus ="2", No = 158, Trigger = ""},
    {Tus ="3", No = 160, Trigger = ""},
    {Tus ="4", No = 164, Trigger = ""},
    {Tus ="5", No = 165, Trigger = ""},
    {Tus ="6", No = 159, Trigger = ""},
    {Tus ="7", No = 161, Trigger = ""},
    {Tus ="8", No = 162, Trigger = ""},
    {Tus ="9", No = 163, Trigger = ""},
    {Tus ="-", No = 84, Trigger = ""},
    {Tus ="=", No = 83, Trigger = ""},
    {Tus ="BACKSPACE", No = 177, Trigger = ""},
    {Tus ="TAB", No = 37, Trigger = ""},
    {Tus ="Q", No = 44, Trigger = ""},
    {Tus ="W", No = 32, Trigger = ""},
    {Tus ="E", No = 38, Trigger = "F3:tusTesti"},
    {Tus ="R", No = 45, Trigger = ""},
    {Tus ="T", No = 245, Trigger = ""},
    {Tus ="Y", No = 246, Trigger = ""},
    {Tus ="U", No = 303, Trigger = ""},
    {Tus ="P", No = 199, Trigger = ""},
    {Tus ="[", No = 39, Trigger = ""},
    {Tus ="]", No = 40, Trigger = ""},
    {Tus ="ENTER", No = 18, Trigger = ""},
    {Tus ="CAPS", No = 137, Trigger = ""},
    {Tus ="A", No = 34, Trigger = ""},
    {Tus ="S", No = 8, Trigger = ""},
    {Tus ="D", No = 9, Trigger = ""},
    {Tus ="F", No = 23, Trigger = ""},
    {Tus ="G", No = 47, Trigger = ""},
    {Tus ="H", No = 74, Trigger = ""},
    {Tus ="K", No = 311, Trigger = ""},
    {Tus ="L", No = 182, Trigger = ""},
    {Tus ="LEFTSHIFT", No = 21, Trigger = ""},
    {Tus ="Z", No = 20, Trigger = ""},
    {Tus ="X", No = 73, Trigger = ""},
    {Tus ="C", No = 26, Trigger = ""},
    {Tus ="V", No = 0, Trigger = ""},
    {Tus ="B", No = 29, Trigger = ""},
    {Tus ="N", No = 249, Trigger = ""},
    {Tus ="M", No = 244, Trigger = ""},
    {Tus =",", No = 82, Trigger = ""},
    {Tus =".", No = 81, Trigger = ""},
    {Tus ="LEFTCTRL", No = 36, Trigger = ""},
    {Tus ="LEFTALT", No = 19, Trigger = ""},
    {Tus ="SPACE", No = 22, Trigger = ""},
    {Tus ="RIGHTCTRL", No = 70, Trigger = ""},
    {Tus ="HOME", No = 213, Trigger = ""},
    {Tus ="PAGEUP", No = 10, Trigger = ""},
    {Tus ="PAGEDOWN", No = 11, Trigger = ""},
    {Tus ="DELETE", No = 178, Trigger = ""},
    {Tus ="LEFT", No = 174, Trigger = ""},
    {Tus ="RIGHT", No = 175, Trigger = ""},
    {Tus ="TOP", No = 27, Trigger = ""},
    {Tus ="DOWN", No = 173, Trigger = ""},
}

Bu konu altında görüşlerini belirtirseniz mantıklı olur ben bu şekilde daha optimize bir sonuç çıkacağını düşünüyorum. Ortalama tüketimi 0.05 ms i9 9900ks işlemciye göre normal bir işlemcide daha fazla çıkacaktır. Fakat ortalama bi pakette 20-30 yerde tuş beklentisi vardır ve bunların her biri için döngü döner bu ise çok daha fazla bir tüketim yapar. Fikirlere açığım
merhabalar kurluşta pek bişey anlamadım acaba detaylı ve sade şekilde anlatırmısınız ?
 
DF
Detaylı anlatım daha iyi olabilirdi herkes açısından
 
DF
Ben bunu paylaştıktan sonra RegisterKeyMapping getirdiler zaten o daha mantıklı olacaktır
 
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!