Sol Reklam
Sağ Reklam

Rehber Log Rehberi

Seri şeklinde paylaşacağım "Skript Rehberi" konusu nasıl olsun?


  • Oy Verenler
    8
Durum
Mesaj gönderimine kapalı.

Reynixan

Le cose belle arrivano quando non le cerchi.

Discord:

Reynixan#8044

Katılım
22 Ocak 2020
Mesajlar
635
Elmaslar
725
Puanlar
8.175
Yaş
21
Yer
Istanbul
Ön Söz

Selamlar değerli forum sakinleri.
Türkçe karşılığı "günlük" olan Log ne işimize mi yarar?
Oyuncuların mesajlarını, komutlarını, giriş çıkışlarını ve daha birçok olayını kayıt altına alabiliriz.
Ayrıca bir eklentinin config dosyasına el atıp eklentinin sunmadığı bir özelliği log ile yapabiliriz.
Bu son dediğimi anlayamamış olabilirsiniz, merak etmeyin bunun ile alakalı başka bir konuda bir skript paylaşacağım.
Fazla uzatmadan rehberimize geçelim.

Rehber


Ben örnek için sohbet kaydı tutturuyorum. Siz istediğinizi yapabilirsiniz: komut, giriş çıkış...

Paket başlatıldığında bir kayıt klasörü oluşturalım.
Kod:
on load:   
    if file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log" doesn't exists:
        create file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log"
Eğer dosya oluşturulmamış ise oluşturulur, dosya var ise bir şey yapılmaz.

Tüm mesajlar adında bir log dosyası oluşturuldu. Şimdi içine bir başlık atalım.
Ayrıca ben kaç oyuncu olduğunu da görmek istiyorum. Bu yüzden yeni bir değişken oluşturalım.

Kod:
on load:   
    if file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log" doesn't exists:
        create file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log"
        wait 1 second
        log "Tüm oyuncuların sohbet kayıtları:" to "Kayıtlar\tüm mesajlar.log"
        if {oyuncusayisi} is not set:
            set {oyuncusayisi} to 0
Dosya oluşturulduktan sonra 1 saniye bekleyip "Tüm oyuncuların sohbet kayıtları:" başlığı oluşturulur. Değişken sayı değişkeni olarak ayarlanır.

Oyuncu giriş yaptığında oyuncular adında bir klasör oluşturalım ve içine oyuncunun adı ile yeni bir log dosyası oluşturalım.
Kod:
on join:
    if file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log" doesn't exists:
        create file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log"
        wait 1 second
        log "%player% adlı oyuncunun sohbet kayıtları:" to "Kayıtlar\oyuncular\%player%.log"
        add 1 to {oyuncusayisi}
Oyuncunun adı ile bir dosya yok ise oluşturulur, başlık ayarlanır ve toplam oyuncu değişkenimize 1 eklenir.

Şimdi sohbete mesaj atıldığında kayıt dosyalarına işleyelim.
Kod:
on chat:
    set {satir::%player%} to file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log"'s line count
    set line 1 in file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log" to "(%{satir::%player%}%) %player% adlı oyuncunun sohbet kayıtları:"
    log "%player%: %message%" to "Kayıtlar\oyuncular\%player%.log"
    set {satir::genel} to file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log"'s line count
    set line 1 in file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log" to "(%{satir::genel}%) Toplam %{oyuncusayisi}% oyuncunun sohbet kayıtları:"
    log "%player%: %message%" to "Kayıtlar\tüm mesajlar.log"
Mesaj atıldığında hem oyuncunun adı ile oluşturulan klasöre hem de tüm mesajların bulunduğu klasöre kayıt edilir.

Kodumuz buraya kadardı. Farkettiğiniz gibi hem "set line" kalıbını hem de "log" kalıbını kullandım.
Şimdi sizlere bunlardan daha detaylı bahsedeyim.


< Set Line >

Bu kalıp ile bir dosyanın belirli satırını değiştirebiliriz.
Örnek
set line 1 in file "plugins\Yeni klasör\test.log" to "Yeni Satır"

Eğer belirtilen dosya yok ise konsola hata gider. Bu yüzden bu kalıp ile işlem yapacağımız dosyayı oluşturmamız gerekir.
if file "plugins\Yeni klasör\test.log" doesn't exists:
Bu kod ile dosyanın olup olmadığını kontrol edebiliriz.
create file"plugins\Yeni klasör\test.log"
Bu kod ile yeni dosya oluşturabiliriz.

Bu kalıp ile işlem yapacağımız dosya konumunu paketin ana klasöründen itibaren yazmalıyız. Gördüğünüz gibi bu kalıpta "plugins" ile başlıyorum.


< Log >

Bu kalıp ile belirtilen dosyaya yeni bir satır ekleyebiliriz.

log "Yeni Satır" to "Yeni Klasör\test.log"

Bu kalıp ile belirttiğimiz dosyanın olup olmamasının bir önemi yoktur.
Eğer var ise işlem yapar, yok ise klasörü otomatik kendisi oluşturur sonra işlem yapar.

