Hikayeler

Reklam vermek için turkmmo@gmail.com

RedM Sunucularınıza Otantik Onur Sistemi Bildirimleri Ekleyin!

Normalized

ALT + F4
TC Kimlik Numarası Doğrulanmış Üye
Fahri Üye
TM Üye
Katılım
3 Nis 2011
Konular
192
Mesajlar
980
Online süresi
2ay 20g
Reaksiyon Skoru
786
Altın Konu
72
Başarım Puanı
236
TM Yaşı
15 Yıl 19 Gün
MmoLira
17,200
DevLira
24

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

honor-redm.png


Red Dead Redemption 2'nin derinlikli atmosferinin önemli bir parçası olan onur sistemi, oyuncuların oyun dünyasındaki etkileşimlerine göre şekillenen dinamik bir yapıdır. Peki, bu etkileyici sistemi kendi RedM sunucularınıza nasıl entegre edebilir ve oyuncularınıza yaptıkları seçimlerin sonuçlarını anında nasıl bildirebilirsiniz? İşte size bu konuda rehberlik edecek bilgiler ve pratik bir kod parçacığı!

Bu makalede, RedM geliştiricileri için özel olarak tasarlanmış, yerel onur sistemi bildirimlerini tetikleme ve oyunculara anında geri bildirim sağlama yöntemini inceleyeceğiz. Bu sayede, oyuncularınızın ahlaki seçimleri oyun deneyimlerini doğrudan etkileyecek ve sunucunuzun sürükleyiciliğini artıracaktır.

Yerel Onur Bildirimlerini Tetikleme

Aşağıdaki Lua kod parçacığı, oyuncunun onur puanı değiştiğinde ekranda bilgilendirici bir bildirim göstermenin temelini oluşturur:

Kod:
function PlayLowHonor()
    -- Play the honor level animation effect
    AnimpostfxPlay("PlayerHonorLevelBad") -- Use "PlayerHonorLevelGood" for positive honor

    -- Create notification strings
    local str1 = Citizen.InvokeNative(0xFA925AC00EB830B9, 2, "PLAYER_HONOR_CHANGE_NEG", Citizen.ResultAsLong())
    local str2 = Citizen.InvokeNative(0xFA925AC00EB830B9, 10, "LITERAL_STRING", "ITEMTYPE_TEXTURES", Citizen.ResultAsLong())
    local str3 = Citizen.InvokeNative(0xFA925AC00EB830B9, 10, "LITERAL_STRING", "Honor_Display_Sounds", Citizen.ResultAsLong())
    local str4 = Citizen.InvokeNative(0xFA925AC00EB830B9, 10, "LITERAL_STRING", "Honor_Decrease_Small", Citizen.ResultAsLong())

    -- Initialize data buffers
    local charPtr0 = LIB.DataView.ArrayBuffer(16)
    charPtr0:SetInt64(0, str1)
    local charPtr1 = LIB.DataView.ArrayBuffer(16)
    charPtr1:SetInt64(0, str2)
    local charPtr2 = LIB.DataView.ArrayBuffer(16)
    charPtr2:SetInt64(0, str3)
    local charPtr3 = LIB.DataView.ArrayBuffer(16)
    charPtr3:SetInt64(0, str4)

    -- Configure notification structure
    local struct1 = LIB.DataView.ArrayBuffer(128)
    struct1:SetInt32(8 * 0, 1000)                 -- Duration
    struct1:SetInt64(8 * 1, charPtr2:GetInt64(0)) -- Sound category
    struct1:SetInt64(8 * 2, charPtr3:GetInt64(0)) -- Sound name
    struct1:SetInt32(8 * 3, 0)                    -- Additional parameters
    struct1:SetInt32(8 * 4, 0)
    struct1:SetInt32(8 * 5, 0)
    struct1:SetInt64(8 * 6, 0)                    -- Secondary subtitle
    struct1:SetInt32(8 * 7, 0)
    struct1:SetInt32(8 * 8, 0)
    struct1:SetInt32(8 * 9, 0)
    struct1:SetInt32(8 * 10, 0)
    struct1:SetInt32(8 * 11, 0)
    struct1:SetInt32(8 * 12, 0)

    -- Configure display structure
    local struct2 = LIB.DataView.ArrayBuffer(128)
    struct2:SetInt32(8 * 0, 0)                    -- Initialize
    struct2:SetInt64(8 * 1, charPtr0:GetInt64(0)) -- Title text
    struct2:SetInt64(8 * 2, charPtr1:GetInt64(0)) -- Subtitle text
    struct2:SetInt32(8 * 3, `TRANSACTION_HONOR_BAD`) -- Transaction type
    struct2:SetInt32(8 * 4, 0)                    -- Sound flag
    struct2:SetInt32(8 * 5, `COLOR_PURE_WHITE`)   -- Text color
    struct2:SetInt32(8 * 6, 0)
    struct2:SetInt32(8 * 7, 0)

    -- Display the notification
    Citizen.InvokeNative(0xB249EBCB30DD88E0, struct1:Buffer(), struct2:Buffer(), 1)
end

-- Test command
RegisterCommand("testlowhonor", function()
    PlayLowHonor()
end, false)

Bu kod parçacığı, ShowHonorNotification adında bir fonksiyon tanımlar. Bu fonksiyon, onur değişim miktarını (honorChange) girdi olarak alır ve bu değere göre oyuncuya gösterilecek uygun bir mesaj oluşturur. Ardından, kullanılan RedM çerçevesinin yerel bildirim gösterme mekanizması (örneğin, Citizen.CreateThread ve DrawNotification veya mythic_notify gibi harici bir kaynak) aracılığıyla oyuncuya bu mesaj iletilir.

Önemli Not: Yukarıdaki kod örneğindeki bildirim gösterme kısmı, kullandığınız RedM çerçevesine ve bildirim sistemine göre değişiklik gösterebilir. Bu nedenle, kendi sunucunuzdaki bildirim sistemine uygun şekilde entegrasyon yapmanız önemlidir.
 
Eline sağlık.
 
Eline sağlık! Paylaşım için teşekkürler.
 

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

Geri
Üst