Tekil Mesaj gösterimi
Alt 24 Mart 2011, 13:27   #3
Çevrimdışı
CesuryureK
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma




Merhabalar.
Bu isteğinizi mIRC'in multi-server identifierlerinden $scon ile yapmak mümkün..

Kod ve ilgili önemli açıklamalar aşağıdadır.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias cesuryurek { .cesur | .enable #yurek } alias cesur { var %cesur = 1, %yurek = $scon(0) while (%cesur <= %yurek) { if ($scon(%cesur).server == irc.anasunucu.com) { set %sconno %cesur } inc %cesur } } #yurek off on *:TEXT:*:#: { /scon %sconno /msg #KANAL $server $chan $+(<,$nick,>) $1- } #yurek end on *:disconnect: { .unset %sconno | .disable #yurek } on *:Exit: { .unset %sconno | .disable #yurek }

-----------------
KODU ALT+R yapınız.
Çıkan remote panelinin sol üst köşesinde "Dosya"(File) var. Ona tıklayınız.
Görüntülenen sekmelerden "Yeni"(New) diyip çıkan boş remote sayfasına kodu yapıştırınız.
-----------------

Kod ne zaman aktif olur ve nasıl olur?

öncelikle kodda geçen kırmızı renkteki 2 kısım var.
Birincisi #KANAL
İkincisi irc.anasunucu.com

#KANAL kısmına hangi kanala yazıların gideceğini belirtiyorsunuz.

irc.anasunucu.com ise, hangi sunucudaki kanala yazıların gideceğini belirtiyorsunuz. Eğerki anasunucu isminin tam olarak ne olduğunu ve koda neyi yapıştıracağınızı garantilemek istiyorsanız anasunucuda herhangi bir pencerede aşağıdaki komutu kullanıyorsunuz. Komudun başında çift slas ( // ) olmasına özen gösteriniz.

//echo -a $server

size verilecek irc sunucusunu kodda geçen irc.anasunucu.com yazıyorsunuz.

/cesuryurek diyip kodu aktifleştiriyorsunuz. Unutmayın tüm sunuculara girip komutu uygulamanızı öneriyorum.
------------------------------------------------

Aşağıdaki vereceğim bilgiler ise kodun açıklaması bu sizi ve buna benzer kod arayanların bundan sonra buna benzer kodları kendilerinin yapabilmesi için, kendi kendine kod öğrenmek isteyenlere yol göstermek adına biraz elimi yorup kodun açıklamasını genişçe yapmak istiyorum.

KODUN AÇIKLAMASI

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias cesur {

cesur adında bir alias oluşturuyoruz. alias kendimizin belirlediği komuttur. /cesur şeklinde çalışır.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
var %cesur = 1, %yurek = $scon(0)

var kod içerisinde bir değişkeni belirlemek, atamak için kullanılır. Burda iki değişkenimiz var %cesur ve %yurek . burdaki % işaretinden sonra yazılan kelimenin bir değeri yoktur yani istediğiniz şekilde değişken ismi belirleyebilirsiniz. ben %cesur ve %yurek olarak belirttim.
%cesur değişkenini 1 sayısına eşitledim. Yani bundan sonra kodda 1 yerine %cesur yazdığımda 1 olacaktır.
%yurek değişkenini de girdiğim sunucu sayısına eşitledim
//echo -a $scon(0) : girdiğim sunucu sayısıdır.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
while (%cesur <= %yurek) {

while döngü demektir. parantez içinde belirlediğimiz şartlar gerçekleşene kadar döngü devam eder. Burdaki döngümüz %cesur değişkeninin %yurek değişkenine eşit olması veya %yurek değişkeninden büyük olmasıdır. ki büyük olması söz konusu değil lakin kodun doğru çalışması için bu şekilde yapılması gerekir. İsteseydik == şeklinde eşitleyebilirdik değişen birşey olmaz. Çünkü %cesur olarak atadığımız değer hiçbir zaman %yurek değerden büyük olamayacağı için problem yok.
Kısacası %cesur olarak atadığımız 1 sayısı girdiğimiz sunucu sayısına ulaşana kadar döngü devam etsin demektir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if ($scon(%cesur).server == irc.anasunucu.com) { set %sconno %cesur }

if eğer koşuludur. Kodlama yapmak aynen Türkçe yazıp düşünmek gibidir.
"Eğer Ahmet gelirse ben gelmem" bu bir koşuldur gitmenizin koşulu ahmetin gelmemesidir. Ahmet gelirse bu durumda siz gitmeyeceksiniz. İşte kodda da aynen böyledir.
döngümüz %cesur değerinin %yurek değerine eşitlenene kadar devam edeceğini üst satırlarda belirtmiştik.
//echo -a $scon(1).server
//echo -a $scon(2).server
vs.
burdaki 1, 2 yerine kaç tane sunucuda bulunuyorsak o kadar sayıyı koyabiliriz. Bu kod satırının amacı. anasunucunun numarasını bulmak. anasunucu numarası anasunucuya eşitlenince hemen ALT+R remote panelinde Variable dediğimiz kısıma
%Scanno sayı
kısmını ekleyecektir. bu da TEXT eventinde aşağıda belirteceğim şekilde işlev görecektir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
inc %cesur

bu satırda geçen inc kısmı %cesur kısmı 1 arttır demektir.
1 eşit değilse 5'e %cesur olarak atadığımız değeri 1 attır demektir taki 1 sayısı artırılıp 5 olup 5=5 koşulu sağlana kadar döngüde(while) çalışır.
hatırlarsanız %cesur <= %yurek yapmıştık bu koşul olana kadar %cesur sayısı bir artıp döngü başa sarıp gene kontrol edecek eğerki gene eşitlik sağlanamazsa %cesur sayısı 1 artırılıp gene döngü başa sarıp taki %cesur sayısı %yurek sayısına eşit olana kadar kod çalışacaktır..

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:TEXT:*:#: { /scon %sconno /msg #KANAL $server $chan $nick $1- }

TEXT eventi başkalarının kanalda yazı yazdığında harekete geçen, çalışan eventtir.
/scon 1 /msg #Chat Selam : Bu komut bulunduğunuz herhangi bir sunucudan, birinci sunucudaki #Chat kanalına selam yazmak için kullanılır.
Kodda ise, anasunucunun numarasını yukarıda anlattığım gibi döngüde bulmamızı sağlayıp %scanno değişkenine atamıştık.

İşte /scon %sconno /msg #kanal $server $chan $nick $1-
şeklinde herhangi bir sunucuda yazılan yazıyı anasunucudaki #kanal kısmında belirtilen yere $server ile hangi sunucuda $chan hangi kanalda ve $nick ile hangi nickin ve cümlesinin ne olduğunu $1- ile istediğimiz anasunucudaki kanala yansıtıyoruz.

Gelelim son değinmemiz gereken kısımlara

#yurek off
kod
kod
#yurek end

bu grup sistemidir ve gruptaki off kısmı on olduğunda çalışacağını off kısmında bulunması halinde kodun çalışmayacağını belirtir.

/enable #yurek şeklinde grupta belirtilen kod aktif olur.
/disable #yurek ise gruptaki kodun çalışmasını, deaktif olmasını sağlar.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias cesuryurek { .cesur | .enable #yurek }

bu kısım ise /cesuryurek şeklinde komut uyguladığımızda
.cesur komutunu ve #yurek olarak gruplandırılan kod dizinini aktifleştirir.

alias cesur kısmını zaten anasunucunun mircte solda kaç tane sunucu penceresi varsa anasununun baştan aşağıya doğru kaçıncı sırada olduğunu bulmamızı sağladığını yukarıdaki cesur aliasında açıklamıştım.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:disconnect: { .unset %sconno | .disable #yurek }

disconnect eventi, sunucudan bağlantımız kesildiğinde harekete geçen, çalışan koddur. bu event ile ALT+R panelinin Variable kısmına atadığımız %scanno değişkenini siler. ve disable #yurek komutu ile #yurek grubundaki kodların çalışmasını engeller.
Bu satırın amacı ise, disconnect durumunda anasunucunun sayısında değişiklik olabileceğinden kodun hatalı çalışmasını engellemek.

Aynı durum, aşağıda verdiğim EXIT eventinde de geçerli.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:Exit: { .unset %sconno | .disable #yurek }

mIRC kapatıldığında Disconnect eventinde olduğu gibi ALT+R panelinin Variable kısmına atadığımız %scanno değişkenini siler. ve disable #yurek komutu ile #yurek grubundaki kodların çalışmasını engeller. Gene amac kodun hatalı çalışmasını daha sonra mIRC açılıp sunuculara bağlandığında hatasız çalışmasını engellemek.

Umarım detaylı bir şekilde anlatmışımdır ve bu satırın sonuna geldiğinizde kodlama adına bir nebze birşey verebilmişimdir.

Hoşça paylaşımlar..

Not: "mIRC Scripting Dersleri" kısmından ilgili event alias bilgilerine ulaşabilirsiniz.

__________________
Şimdi Saat Sensizliğin Ertesi..
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet