IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Mirc Scripting ile banlanan kullanıcıları nasıl dosya içine kayıt edip,okuruz? (https://www.ircforumlari.net/mirc-scripting-sorunlari/525297-mirc-scripting-ile-banlanan-kullanicilari-nasil-dosya-icine-kayit-edipokuruz.html)

sEntieL 01 Mart 2013 00:00

Mirc Scripting ile banlanan kullanıcıları nasıl dosya içine kayıt edip,okuruz?
 
selam,

arkadaşlar

on *:ban:#:{ set -u2 $+(%,banlanan,$chan) $banmask | set -u2 $+(%,banlayan,$chan) $nick }
on *:kick:#:{ if $($+(%,banlanan,$chan),2) iswm $address($knick,5) {
write banlist.txt $knick
} }

koduna önce okutup sonra yazmasını nasıl sağlarız yani bu kod ile sürekli aynı nicki kaydediyor o nick var ise es geçmesini nasıl sağlarız

Med Cezir 01 Mart 2013 01:22

Cevap: codeye okutma nasıl yaparız
 
Kod:

on *:ban:#:{ set -u2 $+(%,banlanan,$chan) $banmask | set -u2 $+(%,banlayan,$chan) $nick }
on *:kick:#:{ if $($+(%,banlanan,$chan),2) iswm $address($knick,5) && !$read(banlist.txt,w,$knick) {
write banlist.txt $knick
} }


YazılımMimarı 01 Mart 2013 01:44

Cevap: Mirc Scripting ile banlanan kullanıcıları nasıl dosya içine kayıt edip,okuruz?
 
Mantıksal olarak yapman gereken, dosya içindeki bilgi(rumuz) yi okuyup, bir karşılaştırma yapmaktır.

Bunun için dosya içinde okuduğun bütün verileri bir liste içine alıp, if koşulu ile kontrol etmek olacaktır, eğer koşulu sağlan değeri sağlıyorsa, yazma işlemini yapmasın, sağlamıyorsa yazma işlemini yapsın.

Bir örnek kod buldum, anlama mirc script ten ama oldukça basit ve anlaşılır.

//Kontrol
alias isbanned {
//bans.txt dosyası varmı yokmu kontrolü, okuma işlemi
if (!$isfile(bans.txt)) { return $false}
if ($fopen(bancheck)) { .fclose bancheck }
.fopen bancheck bans.txt
while ($fopen(bancheck).pos < $file(bancheck).size) {

//Dosya içindeki değerleri satır satır okuyup,
//thisAddress değişkenine atıyo

var %thisAddress = $fread(bancheck)
//Eğer thisAddress $1(Bu senin kontrol edeceğin rumuz)'e eşitse
//true dön değilse, devam et
if (%thisAddress iswm $1) {
return $true
}
}
return $false
}

alias banned false dönerse aynı dosyayı açıp içine yazma işlemini yaptır ;)

Mirc script kodlamasından anlamam ama bu çok temel bir yapı, burada while döngüsü içinde dönerken dosya içindeki son değere kadar dönüyor bu oldukça luzumsuz. return true'dan sonra break gibi bir komut varsa döngüden çıksın. Vardır bu tip bir kullanım, ilgi/bilgisi olanlar paylaşır.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

sEntieL 01 Mart 2013 01:47

Cevap: Mirc Scripting ile banlanan kullanıcıları nasıl dosya içine kayıt edip,okuruz?
 
çok sağol hocam ellerin dert görmesin :)

YazılımMimarı 01 Mart 2013 01:53

Cevap: Mirc Scripting ile banlanan kullanıcıları nasıl dosya içine kayıt edip,okuruz?
 
Ek olarak sunu belirteyim, bu ileride başına dert olacaktır :)

Banladığın kullanıcı sayısı arttıkça sistemin çalışmasıda yavaşlayacaktır. Giriş çıkışları yoğun bir sunucu ise, bu işlem belirli bir süre sonra yetersiz kalacaktır.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 01:45.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net