Giriş

Orijinalini görmek için tıklayınız : IRCServices SET ile HELPER ve VIP Kullanicilar Eklemek.


Code
23 Eylül 2015, 16:29
cd ircservices*-*pico -w modules/nickserv/main.cGirip;

#include "nickserv.h"
#include "ns-local.h"altina;

#define SUNUCU "SUNUCUADI"Ekleyin.

static void do_register(User *u);altina;

static void do_kills(User *u);
static void do_killat(User *u);
Ekleyin.


(KILLS Sadece OPERS Kanalina rapor eder, KILLAT ise belirtilen kullaniciyi sunucudan atar. Hangisini tercih ederseniz kullanabilirsiniz. 2'sinide kullanabilirsiniz.)

{ "REGISTER", do_register, NULL, NICK_HELP_REGISTER, -1,-1 },altina;

{ "KILLS", do_kills, NULL, -1, -1,-1 },
{ "KILLAT", do_killat, NULL, -1, -1,-1 },Ekleyin.



{ "SET INFO", NULL, NULL, NICK_HELP_SET_INFO, -1,-1 },altina;

{ "SET HELPER", NULL, NULL, -1 -1,-1 },
{ "SET VIP", NULL, NULL, -1 -1,-1 },

Ekleyin.

/************************************************** ***********************/

static void do_identify(User *u)
{
char *pass = strtok_remaining();
NickInfo *ni = NULL;
NickGroupInfo *ngi = NULL;Satirlari üzerine;

/************************************************** ***********************/

//toXic

static void do_killat(User *u)
{

NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
User *u2;
char *sebep;
sebep = strtok_remaining();
NickGroupInfo *ngi;
ngi = get_ngi(ni);
// char buf[NICKMAX+32];


if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}

if (!ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Bu Komuta Erisiminiz Yoktur..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Sadece Ozel Kullanicilar Kullanabilir..", u->nick);
return;
}

if (!sebep) {
send_cmd(s_NickServ, "NOTICE %s Sebep girmediniz.", u->nick);
return;
}

if (!(u2 = get_user(nick))) {
send_cmd(s_NickServ, "NOTICE %s Kullanici suanda sunucuda yok.", u->nick);
return;
}

if (irc_stricmp(nick, u->nick) == 0) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;

} else if (ni->status & NS_GUESTED) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
}

if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else {
ni = ni2;
}
}
send_cmd(s_NickServ, "NOTICE %s isleminiz, belirtiliyor.", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OperLog \2%s\2 Helperi, \2%s\2 kullanicisini \2%s\2 sebepten dolayi atilmasini istiyor.", u->nick,u2->nick, sebep);
//snprintf(buf, sizeof(buf), "Sunucu Kurallarina Uymadiginiz icin \2%s\2 Tarafindan Atildiniz..", u->nick);
//kill_user(s_NickServ, nick, buf);


time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
FILE *dosya_yaz;
dosya_yaz = fopen("kill.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s KILLED -> %s Sebep -> %s\n", asctime (timeinfo), u->nick, u2->nick, sebep);
fclose(dosya_yaz);


}
}

/************************************************** ***********************/



static void do_kills(User *u) {

NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
User *u2;
char *sebep;
sebep = strtok_remaining();
NickGroupInfo *ngi;
ngi = get_ngi(ni);



if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}


if (!ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Bu Komuta Erisiminiz Yoktur..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Sadece \2HELPERLAR\2 Kullanabilir..", u->nick);
return;
}
if (!sebep) {
send_cmd(s_NickServ, "NOTICE %s Sebep girmediniz.", u->nick);
return;
}

if (!(u2 = get_user(nick))) {
send_cmd(s_NickServ, "NOTICE %s Kullanici suanda sunucuda yok.", u->nick);
return;
}

if (irc_stricmp(nick, u->nick) == 0) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;

} else if (ni->status & NS_GUESTED) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else {
ni = ni2;
}

