mIRC Karşılama Scripti: Kanala Gelenleri Selamlamak
İçindekiler
Kanala yeni giren birine kısa bir selam vermek, bir topluluğun havasını belirleyen küçük ama etkili bir ayrıntıdır. Bir mIRC karşılama scripti, bu işi sizin adınıza otomatik yapar. Ancak dikkat edilmesi gereken önemli bir nokta var: Kanalın botu değilseniz, karşılama mesajlarınız sizin adınıza gönderilir ve kanal kurallarına göre bu hoş karşılanmayabilir. Bu rehberde hem scripti nasıl yazacağınızı hem de nezaketle nasıl kullanacağınızı anlatıyoruz.
Önce Nezaket
Scripti yazmaya başlamadan önce şunu netleştirelim: Bir kanalın kendi botu varsa karşılamayı o yapar ve sizin de karşılama göndermeniz gereksiz tekrara yol açar. Kanalda bot yoksa ve kanal yönetiminde değilseniz, her yeni gelene otomatik mesaj göndermek bazı topluluklarda rahatsız edici veya kural ihlali sayılabilir.
En uygun kullanımlar şunlardır: Kendi kanalınızda, kanal yöneticisi olduğunuz bir kanalda veya kanal yönetiminin onayıyla. Ayrıca kendi kullanımınız için, yeni gelenleri kendi pencerenizde fark etmenizi sağlayan sessiz bildirimler de tamamen zararsızdır.
Kanalın kendi botuyla karşılama yapmak isterseniz Eggdrop karşılama scripti yazımıza bakabilirsiniz.
Temel Script
on *:JOIN:#: {
if ($nick == $me) { return }
if (!$istok(%karsila_kanallar,$chan,32)) { return }
.notice $nick $readini($scriptdirkarsilama.ini,Mesajlar,$chan)
}
Kodun parçaları:
$nick == $mekontrolü, kendi girişinizde kodun çalışmasını önler.$istokkontrolü, scriptin yalnızca belirlediğiniz kanallarda çalışmasını sağlar..noticebaşındaki nokta, kendi pencerenizde çıktı gösterilmesini engeller.
Kanal listesini bir global değişkende tutmak, hangi kanallarda karşılama yapılacağını kolayca değiştirmenizi sağlar. Token identifier'ları için mIRC token identifierları, ini dosyaları için mIRC ini dosyaları yazılarımıza bakın.
Kanal Bazlı Mesajlar
Her kanalın karakteri farklıdır; bir destek kanalının karşılaması ile bir sohbet kanalının karşılaması aynı olmamalıdır. Mesajları bir ini dosyasında kanal adına göre saklamak, bu esnekliği sağlar:
[Mesajlar]
#destek=Destek kanalina hos geldin! Sorunu tek mesajda ayrintili yaz.
#sohbet=Hos geldin! Keyifli sohbetler.
Kanal için özel mesaj tanımlı değilse genel bir mesaj kullanmak iyi bir çözümdür:
var %mesaj = $readini($scriptdirkarsilama.ini,Mesajlar,$chan)
if (!%mesaj) { var %mesaj = $readini($scriptdirkarsilama.ini,Mesajlar,genel) }
Tekrar Girişleri Atlamak
Bağlantısı sık kopan bir kullanıcı gün içinde onlarca kez kanala girip çıkabilir. Her seferinde aynı mesajı almak can sıkıcıdır. Çözüm, son karşılama zamanını saklayıp belirli bir süre geçmeden tekrar karşılamamaktır:
on *:JOIN:#: {
if ($nick == $me) { return }
if (!$istok(%karsila_kanallar,$chan,32)) { return }
var %anahtar = $+($chan,.,$address($nick,2))
if ($hget(karsilandi,%anahtar)) { return }
hadd -mu43200 karsilandi %anahtar 1
.notice $nick Hos geldin!
}
Burada anahtar olarak nick yerine adres maskesi kullanılıyor; böylece kişi nick değiştirse bile tanınır. hadd komutundaki süre parametresi, kaydın on iki saat sonra kendiliğinden silinmesini sağlar. Hash tabloları için mIRC hash tabloları yazımıza bakın.
Tanıdıkları Karşılamamak
Kanalın düzenli üyelerini her girişte karşılamak gereksizdir; onlar kanalı zaten tanıyor. Bir tanıdıklar listesi tutup bu kişileri atlayabilirsiniz. mIRC'in adres defteri de bu iş için kullanılabilir: Kayıtlı kullanıcıları bir seviyeye atayıp scriptte bu seviyeyi kontrol edebilirsiniz.
Daha basit bir yaklaşım, kanalda op veya voice olan kullanıcıları karşılamamaktır; bu kişiler genellikle kanalın yerleşik üyeleridir.
Flood Sırasında Susmak
Bir flood saldırısında kanala saniyeler içinde yüzlerce kullanıcı girebilir. Scriptiniz her birine mesaj göndermeye çalışırsa sunucu sizi flood nedeniyle bağlantıdan düşürür.
Korunma yöntemi, son dakikada kaç karşılama gönderildiğini saymak ve belirli bir eşiği aşınca karşılamayı geçici olarak kapatmaktır:
inc -u60 %karsilama_sayac
if (%karsilama_sayac > 5) { return }
Bu satırlar, dakikada beşten fazla karşılama gönderilmesini engeller. Süreli değişkenler için mIRC değişkenler yazımıza bakın.
Ek bir önlem olarak, karşılama mesajlarını kısa bir gecikmeyle göndermek de hem daha doğal görünür hem de mesaj kuyruğunu rahatlatır. Bunun için timer kullanabilirsiniz; bkz. mIRC timer.
Kendiniz İçin Bildirim
Karşılama göndermek istemiyor ama yeni gelenleri fark etmek istiyorsanız, yalnızca kendi pencerenizde görünen bir bildirim yazabilirsiniz:
on *:JOIN:#: {
if ($nick == $me) { return }
if ($nick isreg $chan) {
echo $chan * Yeni kullanici: $nick ( $+ $address($nick,2) $+ )
}
}
Bu yaklaşım hiçbir kanal kuralını ihlal etmez, kimseyi rahatsız etmez ve kanalı takip etmenizi kolaylaştırır. Bildirim özelleştirmeleri için mIRC bildirim addonu yazımıza bakabilirsiniz.
İyi Bir Karşılama Mesajı
Teknik kısım kadar mesajın içeriği de önemlidir:
- Kısa tutun: Tek satır, en fazla iki cümle.
- Kanalın amacını belirtin: Yeni gelen nereye geldiğini anlasın.
- Bir sonraki adımı söyleyin: "Sorununu tek mesajda yaz" veya "kurallar için konuya bak" gibi.
- Renk ve sembol abartısından kaçının: Bazı istemciler bunları farklı gösterir veya hiç göstermez.
- Sabırlı olmayı hatırlatın: Destek kanallarında cevabın zaman alabileceğini belirtmek, kullanıcının hemen ayrılmasını önler.
Ayarları Yönetmek
Scriptinizi kullanılabilir hâle getirmenin en iyi yolu, ayarları koddan ayırmaktır: Kanal listesi, mesajlar, bekleme süresi ve flood eşiği bir ini dosyasında dursun. Daha konforlu bir çözüm, bu ayarları bir dialog penceresinden yönetmektir; bkz. mIRC dialog tasarımı.
Sık Yapılan Hatalar
- Kendi girişinde tetiklenmek:
$nick == $mekontrolünü atlamak. - Bütün kanallarda çalıştırmak: Kanal filtresi koymamak, istemediğiniz kanallarda da mesaj göndermenize yol açar.
- Flood koruması olmaması: Saldırı anında bağlantınızın kesilmesine neden olur.
- Kanala mesaj göndermek: Notice yerine kanal mesajı kullanmak sohbeti böler.
- Tekrar kontrolü olmaması: Bağlantısı kopan kullanıcıyı sürekli karşılamak.
Gerçek Bir Senaryo
Bir kullanıcı, kendi küçük sohbet kanalında yeni gelenleri karşılayan bir script yazıyor. İlk sürümde mesaj kanala gönderiliyor ve bağlantısı sürekli kopan bir üye yüzünden kanala dakikada birkaç kez karşılama düşüyor. Diğer üyeler rahatsız oluyor. Kullanıcı scripti düzeltiyor: Mesajı notice'a çeviriyor, adres bazlı bir tekrar kontrolü ekliyor, kanalda op ve voice olanları atlıyor ve dakikada en fazla beş karşılamaya izin veriyor. Script artık fark edilmeden, yalnızca gerçekten yeni gelenlere çalışıyor.
Scripti Kapatılabilir Yapmak
Karşılama scriptinizi bir grup içine almak, onu geçici olarak kapatmanızı kolaylaştırır. Yoğun bir kanalda bulunduğunuzda veya bir etkinlik sırasında kalabalık beklediğinizde scripti tek komutla devre dışı bırakabilir, sonra yeniden açabilirsiniz. Script gruplarını kullanmak için ilgili rehberimize bakabilirsiniz.
Ayrıca scriptinizin açık mı kapalı mı olduğunu kolayca görebilmek faydalıdır. Durumu gösteren kısa bir komut yazmak veya pencere başlığında belirtmek, hangi kanalda karşılama yaptığınızı unutmanızı önler.
Sonuç
Karşılama scripti, doğru yazıldığında görünmez bir ev sahibi gibi davranır. Notice kullanın, kanal filtresi koyun, tekrar girişleri atlayın, flood'a karşı sınır ekleyin ve her şeyden önce kanal kurallarının buna izin verdiğinden emin olun. Bağlantı sonrası işlemlerinizi otomatikleştirmek için sıradaki rehberimiz mIRC otomatik identify ve autojoin.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Karşılama mesajı kanala mı notice ile mi gönderilmeli?
Notice önerilir. Kanala gönderilen karşılamalar sohbeti böler ve kalabalık kanallarda flood'a yol açar.
Kanalda op değilim, karşılama scripti çalışır mı?
Evet. Karşılama için op yetkisine ihtiyaç yoktur, ancak kanal kurallarının buna izin verdiğinden emin olun.
Aynı kişinin her girişinde karşılanmasını nasıl önlerim?
Son karşılama zamanını bir hash tablosunda saklayıp belirli süre geçmeden tekrar karşılamamanız yeterlidir.


