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

[RELEASE] Log Sistemi (Bir işlemi dataya kaydetme)

  • Konbuyu başlatan cylex
  • Başlangıç tarihi
  • Cevaplar 17
  • Görüntüleme 5K

cylex

Developer
FT Kullanıcı
Katılım
5 yıl 4 ay 9 gün
Mesajlar
821
Discord
cylexdev
Bir işlem (yere eşya atma, eşya verme, para aktarma vs) gerçekleştirildiğinde nasıl SQL'e kayıt tutabileceğinizi göstericem.
Forumlarda satışı gerçekleştirilen log sistemi de bundan farkı yok :). Sadece siteden logları çektiriyorlar(Satanlara bir lafım yok).
Örneğin şimdi eşya atma logu yapalım.
es_extended/server/main.lua'da

Kod:
xPlayer.showNotification(_U('threw_standard', itemCount, xItem.label))
satırının altına bu kodu ekleyin (bildirim sizde farklı olabilir onun altına ekleyin)
Kod:
            MySQL.Async.execute('INSERT INTO transfer_item_drop (Atan, Tip, Item, Sayi)VALUES (@Atan, @Tip, @Item, @Sayi) ',
            {
                    ['@Atan']   = xPlayer.name,
                    ['@Tip']   = 'Yere atti',
                    ['@Item']   = xItem.label,
                    ['@Sayi']    = itemCount

        }
            )

Üstteki kodu ekledikten sonra veritabanınıza bu kodu yükleyin.
Kod:
CREATE TABLE `transfer_item_drop` (
    `Atan` VARCHAR(50) NULL DEFAULT NULL,
    `Tip` VARCHAR(50) NULL DEFAULT NULL,
    `Item` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8mb4_turkish_ci',
    `Sayi` BIGINT(50) NULL DEFAULT NULL,
    `Zaman` TIMESTAMP NULL DEFAULT current_timestamp()
)
COMMENT='ESYA TRANSFER'
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
Artık transfer_item_drop veritabanında bu şekilde loglarınız gözükücek :)
Screenshot_3.png



Chat logu için aşağıdaki scripti indirebilirsiniz.

İndirdikten sonra rar'ın içindeki klasörü resources klasörüne atın.
Klasörün içindeki sql.sql datasını yükleyin.
server.cfg veya common.cfg'ye "start cylex_chatlog" yazın.
İşlem bu kadar :)


3199
Verdiğim ilk kodu değiştirerek yere silah atma, eşya transfer etme, para transfer etme yapabilirsiniz.
Uğraşmak istemeyenlere belirli bir ücret karşılığı daha kapsamlı neredeyse her şeyin loglarını tutucak şekilde ayarlayabilirim. (Mesleklerin depoya eşya koymasından, doktorların kaldırdığı oyuncular, polislerin kimlerin üstünü aradığına kadar. İsteğe göre disorda veya veritabanına da kaydettirebilirim.)
Discord:
Deniz C Y L E X#2855
 
DF

Ekli dosyalar

  • Screenshot_2.png
    Screenshot_2.png
    29.6 KB · Görüntüleme: 148
  • indir.png
    indir.png
    50.4 KB · Görüntüleme: 1,766
  • Screenshot_3.png
    Screenshot_3.png
    3.8 KB · Görüntüleme: 92
Forum için faydalı bir paylaşım, kullanacak olan arkadaşlar test edip belirtirse sevinirim sabite ona göre çekeceğim.
 
DF
Bir işlem (yere eşya atma, eşya verme, para aktarma vs) gerçekleştirildiğinde nasıl SQL'e kayıt tutabileceğinizi göstericem.
Forumlarda satışı gerçekleştirilen log sistemi de bundan farkı yok :). Sadece siteden logları çektiriyorlar(Satanlara bir lafım yok).
Örneğin şimdi eşya atma logu yapalım.
es_extended/server/main.lua'da
Kod:
targetXPlayer.showNotification(_U('received_item', itemCount, sourceItem.label, sourceXPlayer.name))
satırının altına bu kodu ekleyin (bildirim sizde farklı olabilir onun altına ekleyin)
Kod:
            MySQL.Async.execute('INSERT INTO transfer_item_drop (Atan, Tip, Item, Sayi)VALUES (@Atan, @Tip, @Item, @Sayi) ',
            {
                    ['@Atan']   = xPlayer.name,
                    ['@Tip']   = 'Yere atti',
                    ['@Item']   = xItem.label,
                    ['@Sayi']    = itemCount

        }
            )
Kodun bu tarz gözükmesi gerekiyor(Bildirimleri değiştirdiyseniz farklı gözükebilir):
Ekli dosyayı görüntüle 3112
Bu kodu ekledikten sonra databasenize bu kodu yükleyin.
Kod:
CREATE TABLE `transfer_item_drop` (
    `Atan` VARCHAR(50) NULL DEFAULT NULL,
    `Tip` VARCHAR(50) NULL DEFAULT NULL,
    `Item` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8mb4_turkish_ci',
    `Sayi` BIGINT(50) NULL DEFAULT NULL,
    `Zaman` TIMESTAMP NULL DEFAULT current_timestamp()
)
COMMENT='ESYA TRANSFER'
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
Artık transfer_item_drop datasında bu şekilde loglarınız gözükücek :)
Ekli dosyayı görüntüle 3113
Verdiğim ilk kodu değiştirerek yere silah atma, eşya transfer etme, para transfer etme yapabilirsiniz.
Uğraşmak istemeyenlere belirli bir ücret karşılığı daha kapsamlı neredeyse her şeyin loglarını tutucak şekilde ayarlayabilirim. (Mesleklerin depoya eşya koymasından, doktorların kaldırdığı oyuncular, polislerin kimlerin üstünü aradığına kadar.)
Discord: ! Deniz "C Y L E X"#2855
Teşekkürler konu için.Para transfer etme, banka transferi, chat gibi şeyleri de paylaşırsan çok işimize yarar :)
 
