Ö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.
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.
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.
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.
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
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.
Bu kod ile dosyanın olup olmadığını kontrol edebiliriz.
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.
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
"Tüm Mesajlar.log" dosyasından bir görüntü... (Toplam oyuncu ve mesaj sayısı başlıktadır. )
Kişiye özel bir log dosyasından görüntü... (Toplam mesaj sayısı başlıktadır. )
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.
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"
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
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}
Ş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"
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
"Tüm Mesajlar.log" dosyasından bir görüntü... (Toplam oyuncu ve mesaj sayısı başlıktadır. )
Kişiye özel bir log dosyasından görüntü... (Toplam mesaj sayısı başlıktadır. )
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.