Bu kalıbın bir önceki kalıbın diğer bir farkı ise dosya konumunun skript eklentisinden başlamasıdır.
Örneğin dosya yerine sadece "Yeni Klasör\test.log" yazarsam, "plugins\skript\logs\Yeni Klasör\test.log" dosyası üzerinden işlem yapılır.
Ayrıca bu kalıp ile kayıt oluşturulduğunda satırın başına zaman otomatik eklenir.



Görseller

1587572799694.png

"Tüm Mesajlar.log" dosyasından bir görüntü... (Toplam oyuncu ve mesaj sayısı başlıktadır. )

1587572911715.png

Kişiye özel bir log dosyasından görüntü... (Toplam mesaj sayısı başlıktadır. )

1587573023854.png

Kayıt klasöründen bir görüntü...

SON

Umarım yararım dokunmuştur.
Skript dersi niteliğinde rehber konuları açmayı planlıyorum.
Ankete katılarak bana yardım edebilirsiniz.
Görüşmek üzere, hoşçakalın.

 
S

Silinen üye 79251

Ziyaretçi

Ciddi anlamda Skript öğrenmek isteyen arkadaşlar açısından çok geniş kapsamlı bir konu içeriği olmuş ki elinize ve emeğinize de sağlık ;) <3
 

zRodsh

Play.SoulCubeNw.Com
Katılım
21 Mart 2020
Mesajlar
131
Elmaslar
77
Puanlar
0
Minecraft
zRodsh
Güzel bir çalışma olmuş elinize sağlık. Başarılarınızın devamını dilerim.
 

Reynixan

Le cose belle arrivano quando non le cerchi.

Discord:

Reynixan#8044

Katılım
22 Ocak 2020
Mesajlar
635
Elmaslar
725
Puanlar
8.175
Yaş
21
Yer
Istanbul
S

sooply

Ziyaretçi
Tüm mesajları kaydeden bir loga ihtiyacım yok fakat YAML'ın işlevini biraz da olsa öğrenmeleri için yararlı bir konu.
 

EmreSHN

Seven sevdiğiyle güzelleşir.
Emektar

Discord:

EmreSHN#4551

Katılım
12 Ocak 2019
Mesajlar
4.272
Elmaslar
2.633
Puanlar
18.485
Yaş
24
Yer
Ankara
Minecraft
EmreSHN
Ön Söz

Selamlar değerli forum sakinleri.
Türkçe karşılığı "günlük" olan Log ne işimize mi yarar?
Oyuncuların mesajlarını, komutlarını, giriş çıkışlarını ve daha birçok olayını kayıt altına alabiliriz.
Ayrıca bir eklentinin config dosyasına el atıp eklentinin sunmadığı bir özelliği log ile yapabiliriz.
Bu son dediğimi anlayamamış olabilirsiniz, merak etmeyin bunun ile alakalı başka bir konuda bir skript paylaşacağım.
Fazla uzatmadan rehberimize geçelim.

Rehber


Ben örnek için sohbet kaydı tutturuyorum. Siz istediğinizi yapabilirsiniz: komut, giriş çıkış...

Paket başlatıldığında bir kayıt klasörü oluşturalım.
Kod:
on load:  
    if file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log" doesn't exists:
        create file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log"
Eğer dosya oluşturulmamış ise oluşturulur, dosya var ise bir şey yapılmaz.

Tüm mesajlar adında bir log dosyası oluşturuldu. Şimdi içine bir başlık atalım.
Ayrıca ben kaç oyuncu olduğunu da görmek istiyorum. Bu yüzden yeni bir değişken oluşturalım.

Kod:
on load:  
    if file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log" doesn't exists:
        create file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log"
        wait 1 second
        log "Tüm oyuncuların sohbet kayıtları:" to "Kayıtlar\tüm mesajlar.log"
        if {oyuncusayisi} is not set:
            set {oyuncusayisi} to 0
Dosya oluşturulduktan sonra 1 saniye bekleyip "Tüm oyuncuların sohbet kayıtları:" başlığı oluşturulur. Değişken sayı değişkeni olarak ayarlanır.

Oyuncu giriş yaptığında oyuncular adında bir klasör oluşturalım ve içine oyuncunun adı ile yeni bir log dosyası oluşturalım.
Kod:
on join:
    if file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log" doesn't exists:
        create file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log"
        wait 1 second
        log "%player% adlı oyuncunun sohbet kayıtları:" to "Kayıtlar\oyuncular\%player%.log"
        add 1 to {oyuncusayisi}
Oyuncunun adı ile bir dosya yok ise oluşturulur, başlık ayarlanır ve toplam oyuncu değişkenimize 1 eklenir.

Şimdi sohbete mesaj atıldığında kayıt dosyalarına işleyelim.
Kod:
on chat:
    set {satir::%player%} to file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log"'s line count
    set line 1 in file "plugins\skript\logs\Kayıtlar\oyuncular\%player%.log" to "(%{satir::%player%}%) %player% adlı oyuncunun sohbet kayıtları:"
    log "%player%: %message%" to "Kayıtlar\oyuncular\%player%.log"
    set {satir::genel} to file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log"'s line count
    set line 1 in file "plugins\skript\logs\Kayıtlar\tüm mesajlar.log" to "(%{satir::genel}%) Toplam %{oyuncusayisi}% oyuncunun sohbet kayıtları:"
    log "%player%: %message%" to "Kayıtlar\tüm mesajlar.log"