DF
Received item olduğu için yerden aldı yazması gerekmiyor mu?
 
DF
Received item olduğu için yerden aldı yazması gerekmiyor mu?
Hayır. Yerdeki eşyayı alan kişinin logunu değil, yere kimin hangi eşyayı attığının logunu tuttuğu için "Atan" olması gerekiyor.
 
DF
3115
Sistem net bir şekilde çalışıyor, tarafımca sabite çekilmiştir.
 
DF
Konuya istek üzerine chat loguda ekledim :)
 
DF
Dostum bunu ilk defa görüyorum. Bu log sistemini yapmak için bir yerden esinlenmem gerekmiyordu ki aynı blok kullanılmış gayet mantıklı çünkü başka bir kod bloğu kullanamazsın. Herhangi bir mysql-aysnc kullanan sisteme girip bu insert sorgularını oradan çıkartabilirsin. Bu zaten benim için eski mode sql insertleri çünkü ister istemez sorgu atarken büyük tablolarda yavaşlığa sebep oluyor buda sunucuyu laglandırıyor ve sql komutunu böyle ucu açık bırakmak ise sql injection'a yol açıyor. Bu yüzden hem index kullanarak sorgularımı gerçekleştiriyorum performans ve hızına zarar vermiyor dedim gibi oradan çoğaltarak ve siteden logları göstererek satılan bir işlem değil ki bu panelin yagizinda dediği gibi sadece database üzerinde kayıt tutar. Sorgulama,edit,delete,add gibi komutlar gerçekleştirilemez. Sql injection'dan bahsetmem gerekirse sizin server.cfg de tanımladığınız root yani ana sql'de her yetkiye sahip olan bir kullanıcı sql injection açık bırakıldığında komple databaseniz silinebilir aklınızda bulunsun.

Bu tablolarla kişisel arama yapmak istiyorsanız şu sorguları çalıştırabilirsiniz.

Kod:
select * from [aratacağınız tablo] where [sütun adı] = '%aratacağınız kelime%'
Kod:
select * from [aratacağınız tablo] where [sütun adı] = '%aratacağınız kelime%' and [sütun adı] = '%aratacağınız kelime%'
Örnek bir sorgu:
Kod:
 select * from transfer_item_drop  where atan = '%f3d3%' and Item = '%maymuncuk%'

% % Sembolleri kelimelerin başında sonunda ortasında olmasına rağmen aradığınız sözcüğü bulmanıza yarar.
 
DF
Son düzenleme:
Bir işlem (yere eşya atma, eşya verme, para aktarma vs) gerçekleştirildiğinde nasıl SQL'e kayıt tutabileceğinizi göstericem.
Forumlarda satışı gerçekleştirilen log sistemi de bundan farkı yok :). Sadece siteden logları çektiriyorlar(Satanlara bir lafım yok).
Örneğin şimdi eşya atma logu yapalım.
es_extended/server/main.lua'da

Kod:
xPlayer.showNotification(_U('threw_standard', itemCount, xItem.label))
satırının altına bu kodu ekleyin (bildirim sizde farklı olabilir onun altına ekleyin)
Kod:
            MySQL.Async.execute('INSERT INTO transfer_item_drop (Atan, Tip, Item, Sayi)VALUES (@Atan, @Tip, @Item, @Sayi) ',
            {
                    ['@Atan']   = xPlayer.name,
                    ['@Tip']   = 'Yere atti',
                    ['@Item']   = xItem.label,
                    ['@Sayi']    = itemCount

        }
            )
Ufak değişikliklerde yaptım. Kodu aşağıdaki gibi yapın :

Ekli dosyayı görüntüle 3114
Bu kodu ekledikten sonra databasenize bu kodu yükleyin.
Kod:
CREATE TABLE `transfer_item_drop` (
    `Atan` VARCHAR(50) NULL DEFAULT NULL,
    `Tip` VARCHAR(50) NULL DEFAULT NULL,
    `Item` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8mb4_turkish_ci',
    `Sayi` BIGINT(50) NULL DEFAULT NULL,
    `Zaman` TIMESTAMP NULL DEFAULT current_timestamp()
)
COMMENT='ESYA TRANSFER'
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
Artık transfer_item_drop datasında bu şekilde loglarınız gözükücek :)
Ekli dosyayı görüntüle 3113

Chat logu için aşağıdaki scripti indirebilirsiniz.

İndirdikten sonra rarın içindeki klasörü resources klasörüne atın.
Klasörün içindeki sql.sql datasını yükleyin.
server.cfg veya common.cfg'ye "start cylex_chatlog" yazın.
İşlem bu kadar :)


Ekli dosyayı görüntüle 3199
Verdiğim ilk kodu değiştirerek yere silah atma, eşya transfer etme, para transfer etme yapabilirsiniz.
Uğraşmak istemeyenlere belirli bir ücret karşılığı daha kapsamlı neredeyse her şeyin loglarını tutucak şekilde ayarlayabilirim. (Mesleklerin depoya eşya koymasından, doktorların kaldırdığı oyuncular, polislerin kimlerin üstünü aradığına kadar. İsteğe göre dc veya dataya da kaydettirebilirim.)
Discord:

Deniz C Y L E X#2855

Chatlog scripti üzerinden yürüsek yani event handler'e örnek olarak item dropu tanımlasak olmaz mı?
 
DF
tüm eventlerdeki tüm etkinlikleri bu şekilde dataya kaydedebilirsiniz tabiki
 
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!