Merhaba,
Syzop tarafından yazılan özel kapatma mödülünü hemen hemen bütün sunucular kullanmakta. Bu mödülü
unreal'e entegre edip mödül olmaktan çıkartıp whoislerde kullanıcının özelini açık ya da kapalı olduğunu gösterdim. Buna ek olarak; bir kullanıcı özelini kapattiğında ve birisi ona yazmaya çalıştığında
x rumuzlu kullanici size yazmaya çalıştı diye uyarı ekledim.
Gelelim düzenlemeye...
include/h.h dosyasını açıp
Kod: Kodu kopyalamak için üzerine çift tıklayın!
extern MODVAR long UMODE_BOT; /* 0x400000 User is a bot */
altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
extern MODVAR long UMODE_PDEAF;
ekleyin.
src/umodes.c dosyasını açıp
Kod: Kodu kopyalamak için üzerine çift tıklayın!
long UMODE_BOT = 0L; /* User is a bot */
altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
long UMODE_PDEAF = 0L;
ekleyin ve gene aynı dosya içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
UmodeAdd(NULL, 'B', UMODE_GLOBAL, NULL, &UMODE_BOT);
altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
UmodeAdd(NULL, 'D', UMODE_GLOBAL, NULL, &UMODE_PDEAF);
ekleyin.
src/modules/m_message.c dosyasını açıp
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/* Umode +R (idea from Bahamut) */
if (IsRegNickMsg(acptr) && !IsLoggedIn(sptr) && !IsULine(sptr) && !IsOper(sptr) && !IsServer(sptr)) {
sendto_one(sptr, err_str(ERR_NONONREG), me.name, sptr->name,
acptr->name);
return 0;
}
satırları altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((acptr->umodes & UMODE_PDEAF) && !IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr) && (sptr != acptr))
{
sendto_one(sptr, ":%s: NOTICE %s :Mesajiniz '%s' rumuzuna gonderilemedi: Ozeli mesajlara kapali. (+D)",
me.name, sptr->name, acptr->name);
sendto_one(acptr, ":%s NOTICE %s :'%s' rumuzlu kullanici size yazmaya calisti. Ozeliniz kapali(+D)",
me.name, acptr->name, sptr->name);
return 0;
}
ekleyin.
src/modules/webtv.c dosyası içerisinde ki
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (acptr->umodes & UMODE_BOT)
{
sendto_one(sptr, ":IRC PRIVMSG %s :%s is a Bot on %s",
sptr->name, name, ircnetwork);
}
satırlarının altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (acptr->umodes & UMODE_PDEAF)
{
sendto_one(sptr, ":IRC PRIVMSG %s :%s Ozelini Kapatmis(+D)",
sptr->name, name);
}
ekleyin.
src/modules/m_whois.c dosyası içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (acptr->umodes & UMODE_BOT)
sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name, ircnetwork);
satırları altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (acptr->umodes & UMODE_PDEAF)
sendto_one(sptr, ":%s %d %s %s :%s", me.name,
RPL_WHOISSPECIAL, parv[0], name, "Ozelini Kapatmis(+D)");
ekleyin ve daha sonra make çekerek kodlari derleyin.
NOT: Bu işlemi yapmadan önce privdeaf mödülünü mutlaka conf dosyasından silin ve deaktif edin yoksa hata verecektir.
Unreal3.2.10.4 sürümünde denenmiştir.