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 Dersleri (https://www.ircforumlari.net/mirc-scripting-dersleri/)
-   -   HOTLINK Eventı Hakkında Anlatım (https://www.ircforumlari.net/mirc-scripting-dersleri/177109-hotlink-eventi-hakkinda-anlatim.html)

Regex 04 Şubat 2009 17:28

HOTLINK Eventı Hakkında Anlatım
 
Ders: HOTLINK Eventı Hakkında Anlatım
Tarih: 04.02.2009 Çarşamba
Yazan: Regex

-

Evet arkadaşlar, bu derste sizlere mIRC Scripting eventlarından on HOTLINK eventını anlatacağım. Aslında dersi yazmamın asıl sebebi, bir forumda mIRC Scripting hakkında orta düzeyde bilgi sahibi olan ve kendini geliştirmek isteyen bir arkadaşımızın bu konu üzerinde ders yazmamı istememdi. Kendisinin isteği üzerine, dersi yazma kararı aldım.

Öncelikle "event" sözcüğünün, size yabancı gelmediğini biliyorum (en azından orta düzeyde mIRC Scripting bilgisine sahip olduğunuzu farz ediyorum). Yine de kısaca bir değineyim: Eventlar, mIRC'in Remote kodlarını oluşturan öğelerdir ve Türkçe'deki karşılığı "olay"dır. Kanala girişleri on JOIN eventıyla, kanaldan çıkışları on PART eventıyla, mIRC'imizi açtığımızı on START eventıyla karşılarız ve bunun gibi birçok event (olay) mevcuttur. Bense, size bu derste anlaşılır bir şekilde ve indirgeyebildiğim kadar basite indirgeyerek on HOTLINK eventını açıklayacağım. Çünkü bu zamana dek, basit örneklemeler dışında "hiç" bu event hakkında bilgi verilmemiş. İşte ben de bilgiye sahip olup, daha hoş kodlar ortaya çıkarmanızda yardımcı olmaya çalışacağım.

HOTLINK eventı ne işe yarar?

HOTLINK eventı, mIRC'deki sözcük gruplarına tıklamanızı sağlayan bir eventtır. Hayâl gücünüze ve isteğinize bağlı olarak geniş kullanımlar oluşturabilirsiniz.

Kullanımı: on <seviye>:HOTLINK:<aranacak-metin>:<*#?=!@>:<komutlar>

Kullanımını, Türkçe biçimde açıkladıktan sonra hemen bir örnek vermek ve bu örnek üzerinden anlatım yapmak istiyorum. Böylelikle aklınızda daha rahat yer edeceğini düşünüyorum. Mesela aşağıdaki kodla, içinde "Life" geçen bir metni ele alalım ve eğer ilk kelimesi "Lifeman" ise bu kelimeye tıkladığımızda, bize bilgi versin.

Kodumuz:

Kod:

on ^*:hotlink:*Life*:#:return
on *:hotlink:*:*:echo Tıklanan kelime: $qt($1) - Metnin tamamı: $qt($hotline) - Metindeki kelimelerin, byte cinsinden değeri: $qt($hotlinepos)


Gördüğünüz gibi iki adet event kullandık ve sanırım aklınızda çokça soru işareti belirdi. Merak etmeyin, hepsini açıklayacağım.:)

Evet ilk eventta, "^" kullandık. Bu eventta, diyoruz ki: "Kanal penceresinde, içinde Life -bu arada gördüğünüz gibi whildcard hayatın her yerinde:)- geçen metin (text)ler kullanıldığında, /return kullanarak bu kullanımı aktif hâle getiriyoruz. İkinci eventtaysa, /return kullanarak aktif hâle getirdiğimiz metin üzerinde uygulanacak işlemleri belirliyoruz (Burada, /echo komutuyla örnek olduğu için bilgi almamızı sağladık.).

Bir de yukarıda birtakım identifier (tanım)lar kullandık. Bunları açıklamadan önce, aklınızda daha iyi yer edinmesi için daha basit cümlelerle yukarıda açıkladığımı tekrar açıklamak istiyorum;

Aslında mIRC Scripting'e dair orta düzeyde bilgi sahibiyseniz, ^ prefixi size akraba gibi geliyordur.:) Bildiğiniz gibi metinleri Türkçe'leştirmek için kullanırız bu prefixi. Yani en basitinden konumuzla alakasız olsa da aşağıdaki kodu örnek olarak vermek istiyorum:

Kod:

on ^*:join:#:echo # *** Kanala giriş yapan: $+($nick,.) $+($chr(40),$address,$chr(41)) | haltdef

Yani aklınızda pekişmesi gereken olgu; ^ prefixinin, verileri "önceden" algılayarak durdurması veya işlem yapmasıdır. HOTLINK eventında da hiçbir fark yok aslında. Sadece, biraz daha karışık gibi gözüküyor fakat mantığı kavradığınızda, kod yazmak ve işlem yapmak size, çerez yemek gibi gelecektir.:) Yani bakın tekrar söylüyorum: ^ prefixini kullanarak veriyi /return komutuyla aktif hâle getiriyoruz (işimize yarayan bir veriyse) ve daha sonra, bir event daha oluşturuyoruz ve yapılacak işlemleri belirliyoruz. Son derece basit.

