Dün gece bu yazınızı okumustum 10 dakika notepadda kodu yazdim ama denemedim ama %90 kodlardaki mantık bu sekilde ve doğru olabilir olasılıgıda o kadar yüksek.
/ns set greet mesaj diye gireceksiniz chanserv kanallarda greet'iniz varsa PRIVMSG atacak tabi komutu kullanmak icin services admin erişiminiz olmasi lazim.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
cd ircservices-*
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w modules/nickserv/main.c
Kod: Kodu kopyalamak için üzerine çift tıklayın!
{ "SET INFO", NULL, NULL, NICK_HELP_SET_INFO, -1,-1 },
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
{ "SET GREET", NULL, NULL, -1, -1,-1 },
ekleyip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->info)
notice_lang(s_NickServ, u, NICK_INFO_INFO, ngi->info);
altina
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->greet)
notice_lang(s_NickServ, u, NICK_INFO_GREET, ngi->greet);
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/set.c
girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
static void do_set_info(User *u, NickGroupInfo *ngi, char *param);
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
static void do_set_greet(User *u, NickGroupInfo *ngi, char *param);
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "KILL") == 0) {
do_set_kill(u, ngi, param);
üstüne;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "GREET") == 0) {
do_set_greet(u, ngi, param);
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else {
syntax_error(s_NickServ, u, "UNSET",
NSRequireEmail ? NICK_UNSET_SYNTAX_REQ_EMAIL : NICK_UNSET_SYNTAX);
}
}
}
üstüne;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "GREET") == 0) {
do_set_greet(u, ngi, NULL);
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/
static void do_set_kill(User *u, NickGroupInfo *ngi, char *param)
{
if (stricmp(param, "ON") == 0) {
ngi->flags |= NF_KILLPROTECT;
üstüne;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/**********************************************************/
static void do_set_greet(User *u, NickGroupInfo *ngi, char *param)
{
const char *nick = ngi_mainnick(ngi);
NickGroupInfo *ngi;
time_t t;
struct tm *ptm;
time (&t);
ptm = gmtime(&t);
free(ngi->greet);
if (!is_services_admin(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services Adminler Kullanabilir.", u->nick);
return;
}
if (param) {
ngi->greet = sstrdup(param);
send_cmd(s_NickServ, "NOTICE %s Mesajiniz %s Olarak degistirilmistir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Kullanim Saati \2%s", u->nick, ctime(&t));
} else {
ngi->greet = NULL;
send_cmd(s_NickServ, "NOTICE %s Bilgileriniz Kaldirilmistir.", u->nick);
}
put_nickgroupinfo(ngi);
}
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w modules/chanserv/check.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (call_callback_4(module, cb_check_chan_user_modes,
source, user, c, modes) > 0)
return;
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
char *s_NickServ;
NickGroupInfo *ngi;
if((ngi->greet!=NULL)) && (user_identified(user)) {
send_cmd(s_NickServ, "PRIVMSG %s %s", ci->name, ngi->greet);
}
ni = get_nickinfo(user->nick);
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/util.c
Kod: Kodu kopyalamak için üzerine çift tıklayın!
free(ngi->info);
altina
Kod: Kodu kopyalamak için üzerine çift tıklayın!
free(ngi->greet);
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/nickserv.h
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SuspendInfo *suspendinfo; /* Suspension info (non-NULL => suspended) */
satirinin üstüne;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
char *greet;
ekleyin;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico lang/index
girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_SET_GREET_CHANGED
NICK_UNSET_GREET
NICK_INFO_GREET
NICK_SET_GREET_SYNTAX
ekleyin en üste.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/database/version4.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_string(ngi->info, f));
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_string(ngi->greet, f));
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->info)
mem += strlen(ngi->info)+1
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->greet)
mem += strlen(ngi->greet)+1;
ekleyip ana dizinda;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make&&make install
sonra komutu girip;
telnetten
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/database/version4.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_string(&ngi->info, f));
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_string(&ngi->greet, f));
ekleyip servislerinizi resetleyin.