IRCServiceste bazi durumlari kullanmak için pointerlar kullanilir. Bu pointerlar birçok özellikleri almak için, işlem yapmak için sıkca kullanilir. Örneğin *ni..
Örnek vericek olursak;
/************************************************************************/
//coded toXic
static void do_sans(User *u)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
#define bekle 3;
static int toxolog = 60*60*24*bekle;
time_t now = time(NULL);
NickGroupInfo *ngi;
ngi = get_ngi(ni);
if (!ni) {
send_cmd(s_NickServ, "NOTICE %s Nickiniz'i kaydetmelisiniz.", u->nick);
return;
}
if (!is_services_admin(u) && ngi->lastsans && now - ngi->lastsans < toxolog) {
send_cmd(s_NickServ, "NOTICE %s Bu Komutu \2( 3 ) \2 Gunde, sadece \2 1 \2 Kez Kullanabilirsiniz..", u->nick);
return;
}
ngi->lastsans = now;
/*
int Kalan;
Kalan = now - ngi->lastsans - toxolog;
send_cmd(s_NickServ, "NOTICE %s kalan sureniz ( \2%d\2 )", u->nick, Kalan);
*/
int x = 0;
int ibo = 0;
for (ibo = 0; ibo < 1; ++ibo)
x=rand()%100;
send_cmd(s_NickServ, "NOTICE %s Sans Numaraniz, \2 ( %d )\2 Olmustur..", u->nick, x);
send_cmd(s_NickServ, "NOTICE %s Kazanma bilgisi ", u->nick);
if (x == 35) {
send_cmd(s_NickServ, "NOTICE %s Tebrikler, Sansli sayiyi yakaladiniz.", u->nick);
send_cmd(s_NickServ, "SWHOIS %s :Vhost Sansli Kullanicisi", u->nick);
}
else if (x == 44) {
send_cmd(s_NickServ, "NOTICE %s Tebrikler, Sansli sayiyi yakaladiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Odulunuz, Size Whois cekenleri goreceksiniz..", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +W :1", u->nick);
}
else if (x == 62) {
send_cmd(s_NickServ, "NOTICE %s Tebrikler, Sansli sayiyi yakaladiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Odulunuz, Kanallardan atilmayacaksiniz..", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +q :1", u->nick);
}
else if (x == 77) {
send_cmd(s_NickServ, "NOTICE %s Tebrikler, Sansli sayiyi yakaladiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Odulunuz, Vip Kullanicisi oldunuz.", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +qW :1", u->nick);
}
else if (x == 93) {
send_cmd(s_NickServ, "NOTICE %s Tebrikler, Sansli sayiyi yakaladiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Odulunuz, Size Whois cekenleri goreceksiniz..", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +W :1", u->nick);
}
else {
send_cmd(s_NickServ, "NOTICE %s Maalesef, Sansli gununuzde degilsiniz..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Tekrar Kullanim icin, \2 3 \2 Gun beklemelisiniz..", u->nick);
}
}
bu sekilde bir kod yazalim.
Kod:
NickInfo *ni;Burada *ni’yi kullandik. Fakat Kullanicinin bilgilerini almak için bir pointer daha kullanmaliyiz. Oda;
Kod:
ni = get_nickinfo(u->nick);Burada, get_nickinfo kullanicinin nick bilgilerini alir. Mesela sunucuya giren kullanicilara karşilama yapmak için,
Kod:
NickInfo *ni;
ni = get_nickinfo(u->nick);
#define tox “Nickiniz kayitlidir.”
if (ni) {
send_cmd(s_NickServ, “PRIVMSG %s %s”, u->nick, tox);
}Olarak kullaniyoruz, Kullanicinin nickinin kayitli olup olmadiğini bu şekilde algilatiyoruz.
Kod:
if (!ni) {
send_cmd(s_NickServ, “NOTICE %s Nickiniz’i kaydetmelisiniz.”, u->nick);
return;
}Burada kayitsiz nicklere komut kullanimini kapadik. return burada işlemi kesmiş. Eğer return kullanilmasa idi, işlem gerçekleşirdi.
İlk Kodumuzda varsayalim ki,
Kod:
ni = get_nickinfo(u->nick);yok..
© NickServ Sifre kabul edildi.
nickserv — sans
© NickServ Nickiniz’i kaydetmelisiniz.
Nick kayitli olduğu halde, nickinizi kaydetmelisiniz diyor. 10 harfcik bir kod bile çok önemli kod yazimi için. Hatta bu segmantationa kadar rahatlikla götürebilir.
Gelelim ngi ‘ ye.
Kullanimi;
Kod:
NickGroupInfo *ngi;Seklindedir.
Bunu;
Kod:
if (!is_services_admin(u) && ngi->lastsans && now – ngi->lastsans < toxolog) {
send_cmd(s_NickServ, "NOTICE %s Bu Komutu \2( 3 ) \2 Gunde, sadece \2 1 \2 Kez Kullanabilirsiniz..", u->nick);
return;
}olarak kullanmişiz. ngi en cok emaildi sifre idi yani kişiye özel işlemlerde kullanilmaktadir.
IRCServices – ngi ve ni Kullanimlar. - Yorumlar
Yapılan Yorumlar
BENZER İÇERİKLERİlginizi çekebilecek diğer içerikler
Irc Oper Komutlarının Bir Tanesinde Kısaltma 19 Şubat 2011
irc ban parametrelerinin kullanımı 17 Ocak 2011
irc invex komutu 17 Ocak 2011
irc notify kullanımı 17 Ocak 2011
SOSYAL MEDYADA BİZSitemizin sosyal medya hesapları
ÖNE ÇIKAN KATEGORİLER
FACEBOOK'TA BİZ
Hoşgeldiniz
kelebek.gen.tr – kelebek mirc - Tüm Hakları Saklıdır