Artık bu eventla alakalı identifierlara gelmek istiyorum. Sanırım, aklınızda herhangi bir soru veya soru işareti kalmadı.

Nedir bu on HOTLINK identifierları?

Bu eventla ilgili olarak, bilinmesi gereken iki adet identifier var. Bunları, açıklamalarıyla beraber tanıyalım:

$hotline: İşlem yapılacak olan metnin, tamamını verir. Yukarıda verdiğim kodu deneyerek daha rahat anlayabilirsiniz.
$hotlinepos: İşlem yapılacak olan metni, byte cinsinden verir. Yine deneyerek daha iyi anlayabilirsiniz.
$1 vs.: Öncelikle "vs." şeklinde genellememin sebebi, on TEXT eventında ve aliaslarda bu tür tanımlarla sıkça karşılaşmış olmanız ve zaten bilgi sahibi olmanız gerekiyor. Yine de kısaca açıklayayım: $1; işlem yapılan metindeki ikinci kelimeyi, $2; ikinci kelimeyi verir ve bu, böyle gider.:)

Not: Yukarıdaki örnek koddaki, $qt() identifierı aklınızı karıştırmasın. Çünkü bu identifier (tanım), içindeki veriyi tırnak (") içine almaktan başka bir işe yaramaz.

Umarım bu dersten, birileri bir şeyler öğrenmiştir. Eğer bilginizi geliştirebildiysem, ne mutlu bana...

Not: Konu hakkındaki sorularınızı, başlık altından sorabilirsiniz.

mIRCTR-Constantin 18 Temmuz 2009 22:57

Cevap: HOTLINK Eventı Hakkında Anlatım
 
Sayende HOTLINK'i de öğrenmiş olduk ongun emeğine sağlık

L4roXyL 04 Ağustos 2009 14:12

Cevap: HOTLINK Eventı Hakkında Anlatım
 
Bazı bilgiler yanlış verilmiş.

-

Alıntı:

Regex Nickli Üyeden Alıntı (Mesaj 632331)

$hotlinepos: İşlem yapılacak olan metni, byte cinsinden verir.
$1 vs.: Öncelikle "vs." şeklinde genellememin sebebi, on TEXT eventında ve aliaslarda bu tür tanımlarla sıkça karşılaşmış olmanız ve zaten bilgi sahibi olmanız gerekiyor. Yine de kısaca açıklayayım: $1; işlem yapılan metindeki ikinci kelimeyi, $2; ikinci kelimeyi verir ve bu, böyle gider.:)

-

$hotlinepos işlem yapılacak olan metni byte cinsinden falan vermez.
-
Tıklanılan/yakalanan metnin text içerisindeki pozisyonunu(kaçınçı pozisyonda olduğunu) ve satır numarasını(aktif ekrandaki satır numarası) verir. Bakınız: $line(window,N) gibi.
-
Örnek:
on ^*:hotlink:*deneme*:status window:return
on *:hotlink:*:*:echo -: $hotlinepos

-

$1 işlem gören metindeki 1. 2. 3. vs. kelimeleri vermez.
-
İşlem gören/yakalanan verinin sadece kendisini verir. Sen $1- de yapsan, sadece yakalanan/tıklanan veri dönecektir. Hatta ve hatta zanettiğin ve üzerine yanlış bilgi verdiğin gibi $2 -de yapsan, hiçbir veri alamazsın.


-

Bir konu hakkında yeterince bilgiye sahib olmadan ders yazmayın.


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

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