Mesaj atıldığında hem oyuncunun adı ile oluşturulan klasöre hem de tüm mesajların bulunduğu klasöre kayıt edilir.

Kodumuz buraya kadardı. Farkettiğiniz gibi hem "set line" kalıbını hem de "log" kalıbını kullandım.
Şimdi sizlere bunlardan daha detaylı bahsedeyim.


< Set Line >

Bu kalıp ile bir dosyanın belirli satırını değiştirebiliriz.
Örnek
set line 1 in file "plugins\Yeni klasör\test.log" to "Yeni Satır"

Eğer belirtilen dosya yok ise konsola hata gider. Bu yüzden bu kalıp ile işlem yapacağımız dosyayı oluşturmamız gerekir.
if file "plugins\Yeni klasör\test.log" doesn't exists:
Bu kod ile dosyanın olup olmadığını kontrol edebiliriz.
create file"plugins\Yeni klasör\test.log"
Bu kod ile yeni dosya oluşturabiliriz.

Bu kalıp ile işlem yapacağımız dosya konumunu paketin ana klasöründen itibaren yazmalıyız. Gördüğünüz gibi bu kalıpta "plugins" ile başlıyorum.


< Log >

Bu kalıp ile belirtilen dosyaya yeni bir satır ekleyebiliriz.

log "Yeni Satır" to "Yeni Klasör\test.log"

Bu kalıp ile belirttiğimiz dosyanın olup olmamasının bir önemi yoktur.
Eğer var ise işlem yapar, yok ise klasörü otomatik kendisi oluşturur sonra işlem yapar.

Bu kalıbın bir önceki kalıbın diğer bir farkı ise dosya konumunun skript eklentisinden başlamasıdır.
Örneğin dosya yerine sadece "Yeni Klasör\test.log" yazarsam, "plugins\skript\logs\Yeni Klasör\test.log" dosyası üzerinden işlem yapılır.
Ayrıca bu kalıp ile kayıt oluşturulduğunda satırın başına zaman otomatik eklenir.



Görseller

Eki Görüntüle 118855
"Tüm Mesajlar.log" dosyasından bir görüntü... (Toplam oyuncu ve mesaj sayısı başlıktadır. )

Eki Görüntüle 118856
Kişiye özel bir log dosyasından görüntü... (Toplam mesaj sayısı başlıktadır. )

Eki Görüntüle 118861
Kayıt klasöründen bir görüntü...

SON

Umarım yararım dokunmuştur.
Skript dersi niteliğinde rehber konuları açmayı planlıyorum.
Ankete katılarak bana yardım edebilirsiniz.
Görüşmek üzere, hoşçakalın.


Bunu aslında discord log olarak yapabilirdin.
 

DonsuzTurk

finish
Emektar

Discord:

Yusuf#0006

Katılım
23 Şubat 2017
Mesajlar
1.281
Elmaslar
1.339
Puanlar
17.935
Yaş
24
Yer
Samsun
Anlatım çok hoşuma gitti. Eskiden böyle kişiler yoktu. Elinize sağlık. Anlatım içinde ayrı ayrı teşekkürler.
 

Statius

Katman Kayası
Yasaklandı

Discord:

Statius#2162

Katılım
21 Kasım 2019
Mesajlar
881
Elmaslar
1.131
Puanlar
9.675
Minecraft
DarkSad
Skripte yeni başllayacak arkadaşlar için güzel ve detaylı bir rehber olmuş. Eline ve emeğine sağlık.
 

AlperenX3

❤️

Discord:

alperentr

Katılım
7 Nisan 2020
Mesajlar
3.098
Elmaslar
1.271
Puanlar
11.785
Yer
İzmir
Minecraft
Artgum
Skript öğrenmeye çalışan arkadaşlar için güzel bir rehber olmuş eline sağlık.
 

rambocete123

Fırında Isıttığım İlk Taş

Discord:

rambocete123#5401

Katılım
9 Temmuz 2016
Mesajlar
81
Elmaslar
60
Puanlar
13.370
Yaş
28
Minecraft
bayramazanvr
Çok güzel olmuş sunucum da kullanacağım.2312
 

Rugnusirgac

Brem
Katılım
19 Temmuz 2020
Mesajlar
35
Elmaslar
17
Puanlar
0
Yaş
25
Güzel bir çalışma olmuş elinize sağlık. Başarılarınızın devamını dilerim. Senin Konularına Bayılıyorum
 

AlperenX3

❤️

Discord:

alperentr

Katılım
7 Nisan 2020
Mesajlar
3.098
Elmaslar
1.271
Puanlar
11.785
Yer
İzmir
Minecraft
Artgum
faydalı bir konu olmuş ayrıca anlatım çok iyi eline sağlık.
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı