;sock bağlama
on *:sockopen:xclusive: {
;sock hatalıysa durdur
if ( $sockerr > 0 ) { return }
;bağlandığında irc sunucusuna bağla
.sockwrite -tn $sockname CONNECT irc.server.com:port $+(HTTP/1.0,$CRLF,$CRLF)
}
;sock okuma
on *:sockread:xclusive:{
;sock hatalıysa durdur
if ( $sockerr > 0 ) { return }
;sock oku
.sockread %report
;bağlantıdaki yazı HTTP/1.0 200 yada HTTP/1.1 200 ise
if ($gettok(%report,1-2,32) == HTTP/1.0 200) || ($gettok(%report,1-2,32) == HTTP/1.1 200) {
;bu komutları uygula
;botun nickini belirtiyoruz
.sockwrite -tn $sockname NICK XcLusive
;botun ident adresini ve fullnamesini belirtiyoruz
.sockwrite -tn $sockname USER XcLusive XcLusive XcLusive : $+ Botun Adı
}
;raw numarasını belirliyoruz sock botumuz sunucuya bağlandığında istediğimiz komutları yazdırmak için
;örneğin ben kanala almak istedim
;raw numarasını alıyoruz
var %:raw = $gettok(%report,2,32)
;eğer raw numarası 266 ise deneme kanalına gir diyoruz
if ( %:raw == 266 ) { sockwrite -nt $sockname join #deneme }
}
son olarak botumuzu /sockopen xclusive proxy-ip-adresi proxy-portu şeklinde bağlıyoruz
unutmayın sock botumuzun adı xclusive olmalı aksi halde bağlanmaz
bu değerleri değiştirmek istiyorsanız
on *:sockopen:xclusive:{
on *:sockread:xclusive:{
remotelerindeki xclusive yerine başka birşey yapabilirsiniz.
“mIRC Dersleri” Kategorisi için ArþivmIRC Toolbarının kullanım parametreleri
1. icon: Sohbetiniz bitti ve artık IRC’den ayrılacaksınız ya da başka server’a bağlanmak istiyorsunuz, bunun için ekranınızın üstünde yer alan, yukarıdaki bar’da en başta bulunan “Disconnect” icon (simge)’unu tıklamanız yeterlidir. Ayrıca yeni bir bağlantı içinde tekrar bu butonu kullanabilirsiniz.
Eyl
19
2008
Bazı mIRC komutlarının IRC komutlarına entegrasyonuadmin tarafýndan mIRC Dersleri içinde postalandýBu bölümde bazı mirc komutlarının irc üzerinde aktif kullanım şekilleri yer almaktadır. Aşağıda yer alan $parametre cinsinden komutların işlevlerine ulaşmak için; //say $parametre: belirtilen parametreyi komutun uygulandığı pencereye gönderir. seçeneklerini kullanabilir veya “$parametre” şeklinde yazdıktan sonra klavyenizden tab tuşuna basarak görüntüleyebilirsiniz. $me: Aktüel nickinize eşdeğerdir. $anick: Alternatif nickinize eşdeğerdir. $emailaddr: Kullanmakta olduğunuz identi görüntüler. $host: Kullanmakta olduğunuz hostu görüntüler. $ip: IP Adresinizi görüntüler. $fullname: Kullanmakta olduğunuz fullnameyi görüntüler. $port: Giriş yapmış olduğunuz port numarasını görüntüler. $server: Bağlı olduğunuz serverın adını görüntüler. $serverip: Bağlı olduğunuz serverın ip adresini görüntüler. $network: Bağlı olduğunuz ağın adını görüntüler. $chanmodes: Bağlı olduğunuz sunucuda geçerli olan kanal modlarını görüntüler. $usermode: Sahip olduğunuz kullanıcı modlarını görüntüler. $status: Bağlantı durumunuzu görüntüler. $idle: Ne kadar süredir yazışmadığınızı saniye cinsinden görüntüler. $version: Kullanmakta olduğunuz mirc’in sürümünü görüntüler. $os: Kullandığınız windows sürümünü görüntüler. $date: Gün/ay/yıl cinsinden tarihi görüntüler. $day: Haftanın hangi gününde olduğunuzu görüntüler. $time: Saat/dakika/saniye cinsinden zamanı görüntüler. $fulldate: Hangi gün/saat ve yılda olduğunuzu görüntüler. $lower(yazı): Belirtilen yazı içerisinde yer alan karakterlerin hepsini küçük harflere çevirir. $upper(text): Belirtilen yazı içerisinde yer alan karakterlerin hepsini büyük harflere çevirir. $len(yazı): Belirtilen yazının kaç karakterden oluştuğunu numerik olarak görüntüler. $query(sıra): Özelinizdeki kullanıcılardan belirtilen sırada yer alan nicke eşdeğerdir. Sıra yerine 0 yazıldığı takdirde özelinizde bulunan kullanıcı sayısını görüntülemenizi sağlar. Özelinizdeki kullanıcı sayısını öğrenmek için: //say $query(0) Özelinizdeki 25. sırada bulunan kullanıcıyı öğrenmek için: //say $query(25) $chan(sıra): Bulunduğunuz kanallar arasında belirtilen sırada yer alan kanalın ismine eşdeğerdir. Sıra yerine 0 yazıldığı takdirde kaç kanalda bulunduğunuzu görüntülemenizi sağlar. Toplam kaç kanalda olduğunuzu öğrenmek için: //say $chan(0) Bulunduğunuz kanallar sıralamasında 7. sırada yer alan kanalın ismini öğrenmek için: //say $chan(7) Soru: Toplam olarak 17 kanala giriş yaptım. Bu kanallardan 4,8 ve 16. sırada yer alanlardan çıkış yapmak istiyorum? $ignore(sıra): Belirtilen sırada yer alan ignore maskesine eşdeğerdir. Soru: Ignore listesinde yer 17. maskenin yasağını kaldırmak için uygulamamız gereken komut nedir? Soru: Ignore listesinde kaç maskenin yer aldığını nasıl öğrenebiliriz? Soru: Ignore listesinde yer alan 3. maskenin hangi parametrelerde yasaklı olduğunu nasıl görüntüleriz? Soru: Süreli ignore yolu ile engellediğim bir ignorenin devre dışı kalması için ne kadar süre kaldığını nasıl görüntüleyebilirim? $notify(sıra): Notify listesinde belirtilen sırada yer alan nicke eşdeğerdir. Soru: Notify listemde 13. sırada ve query listemde 23. sırada olan nicklere whois çekmek istiyorum? Soru: Notify listemde kaç nick olduğunu numerik olarak görüntülemek için uygulamam gereken komut nedir? $nick(#kanal,sıra,o): Belirtilen kanalda; belirtilen sırada yer alan operatörün nickine eşdeğerdir. Soru: #help kanalında 6. sırada yer alan operatörün opunu almak için uygulamam gereken komut nedir? Soru: #sohbet kanalında kaç adet operatör olduğunu öğrenmek için uygulamam gereken komut nedir? $nick(#kanal,sıra,h): Belirtilen kanalda; belirtilen sırada yer alan halfoperatörün nickine eşdeğerdir. Soru: #helpmaster kanalında ilk sırada yer alan halfoperatöre +o modu vermek için uygulamam gereken komut nedir? Soru: #ircmaster kanalında kaç adet halfoperatör olduğunu öğrenmek için uygulamam gereken komut nedir? Soru: #help kanalında 2. sıradaki halfop’a #helpers kanalında nojoin numerik değerinde seviye vererek kanala girişini engellemek istiyorum? $nick(#kanal,sıra,v): Belirtilen kanalda; belirtilen sırada yer alan voice’li kullanıcının nickine eşdeğerdir. Soru: #eğitim kanalında 2. sırada yer alan voiceli kullanıcıya +oa modları vermek için uygulamam gereken komut nedir? Soru: #help kanalında kaç adet voiceli kullanıcı olduğunu öğrenmek için uygulamam gereken komut nedir? $ibl(#kanal,sıra): Belirtilen kanalda; belirtilen sırada yer alan ban maskesine eşdeğerdir. Soru: #help kanalı ban listesinde kaç adet ban olduğunu öğrenmek için uygulamam gereken komut nedir? Soru: #sohbet kanalında 5. sırada yer alan banı kaldırmak istiyorum? Soru: #sohbet ve #help kanallarındayım. #sohbet kanalı ban listesinde yer alan ilk beş banı #help kanalından da banlamak istiyorum? Soru: #sohbet kanalında ki banlardan 13. sırada olanın aktif edilme tarihini öğrenmek istiyorum? Soru: #sohbet ve #helpers kanallarındayım. #sohbet kanalında son banı atan kullanıcıyı #helpers kanalından banlamak istiyorum? Soru: creep, ve X kanallarındayım. #X kanalındaki son atılan banın maskesini creep kanalında exception listesine ekleyip banı atan kişiyi ise creep kanalından banlamak istiyorum? $iel(#kanal,sıra): Belirtilen kanalda; belirtilen sırada yer alan exception maskesine eşdeğerdir. Soru: #help kanalı exceptions listesinde kaç adet exception olduğunu öğrenmek için uygulamam gereken komut nedir? Soru: Sohbet kanalında 3 ve 7. sırada yer alan exceptionu kaldırmak için uygulamam gereken komut nedir? Soru: İçerisinde olduğum #help kanalı exception listesinde 3 adet maske bulunmaktadır. Bu maskelerin korumalarını kaldırıp aynı maskere nick değiştirme yasağı koymak için uygulamam gereken komut nedir? Soru: #helpers kanalında exception listesinde yer alan 3. maskenin hangi operatör tarafından eklendiğini öğrenmek için uygulamam gereken komut nedir? $iIl(#kanal,sıra): Belirtilen kanalda; belirtilen sırada yer alan invex maskesine eşdeğerdir. Soru: #help kanalında kaç adet invex maskesinin aktif durumda olduğunu öğrenmek için uygulamam gereken komut nedir? Soru: #help #helpers ve #sohbet kanallarındayım. mIRC’ımda invite only konumunda olan #help kanalı penceresi açık. Bu pencere üzerinde uygulayacağım bir komut ile; #helpers kanalında 3. sırada yer alan operatöre ve #sohbet kanalında bulunan 7. halfoparatöre #help kanalında davetli modu vermek için uygulamam gereken komut nedir? Soru: #sohbet kanalında son eklenen invex maskesinin eklendiği tarihi öğrenmek için uygulamam gereken komut nedir? Soru: X,Y ve Z kanallarında operatörüm mIRC’ımda invite only konumda bulunan X kanalı penceresi açık, aktif pencere üzerinde uygulayacağım bir komut ile Y kanalında bulunan 8. kullanıcıya, +o kipini almış 2. kullanıcıya ve Z kanalındaki ilk voiceli kullanıcıya X kanalında davetli modu vermek kanalı /invite komutunun kullanımına kapatmak ve sadece creep nickinin kanala mesaj gönderebilmesini sağlamak istiyorum? Soru: #creep #X ve #Y kanallarındayım, #X kanalında 5. sıradaki ban maskesine #creep kanalında exception vermek, #Y kanalındaki 3. operatöre #creep kanalında davetli modu vermek, #Y kanalındaki 9. Invex maskesini #creep kanalında banlamak ve creep kanalındaki 13. banı kaldırıp aynı maskeye davetli modu vermek istiyorum? on *:connect: { ( connect ) olarak adlandırdığımız event ( bağlanınca aktif olur ) disconnect bağlantı kopunca on *:connect: { ***************** Disconnect ; Disconnect ( Kelime )’de belirtildiği gibi bağlantının sona ermesidir , ve event ‘i = on *:disconnect: { ‘dir.. Orneğin ; on *:disconnect: { Dikkat edilmesi gereken hususlar . = Nokta , niçin nokta kullandım ( Nokta kullandığınızda yaptığınız işlem status ekranında belirtilmez ) Yazdığınızı görmezsiniz ( . ) yerine ( / ) kullanmış olsa idiniz , nick değişimini server’a bağlantı kurulumunu göz önünde görürdünüz.. *********************** Op & Deop ; Op ( event = on *:op:#: { buradaki farklılık ( # ) isareti yani kanal işaretidir.. , neden kullandım ? Op(@) kanal komutları ile alakalı olduğu için event’imizi buna göre düzenledim , eğer bu event’im başına # isaretini koymamıs olsa idim kod calısmazdı , lütfen kücük noktalara dikkat edelim.. ; Orneğin ; on *:op:#: { Burada $opnick == $me ( if – then – else , dersimde de belirttiğim gibi == eşitlik demektir ) $opnick ( Op olan nick ) Eşittir ( Benim Nick’ime ) Deop ; Burada kullanacağımız mantık bütün event’lerde olduğu gibi aynıdır.. on *:op:#: { event’inde kullandığımız gibi burada da on *:deop:#: { kullanacağız.. $opnick yine aynı kalacaktır.. Orneğin ; on *:deop:#: { Daha fazla bir acıklama gerek duymadım bu event’imiz hakkında.. ******************* Voice & Devoice Voice ; ( event = on *:voice:#: { ) Hepsinde olduğu gibi mantık yine aynıdır , tek bir örnek ile gececeğim on *:voice:#: { Gördüğünüz gibi , daha fazla konuşmaya gerek yok sanırım.. **************** Join & Part Join ; ( event = on *:join:#: { ) Not : join ( giriş ) anlamı taşımaktadır , kanal ile alakalı olduğundan ötürü event’lerinde # mevcut’tur. Orneğin ; on *:join:#: { ***** Part ; ( event = on *:part:#: { Not : Part(çıkış) anlamı taşımaktadır # mevcut’tur.. on *:part:#: { Burada ( # ) isaretimizi tek bir kanal için sabitlemek istiyorsak , Orneğin : Komutun Yalnızca #turkcoders kanalında islemesini istiyorsanız. on *:part:#turkcoders: { olarak event’imizi kodlamaya başlayacağız.. ***************** Ban & Kick ; Ban ; Orneğin ; on *:ban:#: { **************** Kick ; Kick bildiğiniz gibi kanaldan atmaktır yani birisi kanaldan atıldığında aktif olur on *:kick:#: { mantık aynıdır ( $knick = kicklenen nick ) *************** Notice & Snotice(Status Notice) Notice ; Mantık diğerlerinde olduğu gibi bundada aynı , on *:notice: { ******* Snotice ; Snotice’e bir örnek vereyim bu genellik ile sorulan sorulardan birisidir ben bir IRCOP’um ve birisi bana whois cektiğinde önce benim on *:snotice:*/whois*on*you*:{ echo -a $2 Size Whois Cekti msg $2 Merhaba ben xxx size nasıl yardımcı olabilirim ? } ********************* Action ; action nedir ? birisi kanalda veya özelde /me kullandığında uygulanmasını istediğiniz event baslangıcıdır yani /me ‘ler icin kullanılır on *:action:#: { ************ Text & Start & Open Text ; Text aktif olarak bulunan pencere icin yazılan yazıdır , kanala ve özele.. Örneğin ben diyorum ki #leader kanalında birisi merhaba yazdığında ona Merhaba diye geri mesaj atacağım ama kanalda yazacağım Örnek ahmet Merhaba yazdı bende kanala Merhaba ahmet on *:text:*:#leader { Burada #leader kanalı için gecerlidir bu kod , ama #leader yerine # yazarsanız , bütün kanallar icin gecerli olur , Join event’i mantığı ile aynıdır.. **** Start ; Scriptin acılısında ( mIRC’ın ) aktif olur on *:start: { echo -a scriptinizi actiniz kullanın } Burada echo ( Ekran’a görüntü vermek icin kullanılır ) mirc.help dosyasını acıp , /echo dizinine bakarsanır , hangi harf’in ne icin yaradığını göreceksiniz , örneğin : echo -a ( aktif ekrana verir ) , echo -s ( Status Ekranına ) vs vs .. ************* Open ; OZEL pencereler gecerlidir genellikle ozel icin kullanılır on *:open:?: { ************* Dipnot : # = Kanal düzenlenmiştir iyi çalışmalar , kolay gelsin Kanal Nick Listesindeki Renkleri op, voice, user gibi gruplandırarak renklendirmenin Kodsuz yöntemi: Nick Listesindeki nickleri Kodsuz (mirc ayarlarından) renklendirmek: Alt+B tuşlarına basınca karşına Adres defteri ( Adress Book ) çıkıyor.. 1- İlk olarak Aktifleştir ( Enabled ) yazısını işaretliyoruz. 2 türlü seçenek var : 4- Kullanıcılara uygun rengi kabul et ( Apply color to user mathing ) seçeneklerine gelelim Nick veya Adres ( Nick or adress ) yerini kendi nickin için işaretle. ve şu kodu yaz : $me Herhangi bir Mode ( Any mode ) Gelelim Op voice renklendirmelerine ? İlk 3 aşama aynı. 1- İlk olarak Aktifleştir ( Enabled ) yazısını işaretliyoruz. 2 türlü seçenek var : 4- Kullanıcılara uygun rengi kabul et ( Apply color to user mathing ) seçeneklerıne gelelim Herhangi bir Mode ( Any mode ) NOT: Voice , Protect , Ignore ve Notify renklerinde de aynı yolu izliyoruz.. Biz ” . ve % ” karakterlerinin rengini nasıl belirliyoruz.? İlk 3 aşama gene aynı. 1- İlk olarak Aktifleştir ( Enabled ) yazısını işaretliyoruz. 2 türlü seçenek var : 4 – Kullanıcılara uygun rengi kabul et ( Apply color to user mathing ) seçeneklerıne gelelim.. Seçtiğin karakter artık belirttiğin renktir. ÖNEMLİ NOT: Bu işlemler denendi ve gayet iyi çalışıyor. Eğer yapamassanız gayet iyi okuyup yolları izleyerek işlemlerini yapınız.. Yazan: Utku Öncelikle hash table nedir onu açyklamaya çalışayım, Hash table’lar bildiğiniz ini belgesine veri kaydetme yöntemine benzer. Fakat hash işlemleri hafızada(ram) yapıldığı için hdd(hard disk) işlemlerine göre çok daha hızlıdır, ama komple bir scriptte aşırı derecede kullanılıp hafızayı doldurmaya başlarsak bu avantajıda ortadan kaldırırız. Table oluşturma /hmake: /hmake -s asd 10 Table silme /hfree: Table’ye ekleme /hadd: Table’de bir değeri artırma /hinc: Table’den değer silmek /hdel: Table’yi hdd’den yükleme /hload: Table’yi hdd’ye kaydetme /hsave: /hload, /hsave parametreleri: Table okuma $hget(): Table’deki değerleri okutma $hget(Table,değer): Table’de arama yapmak $hfind(): Alience’nin notu: /hlist { ve ekledikten sonra komut olarak /hlist yazarsanız hash listesini görürsünüz /hlist -i ekstra boyutu: 10 kullanılan: 1 gibisinden açıklama içindir, kodu sizi bilgilendirmesi açısından yazdım istediğiniz gibi değiştirebilirsiniz. Token’lar sanırım mIRC de en çok işimize yarayan şeylerden biridir. Çok kapsamlı kullanım alanı vardır. En çok kullandığımdan en az kullandığıma doğru sırayla anlatayım. Örneğin bir cümle var. Bu cümledeki toplam kelime sayısını nerden bulabilirsiniz? Ne önemi var demeyin. Mesela whois çektiğinizde karşınızdaki kişinin kanallarını görürsünüz. Peki bu kanallara sırayla girebilir misiniz? Girersiniz ama nasıl? Önce kanal sayısını bulacaksınız, sonra da 1er 1er arttırarak gireceksiniz. Veya bir kişiyi tüm kanallarda deop edeceksiniz, nasıl yaparsınız? İşte bu noktada token’lar yardımımıza yetişiyorlar. Bunlar en basitinden örnekler. Mesela $numtok $gettok kullanımına bu bahsettiğim örneklerin kodlarını yazarak başlayalım. ;319 numaralı raw kullanıcının bulunduğu kanalları gösterir. Bu raw’da $2 nicki, raw 319:* { ;Burada 319 no’lu rawı kontrölümüze alıyoruz. Şimdi yapacağımız şey buradaki set %nick $2 ;Burada nick’i setliyoruz. $2 nick’e denk geliyor o raw’da. set %kanallar $remove($3-,@) ;Burada da nick’in kanallarını setliyoruz. Ama setlemeden önce @ işaretlerini } ;Şimdi gelelim bu bu setlediğimiz kanallarda o kişiyi deop etmeye. alias tamdeop { ;Şimdi setlediğimiz kanalların sayısını buluyoruz önce. İşte bu noktada token var %toplam = $numtok(%kanallar,32) ;Ascii kodu 32 olan karakteri yani boşluk işaretini ayraç olarak belirliyoruz ve var %x = 1 ;Burada yine while kullanacağımız için herhangi bir değer kullanıyoruz. İsim hiç while %x <= %toplam { ;Diyoruz ki x değeri toplam değerden küçük olduğu sürece ve eşit olana kadar samode $gettok(%kanallar,%x,32) -o %nick ;Burada $gettok(değer,değer sıra numarası,ayracın ascii kodu) şeklinde inc %x ;Sonra while’ı kapatıyoruz. } ;Alias’ı da kapatıyoruz } Kodun tamamı şu şekilde oluyor: raw 319:* { alias tamdeop { Burada asıl olan $numtok kullanımıydı. $gettok daha farklı şeylerde de kullanılır. :asd!~asd@81.123.123.123= PRIVMSG #asd :aleyküm selam Buradan sadece nick kısmını almak istediğimizde yine $gettok kullanabiliriz. Nasıl derseniz, nick kısmı gördüğünüz gibi ! işaretiyle bitiyor. Biz de bu yazının ! işaretine kadar olan kısmını alacağız. $gettok($1,1,33) Burada $1 :asd!~asd@81.123.123.123= olarak çıkacak. 1 de 33. karakteri ayraç olarak kullandığımızda ilk parçayı alacağımızı yani 1 numaralı parçayı alacağız. ! işaretinin ascii kodu 33′dür. Yani geri dönecek değer “:asd” dir. Şimdi $addtok $remtok ve $istok kullanımına örnek verelim. Örneğin bir dokunulmazlık listesi yapıyoruz: ;Önce listeye eklemek için alias oluşturuyoruz. alias ekle { ;Şimdi $istok ile bu ekleyeceğimiz kişinin daha önce listede olup olmadığını if ($istok(%dokunulmazlar,$1,46) == $true) { echo -a $1 zaten listede var. | halt } ;$istok kullanımı şu şekilde: else { set %dokunulmazlar $addtok(%dokunulmazlar,$1,46) | echo -a $1 dokunulmazlık listesine eklendi. | halt } ;if kısmı geçerli olmadığı zaman else kısmına atlıyor ve %dokunulmazlar değerini } ;Ekle alias’ımız bu kadar. /ekle xxx yaptığımızda %dokunulmazlar değerine xxx alias sil { ;yine önce listede olup olmadığını kontrol ediyoruz. if ($istok(%dokunulmazlar,$1,46) == $true) { set %dokunulmazlar $remtok(%dokunulmazlar,$1,1,46) | echo -a $1 dokunulmazlık listesinden silindi. | halt } ;Eğer listede yoksa olmadığına dair bilgi gelmesini sağlıyoruz. else { echo -a $1 listede zaten yok ki nereye çıkartıyorsun :p | halt } ;Alias’ı kapatıyoruz. } deltok ile remtok aynı görevi yaparlar, fakat remtok içinde x olan parçaları çıkartır ve değerin kalanın gösterir. deltok ise x numaralı parçayı çıkartıp değerin kalanını gösterir. Yani deltok kullanmak için parçanın kaçıncı sırada olduğu bilmek gerekir. remtok kullanımı ise şu şekildedir: $remtok(deger,deger içinden silinecek parça,parça numarası,ayraç kodu) Buradaki parça numarası, silinecek parça yerine yazılan metin ile çakışan (yani tanıma uyan) parça numarasını ifade eder. Mesela x yazdığınızda, içinde x geçen kaçıncı parçayı sileceğinizi belirtir. Bunun nedeni ise remtok’un da if ile kullanılan “isin” gibi çalışmasıdır. Yani içinde silinecek parça kısmına a yazarsanız içinde a harfi olan tüm parçalar etkilenecektir. Bu nedenle etkilenen parçaların arasından kaçıncının silineceğini belirtmeniz gerekir. Ama; Eğer bir değer silecekseniz ve değerle çakışan başka değerler de varsa, kafanız karışıyorsa, remtok u case sensitive(yani büyük küçük harf duyarlı, === gibi) olarak kullanabilirsiniz: $remtokcs(deger,silinecek parça, çakışan parçalardan silinecek olanın sıra numarası,ayraç kodu) Token Identifierları $addtok(metin,eklenecek parça,ayraç kodu) Değerin en sonunda bir parça ekler. Ama değerin içinde o parça zaten ekliyse eklemez. Örneğin %deger a.b.c olsun $addtok(%deger,d,46) yaptığımızda %deger a.b.c.d olur. Ama; $addtok(%deger,c,46) yaptığınızda %deger değişmez. Çünkü %deger içinde c zaten vardı. $deltok(metin,silinecek parça numarası,ayraç kodu) Verdiğiniz sıra numarasındaki parçayı siler. %deger = a.b.c.d $deltok(%deger,3,46) a.b.d olur. 3. sıradaki değer c olduğu için c silinir ve diğerleri geri döner. $deltok(%deger,2-3,46) a.d olur. 2den başlayarak 3 de dahil olmak üzere parçaları silerek kalanı bize gösterir. $findtok(metin , parça , aranan parça numarası , ayraç kodu) %deger = a.b.c.d $findtok(%deger,c,1,46) yazdığımızda %deger içinde c parçası 3. sırada olduğu için 3 olarak geri döner. $findtok(%deger,e,1,46) yazdığımızda ise %deger içinde e parçası olmadığı için $null olarak geri döner. Eğer aranan parça numarası yerine 0 (sıfır) yazarsak aranan parçanın kaç tane parça ile çakıştığını görürüz. %deger = ahmet.mehmet.recep $findtok(%deger,e,1,46) içinde e olan ilk parçayı verir. Yani ahmet’i. $findtok(%deger,e,0,46) ise içinde e harfi olan parçaların sayısını verir. Yani 3. Eğer belirli bir parçayı arıyorsanız ve başka parçalarla çakışmasını istemiyorsanız $findtokcs kullanabilirsiniz. Gettok kullanımına ek olarak; %deger = a.b.c.d.e $gettok(%deger,2-,46) yazdığınızda 2. de dahil olmak üzere 2. parçadan itibaren en sonuncuya kadar olan parçaları geri verir. Yani b.c.d.e döner geriye. $gettok(%deger,2-4,46) yazdığızda da 2. de dahil olmak üzere 2. parçadan itibaren 4. parça da dahil olmak üzere 4. parçaya kadar olan kısmı alır. Yani b.c.d döner geriye. $instok(metin,eklenecek parça,ekleneceği yerin sıra numarası,ayraç kodu) Bu da belirttiğimiz parçayı belirttiğimiz sıraya eklemeye yarayan bir token identifier’ı. Eğer eklenecek parça metinde zaten mevcut olsa bile eklenir. $addtok’tan bu yönüyle ayrılabilir. Ayrıca ekleneceği yeri belirtmek zorundasınız. %deger = a.b.d $instok(%deger,c,3,46) yazdığımızda 3. sıraya c parçasını ekler. Ve bize a.b.c.d olarak döner. $instok(%deger,c,9,46) yaptığımızda ise zaten 3 parça olduğu için 9 10 11 12 farketmeyeceğinden en sona eklenir ve a.b.d.c olarak döner. $matchtok(metin,aranan parça,çakışan parçanın sıra numarası,ayraç) İçinde e harfi olan kaç tane parça olduğunu görmek için çakışan parçalardan kaçıncı olanı alacağımızı belirttiğimiz yere 0 yazarız. $matchtok(one two three, e, 0, 32) yaptığımızda içinde e harfi olan 2 parça olduğu için geriye 2 olarak döner. $matchtok(one two three, e, 2, 32) yaptığımızda ise içinde e harfi olan 2. parçayı almak istediğimizi belirttiğimiz için geriye three döner. Eğer aradığımız parçayı tam olarak almak istiyorsak ve sıra numarasında tereddüt ediyorsak $matchtokcs kullanırız. $puttok(metin,parça,sıra numarası,ayraç) Sıra numarasını verdiğimiz parçayı belirttiğimiz parça ile değiştirir. Örneğin; %deger = a.b.c.d $puttok(%deger,x,3,46) yazdığımızda 3. parçayı x harfi ile değiştireceği için geriye a.b.x.d döner. $reptok(metin,değiştirlecek parça,değiştirileceği parça,sıra numarası,ayraç) puttok’tan tek farkı sıra numarasını bilmediğimiz parçaları silmek için kullanabilmemizdir. reptok’ta ise sıra numarasını kesin olarak bilmemize gerek yok, sadece eşleşen parçalardan kaçıncının değiştirileceğini ve değiştirilecek parçayı bilmemiz yeterli. %deger = ahmet1.ahmet2.ahmet3.ahmet11.ahmet22.ahmet33 $reptok(%deger,ahmet,mehmet,1,46) yazdığımızda içinde ahmet olan parçalar arasından 1. parça mehmet ile değiştirilir. yani mehmet.ahmet2.ahmet3.ahmet11.ahmet22.ahmet33 olarak geri döner. Eğer 1 yerine 2 yazarsak ahmet2 silinir ve yerine mehmet yazılır. Ama biz ahmet2 yi sileceğiz diyelim ve sıra numarasını bilmiyoruz diyelim. (Sıra numarasını bilmiyoruz derken ahmet2 2. sırada olur tabi ama 2. sırada değil diyelim $reptokcs(%deger,ahmet2,mehmet,1,46) yaptığımızda ahmet22 ile çakışmadan ahmet2 silinir ve yerine mehmet geçer. $sorttok(metin,ayraç,ncra) Metin içindeki parçaları büyükten küçüğe veya küçükten büyüğe olarak sıralar. %deger = e.d.c.b.a $sorttok(%deger,46) = a.b.c.d.e olur. %deger = 1.3.5.2.4 $sorttok(%deger,46,nr) = 5.4.3.2.1 olur. Varsayılanı (yani sıralama anahtarı kullanılmamış hali) alfabetik olarak sıralama yapar. n = Numaralara göre sıralar. c = Kanal ve nick olarak sıralar. r = Sıralamayı tam tersine çevirir ve diğer anahtarlarla birlikte kullanılabilir. a = Alfanumerik sıralama. Sıralamayı harf-rakam şeklinde düzenler. $wildtok(metin,aranan wildcard,çakışan parçalardan alınacak olanın sıra numarası,ayraç) Bunun da diğer arama identifier’larından farkı ? ve * (wildcard) kullanabilme özelliğidir. %deger = ahmet.mehmet.hismet $wildtok(%deger,*met*,0,46) yaptığımızda içinde met olan kaç parça olduğunu görürüz. Yani 3 olarak geri döner. $wildtok(%deger,*met*,1,46) yaptığımızda ise içinde met olan 1. numaralı parça döner. Yani ahmet olarak geri döner. mIRC‘ınızı geliştirmek için mIRC geliştiricilerinin yayınlamış olduğu hazır kodlardan faydalanabilirsiniz. Sitemizde yer alan hazır kodlara buradan erişebilirsiniz. Kullanmak istediğiniz kodları mIRC’ınıza eklemek için aşağıdaki yolu kullanınız; mIRC Scriptinizde Alt+r tuş kombinasyonunu kullanarak remote bölümünü açın.
Ardından kullanmak istediğiniz kodu açılan pencereye yerleştirin.
Kırmızı ile çerçevelenmiş alanda gördüğünüz üzere Tamam tuşuna basarak yaptığınız işlemi kaydedip pencereyi kapatın. Eklemiş olduğunuz kodun fonksiyonel hale gelmesi için ” /Remote on ” komutunu kullanabilirsiniz. mIRC, kullanışlı pek çok kısa yol ile donatılmıştır. İşte bu kısa yollardan bazılarını sizler için derledik; F1 Control+Tab Shift+Tab Control+F Control+N Control+Q Tab Cursor Up/Down ESCape Shift+Copy Control+Copy Control+b Control+u Control+k Shift+Minimize ignore(sıra) = Belirtilen sırada yer alan ignore maskesine eşdeğerdir. Örnekler; Notify listemde 13. sırada ve query listemde 23. sırada olan nicklere whois çekmek istiyorum? ignore listemde 5. sırada ekli olan mask’a #creep kanalında nick değiştirme yasağı koymak istiyorum #creep kanalına sadece içerisinde bulunduğum kanallar arasında 4. sırada yer alan kanalda bulunan kullanıcılar giriş yapabilsinler? $ignore döngüsünü “//echo” komutu ile uyguladığımızda $true yanıtı alırız. bunun anlamı nedir? X,Y ve Z kanallarında operatörüm mIRC’ımda invite only konumda bulunan X kanalı penceresi açık, aktif pencere üzerinde uygulayacağım bir komut ile Y kanalında bulunan 8. kullanıcıya, +o kipini almış 2. kullanıcıya ve Z kanalındaki ilk voiceli kullanıcıya X kanalında davetli modu vermek kanalı /invite komutunun kullanımına kapatmak ve sadece creep nickinin kanala mesaj gönderebilmesini sağlamak istiyorum? Y kanalında 2. sıradaki halfop’a X kanalında nojoin numerik değerinde seviye vererek kanala girişini engellemek istiyorum? #creep #X ve #Y kanallarındayım, #X kanalında 5. sıradaki ban maskesine #creep kanalında exception vermek, #Y kanalındaki 3. operatöre #creep kanalında davetli modu vermek, #Y kanalındaki 9. Invex maskesini #creep kanalında banlamak ve creep kanalındaki 13. banı kaldırıp aynı maskeye davetli modu vermek istiyorum? #creep , #cappa , #X , #Y ve #Z kanallarındayım, X kanalındaki halfoplar creep kanalına giriş yapamasınlar, cappa kanalındaki 7. halfop creep kanalında banlansa dahi bundan etkilenmesin, Z kanalındaki 23. ban maskesi creep kanalında davetli modu alsın, Y kanalındaki 3. invex creep kanalında exception listesine eklensin ve cappa kanalında 11. sırada bulunan nick creep kanalında protect konumuna geçsin istiyorum? creep, ve X kanallarındayım. #X kanalındaki son atılan banın maskesini creep kanalında exception listesine ekleyip banı atan kişiyi ise creep kanalından banlamak istiyorum? |







Yazılar