send_cmd(s_NickServ, "NOTICE %s Talebiniz, gonderilmistir.", u->nick);
send_cmd(s_NickServ, "PRIVMSG #Opers \2%s\2 Helperi, \2%s\2 kullanicisinin \2%s\2 sebepten Banlanmasini istiyor.", u->nick, u2->nick, sebep);

time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
FILE *dosya_yaz;
dosya_yaz = fopen("kills.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s KILLTALEP -> %s Sebep -> %s\n", asctime (timeinfo), u->nick, u2->nick, sebep);
fclose(dosya_yaz);


}
}
}

Ekleyin.


call_callback_2(module, cb_identified, u, old_authstat);
}
}satirlari üzerinede;

if (ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Merhaba \2%s\2", u->nick, u->nick);
send_cmd(s_NickServ, "NOTICE %s \2HELPER\2 Statusunde sunucuya giris yaptiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Helper ozellikleri, sistem tarafindan size verilmistir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Bunlar disinda, \2/NS KILLAT NICK SEBEP\2 komutu ile", u->nick);
send_cmd(s_NickServ, "NOTICE %s Kurallara uygunsuz davranis gosteren kullanicilari atabilirsiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s KILL Atimlari, surekli takip altindadir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s iyi gorevler dileriz..", u->nick);
send_cmd(s_NickServ, "CHGHOST %s Helper.%s.%s", u->nick, u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGNAME %s %s HELP Takimi", SUNUCU, u->nick);
send_cmd(s_NickServ, "CHGIDENT %s IRCdSVS", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +hW :1", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OPERLOG %s Helper statusunde sunucuya giris yapmistir.", u->nick);
}
else if (ngi->vip==1) {
send_cmd(s_NickServ, "NOTICE %s Merhaba \2%s\2", u->nick, u->nick);
send_cmd(s_NickServ, "NOTICE %s \2VIP\2 Statusunde sunucuya giris yaptiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s VIP ozellikleri, sistem tarafindan size verilmistir.", u->nick);
send_cmd(s_NickServ, "CHGHOST %s VIP.%s.%s", u->nick, u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGNAME %s %s Ozel Kullanicisi", u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGIDENT %s VIP", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +W :1", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OPERLOG \2%s\2 VIP statusunde sunucuya giris yapmistir.", u->nick);
}
notice_lang(s_NickServ, u, NICK_INFO_REALNAME,
nick, ni->last_realname); altina;


if (ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s :\2%s\2 Services \2Helper\2 (SH)", u->nick, ni->nick);
}
else if (ngi->vip==1) {
send_cmd(s_NickServ, "NOTICE %s :\2%s\2 Ozel \2VIP\2 Kullanicidir. (VP)", u->nick, ni->nick);
}
Ekleyin.

pico -w modules/nickserv/set.c

Girip;

static void do_set_kill(User *u, NickGroupInfo *ngi, char *param);altina;

static void do_set_helper(User *u, NickGroupInfo *ngi, char *param);
static void do_set_vip(User *u, NickGroupInfo *ngi, char *param);Ekleyin.

} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, param);altina;

} else if (stricmp(cmd, "HELPER") == 0) {
do_set_helper(u, ngi, param);
} else if (stricmp(cmd, "VIP") == 0) {
do_set_vip(u, ngi, param);Ekleyin.

} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, NULL);
altina;

} else if (stricmp(cmd, "HELPER") == 0) {
do_set_helper(u, ngi, NULL);
} else if (stricmp(cmd, "VIP") == 0) {
do_set_vip(u, ngi, NULL);ekleyin.

/************************************************** ***********************/

static void do_set_language(User *u, NickGroupInfo *ngi, char *param)
{
int langnum;
satirlari üzerine;

/************************************************** ***********************/

static void do_set_helper(User *u, NickGroupInfo *ngi, char *param)
{

NickInfo *ni;
ni = get_nickinfo(u->nick);


if (!is_services_admin(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services ROOT Adminler Kullanabilir.", u->nick);
return;
}
if (stricmp(param, "ON") == 0) {
ngi->helper = 1;
send_cmd(s_NickServ, "NOTICE %s :Kullanici Artik bir helper Kullanicisidir..",u->nick);
put_nickgroupinfo(ngi);
} else if (stricmp(param, "OFF") == 0) {
ngi->helper = 0;
send_cmd(s_NickServ, "NOTICE %s :Kullanici helper statusunden silinmistir.",u->nick);
} else {
send_cmd(s_NickServ, "NOTICE %s Hatali bir Kullanim.", u->nick);
send_cmd(s_NickServ, "NOTICE %s :\2Kullanimi, /NS SET NICK helper ON/OFF \2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Eklemek icin, \2/NS SET NICK helper ON\2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Silmek icin, \2/NS SET NICK helper OFF\2", u->nick);
return;
}
put_nickgroupinfo(ngi);
}

/************************************************** ***********************/
static void do_set_vip(User *u, NickGroupInfo *ngi, char *param)
{

NickInfo *ni;
ni = get_nickinfo(u->nick);

if (!is_services_root(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services ROOT Adminler Kullanabilir.", u->nick);
return;
}


if (stricmp(param, "ON") == 0) {
ngi->vip = 1;
send_cmd(s_NickServ, "NOTICE %s :Kullanici Artik bir VIP Kullanicisidir..",u->nick);
put_nickgroupinfo(ngi);
} else if (stricmp(param, "OFF") == 0) {
ngi->vip = 0;
send_cmd(s_NickServ, "NOTICE %s :Kullanici VIP statusunden silinmistir.",u->nick);
} else {
send_cmd(s_NickServ, "NOTICE %s Hatali bir Kullanim.", u->nick);
send_cmd(s_NickServ, "NOTICE %s :\2Kullanimi, /NS SET NICK VIP ON/OFF \2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Eklemek icin, \2/NS SET NICK VIP ON\2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Silmek icin, \2/NS SET NICK VIP OFF\2", u->nick);
return;
}
put_nickgroupinfo(ngi);
}

Ekleyin.


pico -w modules/nickserv/nickserv.hGirip;

int32 authcode; /* Authentication code (used by mail-auth module) */
time_t authset; /* Time authentication code was set */
int16 authreason; /* Reason auth. code was set; see NICKAUTH_* below */satirlari üzerine;

int helper;
int vip;Ekleyin.

pico modules/database/version4.cGirip;

SAFE(write_string(ngi->info, f));altina; (Burada eğer sonradan ekleme yaptiysaniz en son ekleme yaptiğiniz kodun altina ekleyin.)

SAFE(write_string(ngi->helper, f));
SAFE(write_string(ngi->vip, f));Ekleyip;

make&&make install ile derleyip servislerinizi resetleyin. (Resetlemeden önce /OS Update Komutunu kullanin.)

/NS Set NICK HELPER ON
/NS SET NICK VIP ON

komutu ile kendinizi ekleyip sonra tekrar version4.c dosyasinda;

SAFE(read_string(&ngi->info, f));altina;

SAFE(read_string(&ngi->helper, f));
SAFE(read_string(&ngi->vip, f));Ekleyin.
Yine derleme işleminden sonra servislerinizi resetleyin.


Eğer ekleme ve silme işlemlerini basitce dosya üzerinden takip etmek istiyorsaniz;

pico -w modules/operserv/main.cGirip;

static void do_hkill(User *u);
static void do_viplist(User *u);
static void do_helper(User *u);
static void do_vip(User *u);
static void do_helperlist(User *u);Ekleyin.

{"STATS", do_stats, NULL, OPER_HELP_STATS, -1,-1},altina;


{"HKILL", do_hkill, NULL, -1, -1,-1},
{"HELPER", do_helper, NULL, -1, -1,-1},
{"VIP", do_vip, NULL, -1, -1,-1},
{"HELPERLIST", do_helperlist, NULL, -1, -1,-1},Ekleyin.

/************************************************** ***********************/

/* Global notice sending via GlobalNoticer. */

static void do_global(User *u)
{
char *msg = strtok_remaining();

if (!msg) {
syntax_error(s_OperServ, u, "GLOBAL", OPER_GLOBAL_SYNTAX);
return;
}
notice_all(s_GlobalNoticer, "%s", msg);
send_cmd(s_OperServ, "PRIVMSG #Kontrol :%s Operi, %s Globalini Atti.", u->nick, msg);

}

/************************************************** *********************************/satirlari altina;


/************************************************** ***********************/

//toXic

static void do_helper(User *u)
{

const char *cmd;



if (!is_services_admin(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}

time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );



cmd = strtok(NULL, " ");
if (!cmd)
cmd = "";
char *nick;
nick = strtok(NULL, " ");
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);


if (stricmp(cmd, "ADD") == 0) {



if (!nick) {
send_cmd(s_OperServ, "NOTICE %s Eksik/Hatali bir giris yaptiniz.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni2) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else if (!ni) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
} else {
ni = ni2;
}
}

if (!(ngi = get_ngi(ni))) {
notice_lang(s_OperServ, u, INTERNAL_ERROR);
return;
}

if (ni->status & NS_VERBOTEN) {
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return;
}


if (!(ni = get_nickinfo(nick))) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
}

if (!ngi->helper==1) {
send_cmd(s_OperServ, "NOTICE %s %s Bu komutu kullanmadan once \2/NS SET %s HELPER ON\2 komutunu kullaniniz.", u->nick, nick, nick);
return;
}
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2HELPER\2 Olarak onaylandi.", u->nick, nick);
FILE *dosya_yaz = fopen("helpers.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s HELPER ADD -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}

else if (stricmp(cmd, "LIST") == 0) {

#define ibokuh "helpers.txt"

FILE *p;
char buf[BUFSIZE];

p = fopen(ibokuh, "r");
if (p) {
while (fgets(buf, sizeof(buf), p)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s %s", u->nick, buf);
}
fclose(p);
} else {
send_cmd(s_OperServ, "NOTICE %s Henuz bir kayit yok.", u->nick);
}
}

else if (stricmp(cmd, "DEL") == 0) {
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2HELPER\2 statusunden silinmistir.", u->nick, nick);
FILE *dosya_yaz = fopen("helpers.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s HELPER DEL -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else {
send_cmd(s_OperServ, "NOTICE %s Hatali bir komut kullandiniz.", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper eklemek icin, \2/OS HELPERS ADD NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper silmek icin, \2/OS HELPERS DEL NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper Listelemek icin, \2/OS HELPERS LIST", u->nick);
send_cmd(s_OperServ, "NOTICE %s Komutlarini kullanmalisiniz.", u->nick);
return;
}
}


/************************************************** ***********************/

//toXic


static void do_vip(User *u)
{

const char *cmd;



if (!is_services_admin(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}

time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );



cmd = strtok(NULL, " ");
if (!cmd)
cmd = "";
char *nick;
nick = strtok(NULL, " ");
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);


if (stricmp(cmd, "ADD") == 0) {



if (!nick) {
send_cmd(s_OperServ, "NOTICE %s Eksik/Hatali bir giris yaptiniz.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni2) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else if (!ni) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
} else {
ni = ni2;
}
}

if (!(ngi = get_ngi(ni))) {
notice_lang(s_OperServ, u, INTERNAL_ERROR);
return;
}

if (ni->status & NS_VERBOTEN) {
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return;
}


if (!(ni = get_nickinfo(nick))) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
}

if (!ngi->vip==1) {
send_cmd(s_OperServ, "NOTICE %s %s Bu komutu kullanmadan once \2/NS SET %s VIP ON\2 komutunu kullaniniz.", u->nick, nick, nick);
return;
}
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2VIP\2 Olarak onaylandi.", u->nick, nick);
FILE *dosya_yaz = fopen("vips.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s vip ADD -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}

else if (stricmp(cmd, "LIST") == 0) {

#define ibokuh "vips.txt"

FILE *p;
char buf[BUFSIZE];

p = fopen(ibokuh, "r");
if (p) {
while (fgets(buf, sizeof(buf), p)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s %s", u->nick, buf);
}
fclose(p);
} else {
send_cmd(s_OperServ, "NOTICE %s Henuz bir kayit yok.", u->nick);
}
}

else if (stricmp(cmd, "DEL") == 0) {
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2VIP\2 statusunden silinmistir.", u->nick, nick);
FILE *dosya_yaz = fopen("vips.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s VIP DEL -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else {
send_cmd(s_OperServ, "NOTICE %s Hatali bir komut kullandiniz.", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP eklemek icin, \2/OS VIP ADD NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP silmek icin, \2/OS VIP DEL NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP Listelemek icin, \2/OS VIP LIST", u->nick);
send_cmd(s_OperServ, "NOTICE %s Komutlarini kullanmalisiniz.", u->nick);
return;
}
}


/************************************************** ***********************/


static void do_hkill(User *u)
{
if (!is_services_oper(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}


char *ibokukll = "kills.txt";

char buf[BUFSIZE];
send_cmd(s_OperServ, "NOTICE %s Kayitlar Listeleniyor.", u->nick);
send_cmd(s_OperServ, "NOTICE %s \2", u->nick);
FILE *x = fopen(ibokukll, "r");
if (x) {
while (fgets(buf, sizeof(buf), x)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s :%s", u->nick, buf);
}
fclose(x);
} else {
send_cmd(s_OperServ, "NOTICE %s :Henuz bir kayit yok.", u->nick);
}
}
Ekleyin.

make&make installVe Servislerinizi resetleyin.

Eğer kanala girdiklerinde uyari mesajida istiyorsaniz;

pico -w modules/chanserv/main.c/************************************************** ***********************/

/* Callback for users trying to join channels. */

static int do_channel_join_check(const char *channel, User *user)
{
NickInfo *ni;
ni = get_nickinfo(user->nick);
//NickInfo *ni = NULL;
NickGroupInfo *ngi;
ngi = get_ngi(ni);
satirlari altina;

if (user_identified(user) && (ngi->helper==1)) {
send_cmd(s_ChanServ, "PRIVMSG %s Sunucu HELP Gorevlisi \2%s\2 Kanala girdi.", channel, user->nick);
}
if (user_identified(user) && (ngi->vip==1)) {
send_cmd(s_ChanServ, "PRIVMSG %s Sunucu VIP Kullanicisi \2%s\2 Kanala girdi.", channel, user->nick);
}Ekleyin.


Basitce yaptiğin şekilde;

/NS SET NICK HELPER ON/OFF
/NS SET NICK VIP ON/OFF

komutlari ile ekleme silme yapabileceksiniz.

Takip içinde;

/OS HELPER ADD/DEL NICK
/OS VIP ADD/DEL NICK

Listelemek için;

/OS HELPER LIST
/OS VIP LIST

komutlarini kullanmalisiniz.

Eğer kill atma kodunu seçtiyseniz yada her 2'sinide seçtiyseniz;

/OS KILLS Komutu ile takibini yapabilirsiniz.

Kullanicilari eklediğiniz takdirde nicklerini identify ettikleri an özelliklere sahip olacaklar illa bir kanala girmesine gerek yok.

Helperlar, /NS KILLAT NICK SEBEP komutu ile kill atabilirler.
Atilan Kill eri /OS KILLIST Komutu ile görebilirsiniz. (Services admin kullanabilir)

Set kullanarak HELPER/VIP Ekleme silme işlemini services root adminler yapabiliyor. (Değişebilirsiniz.)

HELPER/VIP özellikli kullanicilarin INFO'larinda HELPER/VIP Olduklarina dair bir mesaj cikiyor.

HELPER ve VIP Tanimlarini başka şekilde kod yazabiliyorsaniz istediğiniz gibi kullanabilirsiniz. Örneğin auth kodu verme, silme, düzenleme vs. gibi..

Eğer giriş mesajini eklediyseniz, HELPER/VIP vasfini taşiyanlar herhangi bir kanala girdiğinde kanala otomatikmen bilgi mesaji atilacaktir.