MSN özelliği
alıntıdır.
Işlemlere başlamadan önce servislerinizin yedeklerini mutlaka alın.
Satır kaymalarını önlemek için dosyalara -w kullanarak girin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
cd ircservices*
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/main.c
komutları ile
main.c dosyamızın içine giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
{ "SET INFO", NULL, NULL, NICK_HELP_SET_INFO, -1,-1 },
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
{ "SET MSN", NULL, NULL, NICK_HELP_SET_MSN, -1,-1 },
{ "SET YAS", NULL, NULL, NICK_HELP_SET_YAS, -1,-1 },
{ "SET BURC", NULL, NULL, NICK_HELP_SET_BURC, -1,-1 },
{ "SET SEHIR", NULL, NULL, NICK_HELP_SET_SEHIR, -1,-1 },
satırlarını ekliyoruz, yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->info)
notice_lang(s_NickServ, u, NICK_INFO_INFO, ngi->info);
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->msn)
notice_lang(s_NickServ, u, NICK_INFO_MSN, ngi->msn);
if (ngi->yas)
notice_lang(s_NickServ, u, NICK_INFO_YAS, ngi->yas);
if (ngi->burc)
notice_lang(s_NickServ, u, NICK_INFO_BURC, ngi->burc);
if (ngi->sehir)
notice_lang(s_NickServ, u, NICK_INFO_SEHIR, ngi->sehir);
satırlarını ekliyoruz dosyayı kaydedip çıkıyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/set.c
komutu ile
set.c dosyamızın içine giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
static void do_set_info(User *u, NickGroupInfo *ngi, char *param);
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
static void do_set_msn(User *u, NickGroupInfo *ngi, char *param);
static void do_set_yas(User *u, NickGroupInfo *ngi, char *param);
static void do_set_burc(User *u, NickGroupInfo *ngi, char *param);
static void do_set_sehir(User *u, NickGroupInfo *ngi, char *param);
satırlarını ekliyoruz yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "LANGUAGE") == 0) {
do_set_language(u, ngi, param);
} else if (stricmp(cmd, "URL") == 0) {
do_set_url(u, ngi, param);
} else if (stricmp(cmd, "EMAIL") == 0) {
do_set_email(u, ngi, param);
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, param);
satırlarını bulun ve hemen altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "MSN") == 0) {
do_set_msn(u, ngi, param);
} else if (stricmp(cmd, "YAS") == 0) {
do_set_yas(u, ngi, param);
} else if (stricmp(cmd, "BURC") == 0) {
do_set_burc(u, ngi, param);
} else if (stricmp(cmd, "SEHIR") == 0) {
do_set_sehir(u, ngi, param);
satırlarını ekleyin kodların sıra düzeni;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, param);
} else if (stricmp(cmd, "MSN") == 0) {
do_set_msn(u, ngi, param);
} else if (stricmp(cmd, "YAS") == 0) {
do_set_yas(u, ngi, param);
} else if (stricmp(cmd, "BURC") == 0) {
do_set_burc(u, ngi, param);
} else if (stricmp(cmd, "SEHIR") == 0) {
do_set_sehir(u, ngi, param);
} else if (stricmp(cmd, "KILL") == 0) {
do_set_kill(u, ngi, param);
şeklinde olmalıdır bu bölümde dikkat edin.
Yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "EMAIL") == 0) {
if (NSRequireEmail) {
if (ni != u->ni)
notice_lang(s_NickServ, u, NICK_UNSET_EMAIL_OTHER_BAD);
else
notice_lang(s_NickServ, u, NICK_UNSET_EMAIL_BAD);
} else {
do_set_email(u, ngi, NULL);
}
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, NULL);
satırlarını bulun ve hemen altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "MSN") == 0) {
do_set_msn(u, ngi, NULL);
} else if (stricmp(cmd, "YAS") == 0) {
do_set_yas(u, ngi, NULL);
} else if (stricmp(cmd, "BURC") == 0) {
do_set_burc(u, ngi, NULL);
} else if (stricmp(cmd, "SEHIR") == 0) {
do_set_sehir(u, ngi, NULL);
satırlarını ekleyin. Satır sonu;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, NULL);
} else if (stricmp(cmd, "MSN") == 0) {
do_set_msn(u, ngi, NULL);
} else if (stricmp(cmd, "YAS") == 0) {
do_set_yas(u, ngi, NULL);
} else if (stricmp(cmd, "BURC") == 0) {
do_set_burc(u, ngi, NULL);
} else if (stricmp(cmd, "SEHIR") == 0) {
do_set_sehir(u, ngi, NULL);
} else {
syntax_error(s_NickServ, u, "UNSET",
NSRequireEmail ? NICK_UNSET_SYNTAX_REQ_EMAIL : NICK_UNSET_SYNTAX);
}
}
şeklinde bitmesi gerek bu bölümlere dikkat edin.
Yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/
static void do_set_info(User *u, NickGroupInfo *ngi, char *param)
{
const char *nick = ngi_mainnick(ngi);
free(ngi->info);
if (param) {
ngi->info = sstrdup(param);
notice_lang(s_NickServ, u, NICK_SET_INFO_CHANGED, nick, param);
} else {
ngi->info = NULL;
notice_lang(s_NickServ, u, NICK_UNSET_INFO, nick);
}
put_nickgroupinfo(ngi);
}
satırlarını bulup altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/
static void do_set_msn(User *u, NickGroupInfo *ngi, char *param)
{
const char *nick = ngi_mainnick(ngi);
free(ngi->msn);
if (param && !valid_email(param)) {
notice_lang(s_NickServ, u, BAD_EMAIL);
return;
}
if (param) {
ngi->msn = sstrdup(param);
notice_lang(s_NickServ, u, NICK_SET_MSN_CHANGED, nick, param);
} else {
ngi->msn = NULL;
notice_lang(s_NickServ, u, NICK_UNSET_MSN, nick);
}
put_nickgroupinfo(ngi);
}
satırlarını ekleyin, devam ederek bu satırımızın altınada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/
static void do_set_yas(User *u, NickGroupInfo *ngi, char *param)
{
const char *nick = ngi_mainnick(ngi);
free(ngi->yas);
if (param) {
if (param[strspn(param, "0123456789")] != 0) {
notice_lang(s_NickServ, u, NICK_SET_YAS_SYNTAX, nick);
return;
}
ngi->yas = sstrdup(param);
notice_lang(s_NickServ, u, NICK_SET_YAS_CHANGED, nick, param);
} else {
ngi->yas = NULL;
notice_lang(s_NickServ, u, NICK_UNSET_YAS, nick);
}
put_nickgroupinfo(ngi);
}
satırlarını ekleyin, devam ederek bu satırımızın altınada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/
static void do_set_burc(User *u, NickGroupInfo *ngi, char *param)
{
const char *nick = ngi_mainnick(ngi);
free(ngi->burc);
if (param) {
if (strlen(param)>9) {
notice_lang(s_NickServ, u, NICK_SET_BURC_SYNTAX, nick);
return;
}
ngi->burc = sstrdup(param);
notice_lang(s_NickServ, u, NICK_SET_BURC_CHANGED, nick, param);
} else {
ngi->burc = NULL;
notice_lang(s_NickServ, u, NICK_UNSET_BURC, nick);
}
put_nickgroupinfo(ngi);
}
satırlarını ekleyin, devam ederek bu satırımızın altınada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
static void do_set_sehir(User *u, NickGroupInfo *ngi, char *param)
{
const char *nick = ngi_mainnick(ngi);
free(ngi->sehir);
if (param) {
if (strlen(param)>12) {
notice_lang(s_NickServ, u, NICK_SET_SEHIR_SYNTAX, nick);
return;
}
ngi->sehir = sstrdup(param);
notice_lang(s_NickServ, u, NICK_SET_SEHIR_CHANGED, nick, param);
} else {
ngi->sehir = NULL;
notice_lang(s_NickServ, u, NICK_UNSET_SEHIR, nick);
}
put_nickgroupinfo(ngi);
}
satırlarını ekleyin.
Kaydedip dosyadan çıkın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/util.c
komutu ile
util.c dosyamızın içine giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
free(ngi->info);
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
free(ngi->msn);
free(ngi->yas);
free(ngi->burc);
free(ngi->sehir);
satırlarını ekleyin.
Kaydedip dosyadan çıkın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/nickserv/nickserv.h
komutu ile
nickserv.h dosyamıza giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
char *info;
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
char *msn;
char *yas;
char *burc;
char *sehir;
satırlarını ekleyin ve dosyayı kaydedip çıkın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico lang/tr.l
komutu ile
tr.l dosyamıza giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
# SET INFO responses
NICK_SET_INFO_CHANGED
^B%s^B nicki icin bilgi satiri degistirildi.
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_SET_MSN_CHANGED
^B%s^B nicki icin MSN Adresi degistirildi.
NICK_SET_YAS_CHANGED
^B%s^B nicki icin YAS degistirildi.
NICK_SET_BURC_CHANGED
^B%s^B nicki icin BURC degistirildi.
NICK_SET_SEHIR_CHANGED
^B%s^B nicki icin SEHIR belirlendi.
NICK_SET_YAS_SYNTAX
YAS satiri sadece rakamlardan olusmalidir.
NICK_SET_BURC_SYNTAX
BURC satiri burclardan olusmalidir.
NICK_SET_SEHIR_SYNTAX
SEHIR satiri sadece mevcut dunya sehirlerinden olusmalidir.
satırlarını ekleyin.
Yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_UNSET_INFO
^B%s^B nicki icin bilgi satiri silindi.
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_UNSET_MSN
^B%s^B nicki icin MSN Adresi silindi.
NICK_UNSET_YAS
^B%s^B nicki icin YAS satiri silindi.
NICK_UNSET_BURC
^B%s^B nicki icin BURC satiri silindi.
NICK_UNSET_SEHIR
^B%s^B nicki icin SEHIR silindi.
satırlarını ekleyin.
Yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_INFO_INFO
Bilgi: %s
satırlarının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_INFO_MSN
MSN: %s
NICK_INFO_YAS
YAS: %s
NICK_INFO_BURC
BURC: %s
NICK_INFO_SEHIR
SEHIR: %s
satırlarını ekleyin.
Yine aynı dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
INFO INFO komutunda bir bilgi satiri gösterir.
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
MSN INFO komutunda MSN Adresinizi gösterir.
YAS INFO komutunda bir YAS satiri gösterir.
BURC INFO komutunda bir BURC satiri gösterir.
SEHIR INFO komutunda bir SEHIR satiri gösterir.
satırlarını ekliyoruz ve yine aynı dosyada bulunan;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_HELP_SET_INFO
Kullanimi: ^BSET INFO ^_metin^_^B
Nickiniz icin bir bilgi metni belirler, bu metin INFO
komutu kullanildiginda gösterilir.
satırlarının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_HELP_SET_MSN
Kullanimi: ^BSET MSN ^_Msn adresiniz^_^B
Nickiniz icin MSN adres metni belirler, bu metin INFO
komutu kullanildiginda gösterilir.
NICK_HELP_SET_YAS
Kullanimi: ^BSET YAS ^_YASINIZ^_^B
Nickiniz icin YAS satiri belirler, bu metin INFO
komutu kullanildiginda gösterilir.
NICK_HELP_SET_BURC
Kullanimi: ^BSET BURC ^_BURCUNUZ^_^B
Nickiniz icin BURC satiri belirler, bu metin INFO
komutu kullanildiginda gösterilir.
NICK_HELP_SET_SEHIR
Kullanimi: ^BSET SEHIR ^_SEHIRINIZ^_^B
Nickiniz icin SEHIR satiri belirler, bu metin INFO
komutu kullanildiginda gösterilir.
satırlarını ekliyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_HELP_UNSET
Kullanimi: ^BUNSET {URL | EMAIL | INFO}^B
satırını;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_HELP_UNSET
Kullanimi: ^BUNSET {URL | EMAIL | INFO | MSN | YAS | BURC | SEHIR}^B
Nickinize bagli URL, INFO, EMAIL, MSN, YAS, BURC ve SEHIR ayarlarini silmeye yarar.
Ayni anda sadece bir ayar silebilirsiniz.
şeklinde değiştirin.
Dosyayı kaydedip çıkın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico lang/index
komutu ile
index dosyamıza giriyoruz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_SET_INFO_CHANGED
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_SET_MSN_CHANGED
NICK_SET_YAS_CHANGED
NICK_SET_BURC_CHANGED
NICK_SET_SEHIR_CHANGED
satırlarını.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_UNSET_INFO
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_UNSET_MSN
NICK_UNSET_YAS
NICK_UNSET_BURC
NICK_UNSET_SEHIR
satırlarını.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_INFO_INFO
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_INFO_MSN
NICK_INFO_YAS
NICK_INFO_BURC
NICK_INFO_SEHIR
satırlarını.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_HELP_SET_INFO
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_HELP_SET_MSN
NICK_HELP_SET_YAS
NICK_HELP_SET_BURC
NICK_HELP_SET_SEHIR
satırlarını.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_SET_LANGUAGE_SYNTAX
satırının ÜSTÜNE;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
NICK_SET_YAS_SYNTAX
NICK_SET_BURC_SYNTAX
NICK_SET_SEHIR_SYNTAX
satırlarını ekleyin dosyayı kaydedip çıkın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/database/version4.c
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_string(ngi->info, f));
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_string(ngi->msn, f));
SAFE(write_string(ngi->yas, f));
SAFE(write_string(ngi->burc, f));
SAFE(write_string(ngi->sehir, f));
satırlarını ekleyin yine ayno dosyada;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->info)
mem += strlen(ngi->info)+1;
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (ngi->msn)
mem += strlen(ngi->msn)+1;
if (ngi->yas)
mem += strlen(ngi->yas)+1;
if (ngi->burc)
mem += strlen(ngi->burc)+1;
if (ngi->sehir)
mem += strlen(ngi->sehir)+1;
satırlarını ekleyin dosyayı kaydedip çıkın.
ircservices* dizininde;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make install
Ardından sunucunuzda;
/os restart /ns set msn msnadres /ns set yas yaşınız /ns set burc burcunuz /ns set sehir şehir
komutları ile msn,yas,burc ve sehir belirleyin, belirlemek
şart yeni düzenlemeleri okuması için.
Tekrar;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico modules/database/version4.c
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_string(&ngi->info, f));
satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_string(&ngi->msn, f));
SAFE(read_string(&ngi->yas, f));
SAFE(read_string(&ngi->burc, f));
SAFE(read_string(&ngi->sehir, f));
satırlarını ekleyin ve dosyayı kaydedip çıkın.
Sunucunuzda /os restart yapıp servislere restart atın. NOT: tr.l dosyasında editleme yaparken boşluk ( space ) kullanmayın aksi taktirde hata almanız kaçınılmazdır. Editplus kullanırsanız daha sağlıklı olacaktır...
Kodun yazarı :
Soldy