Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: Nick Info Kısmında LISTCHANS kanalları yansıtma.
| SaLTaNaT Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
Kodun yazılış amacı Nick info kısmında Sizin nick'iniz üzerine kayıtlı kanalları gösteriyor
Öncelikle
cd ircservices-5.*.**
cd modules/nickserv
pico main.c giriyoruz
ve şunu taratıyoruz
kod; Kod: Kodu kopyalamak için üzerine çift tıklayın! notice_lang(s_NickServ, u, NICK_INFO_EMAIL, ngi->email); satırının hemen altına
Kod; Kod: Kodu kopyalamak için üzerine çift tıklayın! int i;
char *clist[3];
char alist[128];
ARRAY_FOREACH (i, ngi->channels) {
clist[i] = ngi->channels[i];
}
// Yorum satırları eğer yukarida admin koruması yok ise adminlerinkini gösteriyor yukaridaki admin korumasi da infodaki gizli satir
//if(!nick_is_services_oper(ni))
//{
//if ((!stricmp(ni->nick, ServicesRoot) == 0)||(!nick_is_services_admin(ni))||(!is_oper(ni)))
//{
if (ngi->channels_count == 3)
snprintf(alist, sizeof(alist), "%s, %s, %s (3 Adet)", clist[0], clist[1], clist[2]);
if (ngi->channels_count == 2)
snprintf(alist, sizeof(alist), "%s, %s (2 Adet)", clist[0], clist[1]);
if (ngi->channels_count == 1)
snprintf(alist, sizeof(alist), "%s (1 Adet)", clist[0]);
if (!ngi->channels_count)
snprintf(alist, sizeof(alist), "Bulunmamaktadır.");
send_cmd(s_NickServ, "NOTICE %s :Kayıtlı Kanalları: %s", u->nick, alist);
*alist = '\0'; ekliyoruz ve ardından Kod: Kodu kopyalamak için üzerine çift tıklayın! make & make install /restart dikkat etmeniz gereken bir nokta var oda şurasıdır ben max 3 kanal gösterttim çünkü modules.conf öyle ayarladım bir nick 3 kanal kayıt edebilir istediginiz şekilde çoğaltabilirsiniz
Not : " zaman " Style.
|
Bence Bu şekil daha sağlikli.. Kod: Kodu kopyalamak için üzerine çift tıklayın! int i;
char *clist[10];
ARRAY_FOREACH (i, ngi->channels) {
clist[i] = ngi->channels[i];
}
if ((!stricmp(ni->nick, ServicesRoot) == 0)||(!nick_is_services_admin(ni))) {
int size = 10;
for (i=0; i<size; i++)
send_cmd(s_NickServ, "NOTICE %s Kayitli Kanallari, \2%s\2", u->nick, clist[i]);
} else {
send_cmd(s_NickServ, "NOTICE %s Kayitli Kanali bulunmamaktadir.", u->nick);
}
Bildirisi;
| Alıntı: |
nickserv -- info toXic
© NickServ ------------------ KELEBEK IRCd Network--------------
© NickServ
© NickServ toXic isim: ..
© NickServ toXic Services Root Administrator (SRA)
© NickServ Bu nick tekrar kullanilana kadar 30 gun gunluk koruma altindadir..
© NickServ Toplam Online Suresi, 0 Gun, 9 Saat, 41 Dakika, 44 Saniye.
© NickServ Kullanicinin sectigi vhost Forever.toXic.NET © NickServ Kayitli Kanallari, #Botkontrol © NickServ Kayitli Kanallari, #opers
© NickServ Online Durumuna Gore Seviyesi (New KELEBEK)
© NickServ Kayit zamani: Haz 06 10:52:57 2010 CEST
© NickServ Son quit mesaji: toksik..
© NickServ Ekler: Ek Guvenlik
© NickServ
© NickServ Tüm Nick ve Kanallar GENEL IRC kuralları dahilinde ilk kayit eden kişiye Aittir
© NickServ Kelebek Yönetimi, Nick ve Kanalların kullanımını kurallar dahilinde yasaklayabilir, devir edebilir.
© NickServ Yönetim bu konuda herhangi bir ACIKLAMA veya DUYURU gerekmedikçe yapmaz.
© NickServ Bu Kisi KELEBEK bağımlısıdır, tedavisi yoktur.!
© NickServ
© NickServ ------------------ KELEBEK IRCd Network--------------
|
Uğraşmaya gerek yok, kaç kanal kaydediliyor ise, size integral'ine o değeri verirsiniz.
Veya; Kod: Kodu kopyalamak için üzerine çift tıklayın! static void do_kanal(User *u, NickGroupInfo *ngi)
{
int i;
char *clist[10];
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
//NickGroupInfo *ngi;
#define kayitsiz "Nick Kayitsizdir."
#define yasakli "Nick Yasaklidir."
if (!nick) {
send_cmd(s_NickServ, "NOTICE %s \2 %s \2 ", u->nick, kayitsiz);
return;
}
else if (ni->status & NS_VERBOTEN) {
send_cmd(s_NickServ, "NOTICE %s \2 %s \2 ", u->nick, yasakli);
return;
}
ARRAY_FOREACH (i, ngi->channels) {
clist[i] = ngi->channels[i];
}
if ((!stricmp(ni->nick, ServicesRoot) == 0)||(!nick_is_services_admin(ni))) {
int size = 10;
for (i=0; i<size; i++)
send_cmd(s_NickServ, "NOTICE %s Kayitli Kanallari, \2%s\2", u->nick, clist[i]);
} else {
send_cmd(s_NickServ, "NOTICE %s Kayitli Kanali bulunmamaktadir.", u->nick);
return;
}
} Gibi bir kod kullanarak listeleyebilirsiniz.
Konu toXic tarafından (13 Haziran 2010 Saat 21:11 ) değiştirilmiştir.
|