mIRC Scripting

mIRC Scripting (https://www.mircscripting.net/)
-   Tutorials - Dersler (https://www.mircscripting.net/tutorials-dersler/)
-   -   /* Return - halt - haltdef hakkında */ (https://www.mircscripting.net/tutorials-dersler/525-return-halt-haltdef-hakkynda.html)

WingmaN 04 Ağustos 2011 01:33

/* Return - halt - haltdef hakkında */
 
Yazar: Buğra Bentürk <03.08.2011> 20:50 ( WingmaN )

Merhaba, IF kullanıcıları.

Sizlere kullanıcımızın isteği üzerine, " return , halt ve haltdef " hakkında bilgi vermek ve ufak bir döküman hazırlamak istedim.

/* RETURN ve kullanımı */

Return en kullanışlı olan işlevlerden birisidir. Orjinal anlamı " DÖNDÜR " olarak geçen olayın bizler sizin daha iyi anlayabileceğiniz şekilde, Return'u iki parçaya ayıralım, bunları da " durdur ve oku " şeklinde adlandıralım. Şimdi bu iki parça hakkında biraz bilgi edinelim.

A-) Return : DURDUR < return default-text>

Return, bulunan " alias/event " içerisinde ki sadece istenen kısmın durdurulmasını emreder ve alias/event 'ın işlevinin sadece o kısmını durdurarak işleve devam eder.
örneğin;
Kod:

;örneğin,kanal içerisinde buğra geçen her cümleyi echo'latalım aslında bir nevi, isim uyarıcı diyebiliriz :>
;eğer ki içerisinde buğra geçmiyorsa işleve alma , sadece devam et diyelim.
on ^*:text:*:#: {
  if (buğra !isin $1-) { return }
  else { echo -a $chan ( $+ $nick $+ ) $1- }
}


B-) Return : OKU (Manual read as alias < return custom-output >


Burada ki kullanımda ise kendi belirttiğimiz bir alias'a tekrar kendi ayarladığımız bir fonksiyon ile işlevi okumasını sağlayacağız.
Örneğin;
Kod:

;Diyelim ki, içerisinde ş harfi geçen kelimenin veya cümlenin içinde
; " ş harfini s " harfine değiştiren bir kod yazmak istersek eğer

alias degis return $replace($1-,ş,s)

; //echo -a $degis(şşşşşş)
; yazdığınız zaman, ş harflerin s harfine dönüştüğünü göreceksiniz.
;Kullanılan event-> $replace , mIRC help dosyasında detaylı bilgisini bulabilirsiniz.


Not:
$replace " kelime içerisinde istenilen kelime veya harf veya her noktalama işaretini bir başka işaret/harf/kelime ile değiştirmenizi sağlayan eventtır.

/* HALT ve HALTDEF kullanımı *
/

HALT ve HALTDEF olarak adlandırılan bu iki olay birbirinden çok farklı çalışmasada aynı mantığa sahiptirler. Okuyalım görelim;

A-) HALT kullanımı < using halt in default text of mirc event >

HALT, belli bir alias veya event'ın içerisinde ki verinin tamamiyle durdurulmasını ve hatta bütün alias/event script'inin durdurulmasını sağlayan olaydır, ufak bir örnekle açıklamak gerekirse,

Kod:

;örneğin, CTCP işlevi aldığımızda bunu default mirc'imizin sunduğu gibi değil
;kendi istediğimiz gibi şekillendirelim.

ctcp *:*:*: {
  echo 2 -a $nick size CTCP gönderdi: $1-
  halt
}

;burda ki halt, CTCP gördüğün anda bütün işlevi durdur ve benim belirlediğim,
;işlevi yürüt anlamında kullanılmıştır.



B-) HALTDEF <using haltdef in any default event>


haltdef, isminin de geldiği üzere, " HALT DEFAULT " yani, orjinal mirc event'ını durdur anlamındadır. Kafanızın biraz karıştığının farkındayım fakat şimdi örneğı gördüğünüzde daha iyi anlayacaksınız <.

Örnek:
Kod:

;Hemen ilk kodumuza dönmek istiyorum,
;Ne yapmıştık, içerisinde buğra geçen cümle olursa bize echo ver demiştir.
;Pekala şimdi ise, içerisinde buğra geçen cümlenin kanal satırında ki " RENGİNİ " değiştirelim, bunun için tabii ki " haltdef " kullanacağız.
on ^*:text:*:#: {
  if (buğra isin $1-) {
    echo 6 $chan < $+ $nick $+ > $1-
    haltdef
  }
  else return
}

Tavsiye: halt kullanmaktan olabildikçe vazgeçin, onun yerine daha çok " return " kullanmayı tercih edin, çünkü halt seçeneği anlatmış olduğum gibi event/alias'ı tamamen kapatır, bu nedenden dolayı bazen yazdığınız kodlarda " Neden çalışmıyor bu bölüm? " gibi sorulara mağruz kalabilirsiniz.

Şimdilik, return / halt ve haltdef hakkında ki dersimiz burada son bulmakta, hayırlı ramazanlar ve keyifli dersler dilerim.

Saygılarımla, W.

L4roXyL 04 Ağustos 2011 01:37

WingmaN güzel bir konuya değinmiş bende ek açıklamalar yapayım.

-

/return [value] scripting geri dönüş işlevlerini yapmak için kullanılır. E tabiki [value] kısmı girilmesi zorunlu alan değildir. Unutmayın ki eğer bir komut tanımında ek kullanımlar [] bracket-ları içerisinde tanımlanıyor ise, girilmesi mecbur alan değildir.

Bu bilgiye bakarak, /return komutu aslında belirtilen değeri döndürmek için kullanılır. Lakin eğer herhangi bir değer girilmez ise, sorgu veya tanım sonucu gerçekleşecek işlem olmaz. Dolayısıyla boş sonuçlandırma işlemi gerçekleşir. Yani aslında /return komutu durdurmak için değil, sonuçlamak için kullanılır.

Örneğin;

Kod:

alias deneme return Bu bir denemedir.
Şeklinde bir alias oluşturup, /deneme komutu girdiğimizde size bir sonuç vermez. Aslında default olarak sonuç gerçekleşir ama /return komutu sadece geriye dönüş yaptığı için herhangi bir bilgi göremezsiniz bu kullanımda.

Bunun için;

Kod:

//echo -: $deneme
Yaptığınızda sonuç; "Bu bir denemedir." olarak size gösterilir(/echo kullandık)

Bu bilgilere ek olarak /return komutuna bağlı olarak çalışan bir tanımda vardır mIRC-de.

Tanım ismi: $result

Bu tanım /return komutundan dönen veriyi göstermek/tanımlamak için kullanılabilir. Mesela az önceki örnekde dediğim gibi, sadece /deneme yaptığınızda size bir sonuç dönmez ama internal(iç döngü) olarak bu işlev gerçekleşir demiştim. Bunu en iyi anlamak aşağıdaki örneği kullanalım(yukarıdaki /deneme aliasını mIRC-e ekleyin);

Kod:

//deneme | echo -: $result
Yaptığınızda, "Bu bir denemedir." yazısı döneceketir.

Sanırım buraya kadar anlaşılmayan birşey yok.

-

Şimdi gelelim /halt - /haltdef olaylarına.

/halt komutu genel mIRC Scripting dilinde özellikle Türkiye'de çokca ve bilinçsizce kullanılmaktadır. /halt komutu kelimenin tam manası ile durdurma işlemi yapar. Aynı işlev satırı içerisinde kendisinden sonra gelen hiçbir komutu çalıştırmaz.

Yani;

Kod:

on ^*:text:*:#:halt | echo -: $1-
Yaptığınızda herhangi bir /echo çıktısı alamazsınız. Çünkü artık on text (yazı olayı) eventi sonlandırılmıştır. Scripting kodlayıcılarının yaptığı en büyük hata /halt komutunu gereksiz yerlerde kullanmasıdır.

Örneğin;

Kod:

on *:text:*:#: {
  if (ibne isin $1-) {
    if ($nick isop #) { halt }
    else { kick # $nick küfür etme vs. }
  }
}

Gibi kodlar sık kullanılmaktadır ve bu şekildeki kullanımlar birer kodlama hatası olup, aynı zamanda kodun yavaş çalışmasınada sebeb olur.

Bunun yerine;

Kod:

on *:text:*:#:if (ibne isin $1-) { if ($nick !isop #) { kick # $nick sebeb. } }
Veya

Kod:

on *:text:*:#:if (ibne isin $1- && $nick !isop #) { kick # $nick sebeb. }
on *:text:*ibne*:#:if ($nick !isop #) { kick # $nick sebeb. }

Ve benzeri kodlar kullanınız.

Zaten /halt ve /haltdef (halting text) komutunun oluşum sebebi aslında; ^ ön eki içindir.

^ öneki nedir derseniz;

Olaylara gerçekleştiği anda müdahale etmenizi sağlar. Daha doğrusu mIRC size o olayı kendi yapısında bildirmeden önce sizin yeni bildirim eklemenize veya bildirimi durdurmanıza yarar. Bu durdurma işlemi local olarak çalışır, global etkisi olmaz.

Yani siz;

Kod:

on ^*:text:*:#:halt
Yaptığınızda, kanala gelen text-leri siz görmezsiniz, yani mIRC size bildirim yapmaz. Bu kullanım karşı tarafın kanala text/yazı göndermesini engellemez/etkilemez.

Ayrıca /halt komutunu olay içerisinde kullanmanız bağımsız bir alias komutunada etki eder.

Örneğin; deneme2 diye bir aliasımız var ve bu aliasımız bize bildirim yapıyor şöyleki;

Kod:

alias deneme2 echo -ae Bu bir bildirim.
Ve bu aliası şu şekilde kullanırsak eğer;

Kod:

on ^*:text:*:#:halt | deneme2
Burada /deneme2 komutu gerçekleşmez. Çünkü ilk baştada dediğim gibi, /halt komutu kendisinden sonra gelen ve aynı işlev içerisinde bulunan hiçbir komutu veya işlevi çalışmasına izin vermez.

İşte bu noktada bunun için /haltdef komutuna başvurmanız gerekmektedir.

/haltdef komutuda /halt gibi çalışır ama sadece belirtilen olayın size çıktı yapmasını engeller. Ve kendisinden sonra gelen herhangi bir işleve karışmaz/engellemez.

Örneğin;

Kod:

on ^*:text:*:#:haltdef | echo -ae # kanalına $nick text gönderdi: $1-
Yaptığınızda, kanala dışardan gelen text(^*) mIRC tarafından size gösterilmez ve sizin /haltdef komutundan sonra girdiğiniz /echo komutu çalışır. Yani dolayısıyla siz mIRC-in kendi çıktısını önler ve kendi çıktınızı aktif edersiniz bu kullanımda.

Aynı şeyi /halt kullanarak da yapabilirsiniz lakin, /halt komutunu /haltdef komutu gibi olay başına değil işlevler sonrasına koymanız gerekmektedir.

Örneğin;

Kod:

on ^*:text:*:#:echo -ae # kanalına $nick text gönderdi: $1- | halt
Yaptığınızda, yukarıdaki işlevin aynısı gerçekleşir.

-

Bu komutları doğrulamak için birde $halted tanımı eklenmiş mIRC-e.

Tanımımız: $halted

Bu tanım olay içerisinde /haltdef veya /halt komutunun kullanılıp kullanılmadığı, daha doğrusu olay içerisinde durdurma işleminin olup olmadığını gösterir.

Dönen sonuçlar 2 şekildedir;

1- $true (durdurma işlemi var)
2- $false (durdurma işlemi yok)

Örneğin;

Kod:

on ^*:text:*:*:haltdef | echo -ea Durdurma işlemi: $halted
Yaptığınızda sonuç $true olarak dönecektir. Çünkü bir durdurma işlemi vardır(bknz: /haltdef)

Diğer örnek;

Kod:

on ^*:text:*:*:echo -ea: Durdurma işlemi: $halted
Yaptığınızda sonuç $false olarak dönecektir. Çünkü herhangi bir durdurma işlemi yoktur.

-

Ve son ön ek bilgimiz (/halt - halting text ile alakalı): &

Nedir bu "&" ön eki?

Bu ön ek belirtilen olayda herhangi bir durdurma işlemi varsa, aynı olay altına yazılmış başka kodlara müdahale/ilave etmenize olanak sağlar. Bu cümlem size karmaşık gelmiş olabilir, örneklerle daha iyi anlayacaksınız.

Örneğin;

Kod:

on ^*:text:*:#deneme:halt
Kodu ile deneme kanalına dışarıdan gelen text-leri mIRC-in size göstermesiniz engellediniz/durdurdunuz diyelim.

Ve bu kodun altına aynı olayı kullanarak;

Kod:

on *:text:*:#:echo -ae # kanalına $nick text gönderdi: $1-
Kodunu eklediğinizde, ikinci olay(ikinci verdiğim kod) çalışacaktır.
Yani üst tarafta /halt ile durdurmanız 2. olaya veya 3. vb. olaylara müdahale etmenizi sağlamaz.

İşte burada bunun için; "&" prefix-ini (önekini) kullanırız.

Nasılmı?

Kod:

on ^*:text:*:#:halt
on &*:text:*:#:echo -ae # kanalına $nick text gönderdi: $1-

Yaptığınızda, 2. olayda /halt(durdurma işlemi) olan olaya müdahale eder. Daha doğrusu 2. olayı kendisine ilave ederek, gerçekleşmesini engeller. Yani kısacası 2. olayda durdurulur. Aynı biçim ve özellik /haltdef içinde geçerlidir.

Ek bilgi: 2. ve diğer (aynı) olaylarda $halted tanımı dönebilir.

-

Buraya kadar, /return - /halt - /haltdef - $result - $halted hakkında anlaşılmayan birşey yok sanırım.

Birde /return komutu ile hemen hemen aynı olan ama işlevi biraz daha farklı olan ve mIRC help içerisinde bulunmayan bir komutunuz daha mevcuttur.

/returnex

Komutu kullanım şekline göre boşlukların biçimi korumak için kullanılır. mIRC bazı kullanımlarda bazen boşluk karakterlerini görmez, işte /returnex komutu bunun için mIRC-e entegre edilmiştir. Boşluk karakterlerinin yerlerini ve biçimlerini korur. mIRC help dosyasında olmamasının sebebi ise profesyonel kodlamaya girmektedir ve sık kullanılacak bir komut olmamasıdır.

-

Ek açıklama niteliğinde başladığım konu, neredeyse başlı başına bir makale haline geldi. .) Neyse sağlık olsun ve umarım işinize yarar diyorum.

-

L4roXyL - Hasan AYDENİZ


++ mIRCScripting.net hakkında kısaca:

mS; "Gayri resmi mIRC" kullanıcı ve tasarımcı topluluğudur.
2009 yılında kurulan mS; tasarımcı ve geliştiricileri bir araya getiren etkileşim ve iletişim sağlayan bir platformdur.
mS; tasarım, programlama, geliştirme, düzenleme vb. pek çok konu etrafında bir araya gelmiş "mIRC" meraklısı bir çok insan tarafından yaratılan içeriğiyle; kullanıcı dostu, özgün elit, nitelikli kişi ve konularla hizmet sunan mIRC Scripting platformudur.

Özgün içerikten onay almaksızın içeriği yaratan kullanıcılarımız tamamen yada kısmen sorumludur, aynı zamanda söz konusu içerik mS yetkilileri izni olmaksızın, kaynak gösterilse dahi(!) kopyalanamaz ve/ya paylaşılamaz.   Site/içerik hakkında görüş, öneri ve şikayetleriniz için sikayet[at]mircscripting[dot]net e-posta ve ya İletişim adresinden bizlere ulaştırabilirsiniz.



mIRC mIRC Orjinal mIRC İndir mIRC Download mIRC Tutorials mIRC Socket mIRC Commands mIRC Komutlar mIRC Yükle mIRC Dersler mIRC Hazır Kodlar mIRC Classentifier mIRC DLL mIRC Dialog mIRC IRC mIRC FTP mIRC Telnet mIRC Help
mIRC Yardım mIRC Iconlar mIRC Com Object mIRC Binary Files mIRC Picture Windows mIRC Unicode mIRC Forum mIRC Hazır Kodlar mIRC Kod mIRC Script mIRC File Handling mIRC Scripting Language mIRC Scripting Dili mIRC Scripting Info
mIRC Scripting Tutorials



User Alert System provided by Advanced User Tagging v3.1.3 (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd. Runs best on HiVelocity Hosting.

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76

SEO by vBSEO 3.6.1