Rehber - Onesync - Infinity Nedir ve nasil kullanilir ?

Fivem.com.tr

Fivem.com.tr
Katılım
1 Eki 2022
Mesajlar
5,891
Tepki
79
Merhaba arkadaslar,



Forumda konuyu açmadan arastirdim ama bu konuyu tam anlamiyla anlatan bir içerik göremedim ve sizlerle bu bilgiyi paylasayim istedim.

Öncelikle sunu belirteyim Onesync - Infinity herhangi bir optimizasyonla veya kaldirabilecegi oyuncu sayisiyla ilgilui birsey degildir.



# Nasil aktif edilir ?



Startup argümani olarak (.bat dosyasinda) : +set onesync on

server.cfg den : set onesync on



Onesync - Infinity nin kullanimi 48 slot a kadar BEDAVA dir, daha fazla slot için kullanmak istediginizde patreon key satin alip aktif edebilirsiniz.



# Scriptleri adapte etmek



Anlatmasi pek kolay birsey degil çünki kodlamasi degiskenlik gösteriyor ve bu yüzden biraz da kendi yorumunuzu eklemeniz gerek.

Infinity açik oldugunda / etkinlestirildiginde kullanicinin (client) bir kapsam araligi vardir, yani bilgisayarinizin "görebildigi" bir alan.

Bu araligin IÇERISINDEKI herseyi makinaniz algilayip yükliyecektir ve bu araligin DISARISINDAKI birseyden haberdar degildir.

Bunun en kolay örnegi, ben sehirdeysem ve diger oyuncu üst kasabadaysa benim bilgisayarim o kisinin orada oldugunu algilayamaz.

Yani, bunu ayarlamadan kullanmaya kalksaydim ve oradaki adama teleport atmaya kalksaydim bilgisayarim (client) kendine teleportlanirdi çünki diger kisinin koordinatlarini alamiyor olacaktim.

Ama sunucumuz bunu biliyor, diger oyuncunun koordinatlarinin ne oldugunu. Yani yapmamiz gereken bu bilgiyi sunucu (server) dan alip oyuncu (client) tarafina tasimaliyiz.

Baska bir önemli nokta da (burasi çokomelli) kapsamimiz disindaki kisilerden haberdar olmadigimiz için full oyuncu listesini almak istedigimizde de ayni sekilde bu info yu sunucu tarafindan çektirmemiz gerekecek.



# Koordinatlari almak



Bu biraz basittir, sunucu tarafinda GetEntityCoords kullanip ardindan bu bilgiyi event veya callback sayesinde geri gönderebilirsiniz.

Bu native hakkinda detayli bilgi için buraya bakabilirsiniz :



# Oyunculari çektirmek



Sunucudaki oyunculari çektirmek için buna benzer native ler kullanabilirsiniz:





Kod:


Kod:
for _, player in ipairs(GetActivePlayers()) do
    local ped = GetPlayerPed(player)
    -- birseyler yap
end



veya QB fonksyonu kullanarak :





Kod:


Kod:
for _, player in pairs(QBCore.Functions.GetPlayers()) do
    local ped = GetPlayerPed(player)
    -- birseyler yap
end



# Alan disinda bir araç spawnlama



Eger bir script yaziyorsaniz ve bir noktada araç spawnlamaniz gerekiyorsa ve bu araç sizin infinity scope unuz yani kapsam araligi disarisindaysa o zaman bu araci server tarafli olusturabilirsiniz:





Kod:


Kod:
local SpawnPoints = {
    vector4(-1327.479736328, -86.045326232910, 49.31, 52),
    vector4(-2075.888183593, -233.73908996580, 21.10, 52),
    vector4(-972.1781616210, -1530.9045410150, 4.890, 52),
    vector4(798.18426513672, -1799.8173828125, 29.33, 52),
    vector4(1247.0718994141, -344.65634155273, 69.08, 52),
}

QBCore.Functions.CreateCallback('qb-truckrobbery:server:spawntruck', function(source, cb)
    local coords = SpawnPoints[math.random(#SpawnPoints)]
    local CreateAutomobile = GetHashKey("CREATE_AUTOMOBILE")
    local truck = Citizen.InvokeNative(CreateAutomobile, GetHashKey('stockade'), coords, coords.w, true, false)
    while not DoesEntityExist(truck) do
        Wait(25)
    end
    if DoesEntityExist(truck) then
        local netId = NetworkGetNetworkIdFromEntity(truck)
        cb(netId)
    else
        cb(0)
    end
end)



Bu kod ile araci spawnlayip id sini callback ile client tarafina entity id olusturuldu mu diye kontrol ettirmek için gönderebilirsiniz.

Bu entity sistemsel olarak client (oyuncu) kapsam içerisine girene kadar var olmayacaktir. Oyuncu kapsama alani içerisine girene kadar bu entity sunucuya ait olacaktir.

Bir oyuncu infinity kapsamina girdiginde bu entity nin sahibi olacak ve kullanabilecektir. Biliyorum biraz kafa karistirici ama baska türlü anlatamadim.


Dünya sana olmaz, senden dolayı olur. -Anonim

Konu alıntıdır, yanlış veya hatalı bir bilgi/paylaşım var ise yanıtlayabilir veya bizimle iletişime geçebilirsiniz.
 

Şu anda bu konu'yu okuyan kullanıcılar

Benzer konular

Üst