Raw'la neler yapabilirim?
Rawlarla işlem yapmak
Öncelikle raw nedir onu bir açıklayalım. Raw sunucu tarafından size gönderilen mesajlardır. Bunların chanserv nickserv gibi servislerle alakası yoktur. Farkında olmadan chat yaptığımız her saniye aslında raw'ları kullanırız.
Örneğin bir kanala mesaj yazdığınızda hiçbir komut kullanmıyormuşuz gibi sanıyorsak da mIRC bizim yerimize sunucuya "/raw privmsg #kanal selam millet" komutunu gönderir. Kanala bir mesaj geldiğinde ise sunucu bize ":nick!ident@IP PRIVMSG #deneme :selam" şeklinde bir mesaj yollar. mIRC de bu mesajı otomatikman yorumlayarak #deneme kanalında nick isimli kişinin selam yazdığını gösterir.
Aslında çoğumuzun kullandığı /nick /join gibi komutlar mIRC komutları değildir. mIRC'e bir komut girdiğinizde mIRC önce kendi kodları arasında böyle bir komut olup olmadığına bakar, yoksa komutu raw mesajı olarak sunucuya yollar. Örneğin siz /umode +m yazdığınızda mIRC'de böyle bir komut olmadığı için mIRC komutu düzenleyerek /raw umode +m şeklinde yollar.
Çoğu arkadaş raw mesajları ile servis mesajlarını karıştırıyorlar. Aslında çok kolay bir şekilde ayırt etmek mümkündür. Örneğin:
[18:51:23] * You were kicked from #deneme by denemeee (denemeee)
bu mesaj sunucudan gelen raw mesajının mIRC tarafından yorumlanmış halidir. Şimdi bir de notice örneği görelim:
[18:54:40] -ChanServ- #deneme kanali kayitli degil.
Bu ise bir servis mesajıdır. Aralarındaki farkı çok rahat anlayabilirsiniz, servis mesajına baktığınızda tire (-) işaretleri arasına alınmış bir sunucu ismi veya servis ismi görürsünüz:
[18:43:36] -irc.xxx.xxx- Setting/removing of usermode(s) 'ixBwCs' has been disabled.
Raw mesajlarında ise servis ismi veya sunucu ismi yoktur:
Current Local Users: 33 Max: 77
Current Global Users: 57 Max: 64
End of /MOTD command.
[18:52:42] #deneme unable to join channel (address is banned)
Raw mesajı ile servis mesajları için son olarak örnek bir sunucuya girerek çıkan mesajları ayıklayalım:
[18:43:34] * Connecting to irc.xxx-xxx.net (6667)
[18:43:35] [IRC FINGER] (RAW)
[18:43:35] [IRC PING] (RAW)
[18:43:35] [Version VERSION] (RAW)
[18:43:35] -xxx.xxx.Net- *** Version Korumasindan Geciyorsunuz. (SERVİS)
[18:43:35] -xxx.xxx.Net- *** Version Cevabi Alindi. (SERVİS)
There are 22 users and 35 invisible on 2 servers (RAW)
11 operator(s) online
29 channels formed
I have 33 clients and 1 servers
Current Local Users: 33 Max: 77 (RAW)
Current Global Users: 57 Max: 64
Message of the Day, xxx.xxx.Net (RAW)
- • GeneL Sunucu KuraLLarı
-
- 1. T.C Devleti ve yoneticilerine Saygısızlık (hakaret etmek)
- 2. Sunucu Yoneticilerine hakaret etmek.
- 3. Sunucuda politik, onur kırıcı nick ve kanalları kullanmak.
- 4. Clone, proxy, trojan, izinsiz reklam/inviter botu sokmak,
- 5. Web Site veya Sunucu Reklamı yapmak.
- 6. Aşırı derecede Kanal reklamı yapmak.
- 7. Küfretmek, Flood yapmak.
- 8. Kufurlu kick/akick/away/to*** (kanal başlığı) atmak.
- 9. Yönetimden ısrarla OP, IRCOP, Helper istemek.
- 10. Kanal genelinde TÜRKÇE harici bir dil ile konuşmak.
- 11. Kanal Genelinde Siyaset, Politika YASAKTIR.
- 12. Sunucuya giren her kullanici bu kurallari kabul etmis demektir.
End of /MOTD command. (RAW)
[18:36:08] * denemeee sets mode: +iwxt (RAW)
[18:36:08] -Global- [Logon Haberler - Ksm 20 2006] Güvenlik hatırlatması: (SERVİS)
[18:36:08] -ChanServ- (#Zurna) (SERVİS)
[18:36:08] -ChanServ- (#oyun) (SERVİS)
[18:36:09] -xxx.xxx.Net- Setting/removing of usermode(s) 'ixBwCs' has been disabled. (SERVİS)
Artık raw mesajları ile servis mesajlarını ayırabildiğimize göre, nasıl faydalanabileceğimizden bahsedelim. Şüphesiz rawların en çok işimize yaradığı amaç mIRC'in el atmadığı çoğu raw mesajını kullanarak otomatik işlem yapabilen bir mIRC yaratmaktır. Buna genelde script adı verilse de benim burada öğretmeyi amaçladığım şey script yazmak değil, basit kodlarla mIRC'i daha kullanışlı hale getirmektir
Şimdi de aşama aşama mIRC nasıl daha kullanışlı hale getirilebilir ondan bahsedelim.
1- Hayal kurma:
mIRC 15 dk'yı geçen banları kontrol edip süresi dolanları kendisi açsa ne güzel olurdu
2- Plan & Proje:
/mode #kanal +b yazdığımızda banları görebiliyoruz, eğer bu raw mesajlarını ayıklayabilirsem mIRC'e her dakika banları kontrol ettirmesini sağlayabilir, süresi dolanları açtırabilirim.
3- Kullanacağımız raw mesajını bulma:
A-
Bu bölümde daha önceden yazdığım bir kodu kullancağız:
raw *:*:{
haltdef
var %x = $numtok($1-,32)
var %y = 1
while %y <= %x {
echo -a Raw numarası: $numeric $+(%y,.) Değer: $gettok($1-,%y,32)
inc %y
}
echo -a ***
}
Bu kodu mIRC'imize ekliyoruz. Ekledikten sonra /mode #kanal +b yapıyoruz.
B-
Bu kod sayesinde normalde;
denemeee #deneme *!*@D302D439.13AC6357.99661133.IP denemeee 1165164794
bu şekilde gelecek olan mesaj, daha basit kullanmak için şu şekilde gelecektir:
Raw numarası: 367 1. Değer: denemeee
Raw numarası: 367 2. Değer: #deneme
Raw numarası: 367 3. Değer: *!*@D302D439.13AC6357.99661133.IP
Raw numarası: 367 4. Değer: denemeee
Raw numarası: 367 5. Değer: 1165164794
***
Önce mesajın içeriğini kavrayalım. 367 mesajda da yazdığı gibi raw mesajının numarası, yani kodumuz raw 367:*:{ şeklinde başlayacak. 1. değerim kendi nickimiz. 2. değer ban listesine baktığımız kanalın adı. 3. değer banmask, yani açacak olduğumuz banın IPsi, nicki vs. 4. değerimiz banlayan kişi. 5 değerimiz ise banın atıldığı zaman.
Not: 5. değerdeki zaman 1 Ocak 1970 tarihinden banın atıldığı dakikaya kadar geçen saniyeyi belirtir. Bunu normal tarih standartına çevirmek için $asctime(1165164794), şu anki bulunduğumuz tarih saat dakika ve saniyeyi o değere çevirmek için $ctime kullanılır.
4- Mantığı oluşturuyoruz:
367. raw mesajı geldiğinde şu anki zamanı raw mesajındaki zaman biçimine dönüştürdüğümüzde eğer şu anki zaman raw mesajındakinden 900 fazla ise (veya daha da fazla) ise 2. değerdeki kanalda 3. değerdeki banmask'i açacağız. Ayrıca kanalda akickler de olduğu için onların süresinin dolmasını beklemesi mantıksız. O yüzden chanserv'in attığı banları süresi dolmadan açacağız, yani 4. değer chanserv ise süreye bakmadan direkt olarak aç diyeceğiz.
5- Kodluyoruz:
raw 367:*:{
;raw mesajını kullanmaya başladık
haltdef
;raw mesajını kontrolümüze aldık ve başka bir işlem yapmasını engelledik
if ($4 == chanserv) { mode $2 -b $3 }
;eğer 4. değer chanserv ise $2 kanalında $3 mask'inin banını aç
elseif ($calc($5 + 900) >= $ctime) { mode $2 -b $3 }
;yukarıdaki if durumu geçersizse ve 5. değere 900 eklediğimizde $ctime değerinden büyük oluyorsa veya eşit oluyorsa $2 kanalında $3 mask'inin banını aç
else { echo -s Kanal: $2 Banlanan: $3 Banlayan: $4 Ban tarihi: $asctime($5) } }
;hiçbiri değilse statüste kanalı banlayanı ban tarihini göster
İşte kodumuz:
raw 367:*:{
haltdef
if ($4 == chanserv) { mode $2 -b $3 }
elseif ($calc($5 + 900) >= $ctime) { mode $2 -b $3 }
else { echo -s Kanal: $2 Banlanan: $3 Banlayan: $4 Ban tarihi: $asctime($5) }
}
Alıntıdır ..
__________________
Kod:
Sµstµm .. yåLnız qôzLerimLe døkµnµyørµm håyåtå kimse ånLåmıyør ..
By SinnéR
|