Tekil Mesaj gösterimi
Alt 13 Haziran 2010, 20:42   #12
Çevrimiçi
toXic
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
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.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet