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 Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   birden fazla sunucudan tek bir kanala yazıları yansıtma (https://www.ircforumlari.net/mirc-scripting-sorunlari/387256-birden-fazla-sunucudan-tek-bir-kanala-yazilari-yansitma.html)

Heartbroken 24 Mart 2011 09:21

birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Selamlar :)


başlıktan anlaşılacağı üzere kendi mircimden birden fazla sunucuya bağlanıyorum 35-40 kanalda 7/24 bağlı kalıyorum.eskiden tek sunucudayken böyle basit küçük bir kodla tek bir kanaldan diğer kanallardaki yazıları takip edebiliyordum :

on *:text:*:#kanal,#kanal1,#kanal2,#kanal3,#kanal4:ms g #anakanal  $chan = $time = $+  $nick  $+ -->  $1- 

şimdi birden fazla sunucda olunca tabi bu kod yetmez oldu bunu sunucuA sunucuB sunucuC diyelim tek birindeki misal SunucuA daki anakanalda toplamak tüm o sunucularda bulunduğum kanallarda geçen lakırdıları tek bir sunucunun benim seçtiğim bir kanalında yansıtmak mümkün müdür ?

teşekkürler..

iyi günler...

Mudin 24 Mart 2011 12:54

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Socket yardımı ile yapabilirsin bunu , loglamak istediğin sunuculara socket bot göndericeksin + logların geleceği kanala ve sunucuyada 1 tane sock bot gönderip gelen logları 2. soktuğun botun aliasından kanalına yansıtabilirsin.

CesuryureK 24 Mart 2011 13:27

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:

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:

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

Kod:

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:

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:

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:

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:


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:

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:

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:

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.

sahr 24 Mart 2011 14:22

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
süper bir anlatım süper bir kod casuryurek eline saglık

----------

bu koda muaf kanallar ekleye bılırmıyız oyun kanalalrını yansıtmasa ıyı olur gıbı :) veya belirli kanallarını yansıtsa sunucuların

CesuryureK 24 Mart 2011 15:32

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Tabi eklenebilir. Şöyleki,

Diyelimki #Kelime #Oyun kanallarını muaf tutsun dersek,

#yurek off
on *:TEXT:*:#: {
/scon %sconno /msg #KANAL $server $chan $+(<,$nick,>) $1-
}
#yurek end

bu satırı aşağıdaki gibi değiştiriyoruz.

#yurek off
on *:TEXT:*:#: {
if (!$regex($chan,/(#Oyun|#Kelime|#Bilmece)/i) {
/scon %sconno /msg #KANAL $server $chan $+(<,$nick,>) $1-
}
}
#yurek end

şeklinde değiştiriyoruz.
Daha fazla kanal eklemek için #Kanal|#kanal1|#kanal2|#kanal3
şeklinde ekleme yaparsınız.

Heartbroken 24 Mart 2011 15:43

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Merhaba

kodu şimdi denedim 4:4'lük kusursuz çalışıyor ..teşekkür ederim bu çok işime yarıyacak birşey oldu o kadar kanal arasında takip edemiyordum ..zahmet oldu elinize sağlık

iyi çalışmalar iyi günler ..

Dangerous123 23 Nisan 2014 20:51

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Buna muaf nick - muaf kelime ekleye bilirmiyiz ?
örnek:nick: nomercy ve check botlarının yadıklarını yansıtmıyacak
birde muaf kelime: aop oldunuz sop oldunuz operator konumuna gectiniz gibi kelimeleri muaf tutabılırmıyız ?

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 20:43 -->-> Daha önceki mesaj 20:05 --

if $istok(nomercy check Nick3,$nick,32) { return }
bu sekılde muaf nick ekledim suan için calısıyor gibi görunuyor lakin muaf kelimeyı nasıl ekleriz çözemedim


yani bazı kelimeleri yansıtmamalı slm , s.a , a.s , a.selam , h.g gibi

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 20:51 -->-> Daha önceki mesaj 20:43 --

vala coder lerde bakıp çıkıyor :) sanırım kelime yasaklamak zor

Toprak__ 23 Nisan 2014 22:52

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Text eventi altına;
Kod:

if $istok(s.a a.selam h.geldin,$1,32) { return }
Basit bir şekilde ekleme yapabilirsin.

tanerler 09 Aralık 2014 02:18

Cevap: birden fazla sunucudan tek bir kanala yazıları yansıtma
 
Alıntı:

Mudin Nickli Üyeden Alıntı (Mesaj 1040707938)
Socket yardımı ile yapabilirsin bunu , loglamak istediğin sunuculara socket bot göndericeksin + logların geleceği kanala ve sunucuyada 1 tane sock bot gönderip gelen logları 2. soktuğun botun aliasından kanalına yansıtabilirsin.


böyle bir bot var bende cycle tarzı ona ne gibi kod eklersem x sunucuda olan sohbeti i kendi sunucumda kanala yansıtırım loglama ile yardımcı olursanız sevinirim


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk