IRC’e girenlere belirlediğiniz nick’ten otomatik mesaj nasıl atarsınız (Unreal )

Sunucunuza bağlanana karşılama mesajı gönderimini öğreneceksiniz bu bölümde

————————————————

a-) Ilk olarak telnet’e login olunuz komut dizinine geldikten sonra alt bölümde verdiğim komutları sırası ile uygulayınız

=> Komut : cd Unreal3.2
; Bu komut ile Unreal3.2 klasorune girersiniz
=> Komut : cd src\
; Bu komut ile Unreal3.2 klasorunun icindeki src\ klasorune giris yaptınız
=> Komut : pico s_user.c
; Bu komut ile Unreal3.2=>src=> icerisindeki s_user.c dosyasına giris yaptınız

——————————————————————-

b-) Bu dosyanın icerisinde bulunan alt bölümde vermis olduğum satırı aratacaksınız ( CTRL+W ) ile

– Aranacak Satır =>

ircd_log(LOG_CLIENT, “Connect – %s!%s@%s”, nick, user->username,

– Bu satırı bulduktan sonra satırın alt bölümüne alt satırdaki kodu ekleyiniz

=>Eklenecek Kod =>

sendto_one(cptr, “:Nick PRIVMSG %s :Sunucumuza hoş geldiniz“, me.name, sptr->name, sptr->name);

– Sunucumuza hoş geldiniz ( Yazısını istediğiniz gibi değiştirebilirsiniz )

———————————————————————-

c-) Bütün bunları yaptıktan sonra alt bölümde verdiğim komutları uygulayınız

=> Komut : cd ..
; Bu komut ile Unreal3.2 klasorune geri döneriz
=> Komut : make
; Bu komut ile değiştirdiğiniz klasoru aktif edersiniz lütfen dolana kadar bekleyiniz kapatmayınız
=> Komut : ./unreal restart
; Bu komut ile make işlemi bittikten sonra sunucunuzu tekrar başlatırsınız

———————————————————————-

kolay gelsin , iyi çalışmalar

 

ALINTIDIR

Unrealden Root admin yazmak ve bir kaç root nick belirlemek.

Nedense Root admin yazmayı karıştırıyorlar hala.

ROOT admin olmak icin vhostta ROOT yazip yazmaması önemli değildir. Services.conf klasorunde servicesroot satırı karsısında hangi nick varsa gercek root admin odur.
Bu konulara dikkat edin.

Yani Şu Satırda…

 

# ServicesRoot [REQUIRED]
# Specifies the Services “super-users”. The super-users, or “roots” as in
# Unix terminology, are the only users who can add or delete Services
# admins.
#
# You can specify more than one nick by separating each one by a space.
#
# This is commented out by default; make sure you insert the correct
# nick before uncommenting it.

ServicesRoot “Root Nick

Yukardaki.. bu Bölüme Yazarak işleminizi yapabilirsiniz..

 

ServicesRoot “Root Nick

 

# olan kısımlar olduğu gibi kalıcak..

Root Nick‘i Yazdıkdan Sonra… ctrl+x ve Evet Diyerek.. Services.conf u kaydettikden sonra.. servicesleri kapatıp açtığınızda belirlediğiniz nick root admin olur.. Saygılar…

Peki Diyeceksinizki Biz İki Kişi Yönetiyoruz Yani İki Root Var.

bunlar serviceste
services.conf un içindedir

Iki tane rootsa

ServicesRootRoot1 Root2″

Yazın.

Saygılar.

 

ALINTIDIR

IRC Unreal ident/username sabitleme

FULLNAME SABİTLEME

Unreal3.2.x/Src/s_users.c

dosyasına giriyoruz

Kod:

IRCstats.clients++;

Satırını Bulup
Hemen Altına

Kod:

strcpy(sptr->info,”Bizim Serverimiz Burasi“);

kodunu ekliyoruz
Sonra değişiklikleri kaydedip çıkıyoruz
Serveri Kapatıp açtıktan sonra Bütün Username’lar Sabit Kalacaktır

IDENT SABITLEME

cd Unreal3.2.3
cd src/
pico s_user.c

ident sabitleme
asagıdakı gıbıdır

/* because username may point to user->username */

char temp[USERLEN + 1];
strncpyzt(temp, username, USERLEN + 1);
if (IDENT_CHECK == 0) {
strncpyzt(user->username, temp, USERLEN + 1);
}
else {
*user->username = ‘~’;
strncpyzt((user->username + 1), temp, USERLEN);
#ifdef HOSTILENAME
noident = 1;
#endif
}
}
#ifdef HOSTILENAME
strcpy(user->username,”istediğin ident“);

 

kodunu ekliyoruz
Sonra değişiklikleri kaydedip çıkıyoruz
Serveri Kapatıp açtıktan sonra Bütün Username’lar Sabit Kalacaktır

 

cd
cd Unreal3.2
make
make install
./unreal restart

IRC Sunucuda PREFIX=(qaohv)~&@%+ Değiştirmek ( +q ( . ) nokta ile değişin.

Sunucunuzdaki Founder Işaretini (~) Nokta Işareti Yapmak Istiyosanız Aşağıdaki Yolu Takip Edin

include/common.h

Kod:

#define CHPFIX “(qaohv)~&@%+”
aşağıdaki ile değiştir

Kod:

#define CHPFIX “(qaohv).&@%+”
src/api-isupport.c

 

Kod:

#ifdef PREFIX_AQ IsupportAdd(NULL, “STATUSMSG”, ~&@%+);

 

aşağıdaki ile değiştir

Kod:

#ifdef PREFIX_AQ IsupportAdd(NULL, “STATUSMSG”, “.&@%+”);

src/channel.c

Kod:

#ifdef PREFIX_AQ if (cm->flags & CHFL_CHANOWNER) buf[idx++] = ‘~’; else if (cm->flags & CHFL_CHANPROT) buf[idx++] = ‘&’; else #endif

aşağıdaki ile değiştir

Kod:

#ifdef PREFIX_AQ if (cm->flags & CHFL_CHANOWNER) buf[idx++] = ‘.’; else if (cm->flags & CHFL_CHANPROT) buf[idx++] = ‘&’; else #endif

 
src/webtv.c

Kod:

#else if (access & CHFL_CHANOWNER) *(buf + len++) = ‘~’; else if (access & CHFL_CHANPROT) *(buf + len++) = ‘&’; #endif

 

aşağıdaki ile değiştir

Kod:

#else if (access & CHFL_CHANOWNER) *(buf + len++) = ‘.’; else if (access & CHFL_CHANPROT) *(buf + len++) = ‘&’; #endif

src/modules/m_message.c

Kod:

#ifdef PREFIX_AQ case ‘&’: prefix |= PREFIX_ADMIN | PREFIX_OWNER; break; case ‘~’: prefix |= PREFIX_OWNER; break; #else

aşağıdaki ile değiştir

Kod:

#ifdef PREFIX_AQ case ‘&’: prefix |= PREFIX_ADMIN | PREFIX_OWNER; break; case ‘.’: prefix |= PREFIX_OWNER; break; #else

Kod:

 

#ifdef PREFIX_AQ else if (prefix & PREFIX_ADMIN) pfixchan[0] = ‘&’; else if (prefix & PREFIX_OWNER) pfixchan[0] = ‘~’; #endif

aşağıdaki ile değiştir

Kod:

#ifdef PREFIX_AQ else if (prefix & PREFIX_ADMIN) pfixchan[0] = ‘&’; else if (prefix & PREFIX_OWNER) pfixchan[0] = ‘

src/modules/m_who.c

Kod:

#ifdef PREFIX_AQ if (cm->flags & CHFL_CHANOWNER) status[i++] = ‘~’; else if (cm->flags & CHFL_CHANPROT) status[i++] = ‘&’; else #endif

aşağıdaki ile değiştir

Kod:

 

#ifdef PREFIX_AQ if (cm->flags & CHFL_CHANOWNER) status[i++] = ‘.’; else if (cm->flags & CHFL_CHANPROT) status[i++] = ‘&’; else #endif

 
src/modules/m_whois.c

Kod:

#ifdef PREFIX_AQ if (access & CHFL_CHANOWNER) *(buf + len++) = ‘~’; else if (access & CHFL_CHANPROT) *(buf + len++) = ‘&’; else #endif

aşağıdaki ile değiştir

Kod:

 

#ifdef PREFIX_AQ if (access & CHFL_CHANOWNER) *(buf + len++) = ‘.’; else if (access & CHFL_CHANPROT) *(buf + len++) = ‘&’; else #endif

İşaretleri kendinize göre düzenleye bilirsiniz burda founder işareti (  .  ) olarak yapılmıştır.

Bunları yaptıktan sonra;

cd
cd Unreal3.2
make
make install
./unreal restart

Kanal YasakLama ve Basvuru-Kayıt Sistemi ( Unreal – IRCservices – Eggdrop triosuyLa )

Merhaba arkadaşLar ,

Bildiğimiz üzere bazı sunucularda kayıtsız kanallara girdiğimiz zaman servisler tarafından kanaldan atılıyoruz.Kanal başvurusu yapmak için botların özeline mesaj gönderiyoruz ve sonra onaylanan kanallar memo ile bize bildiriliyor.Şimdi bu sistemi anlatacağım size.(Tabiki Unreal bir sunucuda IRCservices kullanıyor ve eggdrop kullanıyorsanız)

İlk olarak kayıtsız kanal girişlerini yasaklayalım !

 

You were kicked from #Ozelkanal by ChanServ (Bu kanalda bulunmaya yetkili değilsiniz.Kanal basvurusu yapmak için /msg botnick ozelkanal yazınız.)

 

ircservices/lib/modules.conf dosyasının içine giriyoruz.
#CSRegisteredOnly satırını aratıyoruz ve başındaki diyezi(#) kaldırıyoruz.Yani
CSRegisteredOnly şeklinde bırakıp kaydetip çıkıyoruz.

ircservices.5.0.**/lang/tr.l dosyasının içine girip “Bu kanal kullanilamaz.” yazısını aratıp , ” Bu kanalda bulunmaya yetkili değilsiniz.Kanal basvurusu yapmak için /msg botnick ozelkanal yazınız. ” şeklinde değiştiriyoruz ve kaydedip çıkıyoruz.Değişikliklerimizin aktif olması için ircservices.5.0.** dizininde make ve make install yaptıktan sonra servislerimizi yeniden başlatıyoruz.

Kanal yasaklama olayını gerçekleştirdik . Şimdi gelelim botumuzun kanal başvuru sistemine ;

Botumuza aşağıdaki tcl kodu eklediğimizde kick mesajındaki /msg botnick ozelkanal sorusunun cevabını verecektir kullanıcıya.

Kod:

bind msg – ozelkanal ozel_raw
proc ozel_raw {n u h a} {
putserv “PRIVMSG $n Merhaba $n ”
putserv “PRIVMSG $n Özel kanal basvuru sihirbazına Hoş GeLdiniz”
putserv “PRIVMSG $n Sunucumuzda özel kanal açılımları , sohbet huzurunuz açısından sınırlı bırakılmıştır.”
putserv “PRIVMSG $n Taşıdığı isim ; saygı ve sevgi kuralları içerisinde olan , tüm özel oda isteklerinize cevap verilecektir.”
putserv “PRIVMSG $n Şimdi başvuru için ; ozelkanalbasvuru #kanal yazmanız yeterlidir.”
putserv “PRIVMSG $n TaLkTr KeyifLi SohbetLer DiLer ..”
}

 

yani , botumuzun ozeline ozel kanal yazdığımızda ,

< botnick> Merhaba Misafir
< botnick> Özel kanal basvuru sihirbazına Hoş GeLdiniz
< botnick> Sunucumuzda özel kanal açılımları , sohbet huzurunuz açısından sınırlı bırakılmıştır.
< botnick> Taşıdığı isim ; saygı ve sevgi kuralları içerisinde olan , tüm özel oda isteklerinize cevap verilecektir.
< botnick> Şimdi başvuru için ; ozelkanalbasvuru #kanal yazmanız yeterlidir.
< botnick> TaLkTr KeyifLi SohbetLer DiLer ..

cevabını aldık.Şimdi ozelkanalbasvuru #kanal komutu için eklenecek kodumuza gelelim.

Kod:

bind msg – ozelkanalbasvuru basvuru_raw
proc basvuru_raw {n u h a} {
set kanal [lindex $a 0]
putserv “PRIVMSG $n Merhaba $n ,4 $kanal odasi için basvuru işleminiz tamamlanmistir.”
putserv “PRIVMSG $n Kisa bir süre içerisinde memo ile bilgilendirileceksiniz.”
putserv “PRIVMSG $n TaLkTr KeyifLi SohbetLer DiLer ..”
putserv “memoserv send #OzelOdaBasvuru Sayın Yönetici , $n rumuzlu kullanici4 $kanal odasi için kanal basvurusu yapmistir.”
}

 

bu kod ile botumuzun özeline örnek olarak ozelkanalbasvuru #Misafir yazdığımızda bize aşağıdaki cevabı alacağız.

< botnick> Merhaba Misafir , #Misafir odasi için basvuru işleminiz tamamlanmistir.
< botnick> Kisa bir süre içerisinde memo ile bilgilendirileceksiniz.
< botnick> TaLkTr KeyifLi SohbetLer DiLer ..

Bu kodumuz ile kullanıcımıza cevabımızı vermiş ve daha önceden kaydettiğimiz #OzelOdaBasvuru kanalımıza botumuz aracılığı ile kullanicinin başvurduğu kanal adını memo göndermiş olduk.

Şimdi botumuza kanalı onaylatıp , şifresini kullanıcımıza memo atacak kodumuza gelelim .

Kod:

#### ozel kanal onay sistemi###
set ops_chan “#OzelOdaBasvuru”
bind pub – !kaydet kaydet
bind pub – !part gemlik2
proc kaydet {nick uhost handle chan text} {
global ops_chan
if {[isop $nick $chan] || [onchan $nick $ops_chan]==0} {
set kanal [lindex $text 0]
set gnick [lindex $text 1]
if {![validchan $kanal]} {
channel add $kanal { +nodesynch flood-chan 10:2 }
}
putserv “operserv mode $kanal +o botnick”
putserv “chanserv register $kanal karmaşıkşifreniz WwW.sunucuadi.Com”
putserv “chanserv set $kanal founder $gnick”
putserv “memoserv send $gnick Merhaba4 $gnick ,isteginiz uzerine $kanal odasi nickinize kaydedilmistir.Kanalinizin sifresi karmaşıkşifreniz olarak belirlenmistir . Guvenliginiz icin sifrenizi derhal degistirmeniz onerilir . Kanal sifrenizi degistirmek için  /cs set $kanal password4 sifreniz komutunu uygulayiniz . sunucuadı Keyifli Sohbetler Diler ..”
putserv “PRIVMSG $ops_chan :iSLem tamamlandi .  $gnick  nickinin istegi uzerine $kanal  kanali kayit islemi tamamlanmis , kanal sahibi $gnick  olarak belirlenmistir.”
return 1
}
return 1
}
proc gemlik2 {nick uhost handle chan text} {
global ops_chan
if {[isop $nick $chan] || [onchan $nick $ops_chan]==0} {
set kanal [lindex $text 0]
if {[validchan $kanal]} {
channel remove $kanal
}
putserv “PRIVMSG $ops_chan : $kanal kanalindan cikildi $nick”
return 1
}
return 1
}

 

şimdi bu kodumuz #OzelOdaBasvuru odasında opda olduğumuzda
!kaydet #KanaladiKaydedilecekNick
komutunu uyguladığımızda botumuzu o kanala sokup botumuza kanalı kaydettirecek ve kanalı seçtiğimiz nickin üzerine kaydettirip seçtiğimiz nicke memo ile bilgilendirecektir.(#OzelOdaBasvuru odasına botumuz kanal kaydedilip istediğiniz nicke devredildi mesajını verdikten sonra
!part #kanal
komutu ile botumuzu o kanaldan çıkaralım)

Kanal yasaklama olayını halleden toXic , eggdrop tcl kodlar için BuCaLi ve GeMLiK arkadaşlarımıza teşekkürü bir borç bilirim.Umarım işinize yarar bir çalışma olmuştur ve anlatım yapabilmişimdir.

Alıntıdır.

Paylaşan:Raw

Operhelp Sistem kullanıcı karşılama modülü

#include “config.h”
#include “struct.h”
#include “common.h”
#include “sys.h”
#include “numeric.h”
#include “msg.h”
#include “channel.h”
#include
#include <sys/stat.h>
#include
#include
#include
#ifdef _WIN32
#include
#endif
#include
#include “h.h”
#ifdef _WIN32
#include “version.h”
#endif
#define ibo “#Opers”
#define tox “toXic.NET”
int z=0;
DLLFUNC int m_operhelp(aClient *, aChannel *);
static int m_cikis(aClient *, aClient *, aChannel *, char *);
static Hook *IBO_Part=NULL;
ModuleHeader MOD_HEADER(m_operhelp)
= {
“m_operhelp”,
“Operhelp (toXic”,
“OperHELP Sistem Modulu (toXic”,
“3.2-b8-1”,
NULL
};
DLLFUNC int MOD_INIT(m_operhelp)(ModuleInfo *modinfo)
{
HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, m_operhelp);
IBO_Part = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_PART, m_cikis);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_operhelp)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_operhelp)(int module_unload)
{
return MOD_SUCCESS;
}
DLLFUNC int m_operhelp(aClient *sptr, aChannel *chptr)
{
if (!stricmp(chptr->chname,”#OperHelp”) && !IsAnOper(sptr)) {
sendto_one(sptr, “:%s NOTICE %s :\2%s\2 OPERHELP Kanalina girdiniz. Operatorlere haber veriliyor..”, tox, sptr->name, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :Merhaba \2%s\2 OPERHELP Kanalina hos geldiniz.”, tox, sptr->name, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :Operatorlere haber veriliyor. Lutfen bekleyin.”, tox, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :Operatorlere haber verildi.”, tox, sptr->name);
if ((chptr = find_channel(ibo, NullChn)) != NullChn)
{
sendto_channel_butone(&me, &me, chptr, “:OPERHELP PRIVMSG %s \2%s\2 Kullanicisi \2OPERHELP\2 Kanalina girdi ve yardim bekliyor.”,
ibo, sptr->name);
return 0;
}
}
}
static int m_cikis(aClient *cptr, aClient *sptr, aChannel *chptr, char *comment) {
if (!stricmp(chptr->chname,”#OperHelp”) && !IsAnOper(sptr)) {
z++;
sendto_one(sptr, “:%s PRIVMSG %s :\2-“, tox, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :Operhelp Sunucu \2OPER Yardimi\2 kanalindan ayrildiniz.”, tox, sptr->name);
sendto_one(sptr, “:%s NOTICE %s :Operhelp Sunucu \2OPER Yardimi\2 kanalindan ayrildiniz.”, tox, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :Baska bir sikayetinizde tekrar \2#OPERHELP\2 Kanalina gelebilirsiniz.”, tox, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :Hos sohbetler dileriz.”, tox, sptr->name);
sendto_one(sptr, “:%s PRIVMSG %s :\2Operhelp\2 kanalindan [\2%s\2] yardim alan \2%d\2 . Kullanicisiniz.”, tox, sptr->name, me.name, z);
return 0;
}
}

 

 

– #Operhelp kanalina giren kullanicilari, #OPERS kanalinda belirtir.
– Kullanici karşilar.
– Kullanici giriş yaptiğinda bilgi verir.
– Kullanici ayrildiğinda teşekkür edilip bilgi verir.
– Yardim alan kullanicilari sayar.

Alıntı:

 

[KBSC] 19::09 Merhaba KelebekTurkce76 OPERHELP Kanalina hos geldiniz.
[KBSC] 19::09 Operatorlere haber veriliyor. Lutfen bekleyin.
[KBSC] 19::09 Operatorlere haber verildi.

 

Alıntı:

 

[KBSC] 19::09KelebekTurkce76 Kullanicisi OPERHELP Kanalina girdi ve yardim bekliyor.

 

Alıntı:

 

[KBSC] 19::09 –
[KBSC] 19::09 Operhelp Sunucu OPER Yardimi kanalindan ayrildiniz.
[KBSC] 19::09 Baska bir sikayetinizde tekrar #OPERHELP Kanalina gelebilirsiniz.
[KBSC] 19::09 Hos sohbetler dileriz.
[KBSC] 19::09 Operhelp kanalindan [irc.toXic.NET] yardim alan 4 . Kullanicisiniz.

 

(Hublu sunucularda kullanmayin.)

Kodlayan: toXic

ALINTI:
IRCForumlari.Net

Ortak kanallarda ban

AÇIKLAMA
Seçili olan/belirtilen kişiyi, ortak olarak bulunduğunuz tüm kanallardan banlayarak uzaklaştırır.
Cümleyi örneklersek;
Mesela EkreM Nicki, #Sohbet ve #Chat kanallarında bulunuyor.
/tban Ekrem komutunu yazarak Mustafa’yı bu 2 kanaldan ban+kick atarak uzaklaştırıyoruz

Kullanımı; /tban Nick

Kod:

alias tban {
if $1 == $me || $comchan($1,1) == $null { halt }
set %kanalsayisi $comchan($1,0)
var %x = 1
while (%x <= %kanalsayisi) { if $me isop $comchan($1,%x) { .mode $comchan($1,%x) +b $address($1,2) | .kick $comchan($1,%x) $1 Ortak olarak bulunduğumuz, tüm kanallardan banlandın! | inc %x } }
}