Siteniz üzerinde /ns zarat komutunu aktif duruma getirmek istiyorsanız; aşağıda uygulanan işlemleri dikkatli bir şekilde yapmanız gerekmektedir. Daha önceki ircservices hazırkod paylaşımlarımda da belirtmiş olduğum gibi ilk olarak sunucu içerisinde /os update yaparak servislerinizin son güncel halini DB olarak yedeklemiş olmanız yararınıza olacaktır. Edit işlemlerine başlamadan önce, edit yapacağınız dosyaların yedeğini almanızı katiyen tavsiye ederim.
Gelelim kodlama şekline..
Öncelikle; ircservices-5.0.x/modules/nickserv klasörüne giriyorsunuz,
akabinde, (main.c) dosyasına girip;
BULUN,
static void do_dropemail(User *u);
ALTINA,
static void do_zarat(User *u);
EKLEYIN,
–
BULUN,
{ "HELP", do_help, NULL, -1, -1,-1 },
ALTINA,
{ "ZARAT", do_zarat, NULL, -1, -1,-1 },
EKLEYIN,
–
BULUN,
static void do_identify(User *u) { char *pass = strtok(NULL, " "); NickInfo *ni = NULL; NickGroupInfo *ngi = NULL; if (!pass || strtok_remaining()) { syntax_error(s_NickServ, u, "IDENTIFY", NICK_IDENTIFY_SYNTAX); } else if (!(ni = u->ni)) { notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); } else if (ni->status & NS_VERBOTEN) { notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, u->nick); } else if (!(ngi = u->ngi) || ngi == NICKGROUPINFO_INVALID) { module_log("IDENTIFY: missing NickGroupInfo for %s", u->nick); notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); } else if (ngi->flags & NF_SUSPENDED) { notice_lang(s_NickServ, u, NICK_X_SUSPENDED, u->nick); } else if (!nick_check_password(u, u->ni, pass, "IDENTIFY", NICK_IDENTIFY_FAILED)) { /* nothing */ } else if (NSRequireEmail && !ngi->email) { ni->authstat |= NA_IDENT_NOMAIL; notice_lang(s_NickServ, u, NICK_IDENTIFY_EMAIL_MISSING, s_NickServ); } else if (call_callback_2(cb_id_check, u, pass) <= 0) { int old_authstat = ni->authstat; set_identified(u); if (!(old_authstat & NA_IDENTIFIED)) { /* Only log if the user wasn't previously identified */ module_log("%s!%s@%s identified for nick %s", u->nick, u->username, u->host, u->nick); } notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED); call_callback_2(cb_identified, u, old_authstat); } }
ALTINA,
static void do_zarat(User *u) { srand(time(0)); int zar = 1+rand()%6, zar2 = 1+rand()%6; NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Kullanıcı adınızı kaydetmelisiniz...", u->nick); return; } send_cmd(s_NickServ, "NOTICE %s Atılan Zarlar : %d ve %d", u->nick, zar, zar2); if(zar == zar2){ send_cmd(s_NickServ, "NOTICE %s Tebrikler düşeş...", u->nick); send_cmd(s_NickServ, "NOTICE %s Ödülünüz, size Whois çekenleri göreceksiniz..", u->nick); send_cmd(s_NickServ, "SVSMODE %s +W :1", u->nick); } }
İlgili alanlarda make && make install komutlarını uygulayıp, servislerinizi resetleyin.
Komut kullanımı : /NS ZARAT
Olarak kullanabilirsiniz. Bu komutu dilediğiniz gibi geliştirebilir ve değiştirebilirsiniz.