![]() |
![]() |
![]() | #1 | |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | /* 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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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. Konu WingmaN tarafından (04 Ağustos 2011 Saat 01:09 ) değiştirilmiştir. | |
| ![]() |
![]() | #2 |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: /* Return - halt - haltdef hakkında */ 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: Kodu kopyalamak için üzerine çift tıklayın!
Ş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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
Veya Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
Ve bu aliası şu şekilde kullanırsak eğer; Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
Yaptığınızda sonuç $true olarak dönecektir. Çünkü bir durdurma işlemi vardır(bknz: /haltdef) Diğer örnek; Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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 |
| ![]() |
![]() |
Etiketler |
halt, haltdef, return |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
input halt ? | muratt_aziz | mIRC Scripting Sorunları | 6 | 20 Mart 2009 03:06 |
input ve halt hakkında yardım | Vamp | mIRC Scripting Sorunları | 4 | 28 Eylül 2007 23:21 |
Toplu halt | Requiem | mIRC Scripting Sorunları | 6 | 29 Mayıs 2006 20:40 |
"halt" yerine "return" kullanımı | DefauLt | mIRC Scripting Sorunları | 0 | 07 Mart 2005 15:52 |