Tekil Mesaj gösterimi
Alt 24 Temmuz 2015, 15:47   #1
Entrance
タネル
 
Entrance - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 23 Ocak 2003
Bulunduğu yer: istanbul
Mesajlar: 540
WEB Sitesi: *
IRC Sunucusu: *
İlgi Alanı: Unreal
Alınan Beğeni: 361
Standart /Mode nick +D (whois'e özeli kapalı ilavesi).

Merhaba, Syzop tarafından yazılan özel kapatma mödülünü hemen hemen bütün sunucular kullanmakta. Bu mödülü unreal'eentegre 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:
extern MODVAR long UMODE_BOT;       /* 0x400000     User is a bot */
altına

Kod:
extern MODVAR long UMODE_PDEAF;
ekleyin.

src/umodes.c dosyasını açıp

Kod:
long UMODE_BOT = 0L;           /* User is a bot */
altına

Kod:
long UMODE_PDEAF = 0L;
ekleyin ve gene aynı dosya içerisinde

Kod:
UmodeAdd(NULL, 'B', UMODE_GLOBAL, NULL, &UMODE_BOT);
altına

Kod:
UmodeAdd(NULL, 'D', UMODE_GLOBAL, NULL, &UMODE_PDEAF);
ekleyin.
src/modules/m_message.c dosyasını açıp

Kod:
/* 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:
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:
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:
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:
if (acptr->umodes & UMODE_BOT)
                sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name, ircnetwork);
satırları altına

Kod:
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 ve ./unreal restart komutlarını uygulayın.

NOT: Bu işlemi yapmadan önce privdeaf mödülünü mutlaka conf dosyasından silin ve deaktif edin yoksa hata verecektir.

Yukarıdaki kodlar BehroozWolf'a aittir.

* Ek olarak, herhangi bir kullanıcı özelini kapattığında özeli kapalı olan kişiye mesaj yazmaya çalışanların mesajını bloke edip, özeli kapalı olan kişi tarafından mesaj göndermek için,

BU BÖLÜMÜ,
Kod:
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;
}
BU ŞEKİLDE DEĞİŞTİRİN,
Kod:
if ((acptr->umodes & UMODE_PDEAF) &&  !IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr)  && (sptr != acptr))
     {
         sendto_one(sptr, ":%s PRIVMSG - :Özel mesaj isteklerini kabul etmiyorum.", acptr->name); 
     return 0;
     }

Örnek çıktı,
Alıntı:
[*:*] <Taner> s

Alıntı:
[*:*] <Entrance> Özel mesaj isteklerini kabul etmiyorum.

Bu bölümde bana aittir.


İyi forumlar .. ^^





char *adres = "irc is finished"; for(int i = 0; *(adres + i); i++) { putchar(toupper(adres[i])); }
 Entrance isimli Üye şimdilik offline konumundadır   Alıntı