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/chan*/main.c
Kod: Kodu kopyalamak için üzerine çift tıklayın!
int access_add(ChannelInfo *ci, const char *nick, int level, int uacc)
üstteki satırı bulun.
bu satırı;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
int access_add(ChannelInfo *ci, const char *nick, int level, int uacc, char *ekleyen)
olarak değiştirin. daha sonra yine aynı dosyada, access_add fonksiyonu içerisinde bulunan;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
ci->access[i].nickgroup = ni->nickgroup;
ci->access[i].level = level;
satırlarını bulup bi alt satırına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
ci->access[i].ekleyen = sstrdup(ekleyen);
satırını ekleyip, kaydedip dosyayı kapatın. daha sonra yine aynı klasörde bulunan
access-levels.c dosyasını;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico access-levels.c
komutuyla açtıktan sonra;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
switch (access_add(ci, nick, level,
is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci)))
satırlarını bulup;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
switch (access_add(ci, nick, level,
is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci), u->nick))
olarak değiştirin. yine aynı dosya içerisinde;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
RET_LISTED
satırını bulup bi üst satırında bulunan
Kod: Kodu kopyalamak için üzerine çift tıklayın!
notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,
index+1, access->level, ngi_mainnick(ngi));
satırlarını ;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,
index+1, access->level, ngi_mainnick(ngi), access->ekleyen);
şeklinde değiştirin. kaydedip dosyayı kapatın. aynı klasörde bulunan
access-xop.c dosyasini
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico access-xop.c
komutuyla açip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
switch (access_add(ci, nick, level,
is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci)))
satırlarını bulup bu satırları
Kod: Kodu kopyalamak için üzerine çift tıklayın!
switch (access_add(ci, nick, level,
is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci), u->nick))
olarak değiştirin. kaydedip dosyayı kapatın.aynı klasörde bulunan chanserv.h dosyasını
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico chanserv.h
komutuyla açin ve
Kod: Kodu kopyalamak için üzerine çift tıklayın!
typedef struct {
uint32 nickgroup; /* Zero if entry is not in use */
int16 level;
}
satirlarini bulup;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
typedef struct {
uint32 nickgroup; /* Zero if entry is not in use */
int16 level;
char *ekleyen;
}
olarak değiştirin kaydedin kapatin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico cs-local.h
komutu ile cs-local.h dosyasini acip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
E int access_add(ChannelInfo *ci, const char *nick, int level, int uacc);
satırını bulun ve bu satırı
Kod: Kodu kopyalamak için üzerine çift tıklayın!
E int access_add(ChannelInfo *ci, const char *nick, int level, int uacc, char *ekleyen);
olarak değiştirin. kaydedip dosyayı kapatın.daha sonra /home/login/ircservices-5.0.x/lang/
klasörüne girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico tr.l
komutuyla tr.l dosyasını açın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
CHAN_ACCESS_LIST_HEADER
%s Kanali Erisim Listesi:
Sira Seviye Nick
CHAN_ACCESS_LIST_FORMAT
%4d %4d %s
satırlarını bulup;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
CHAN_ACCESS_LIST_HEADER
%s Kanali Erisim Listesi:
Sira Seviye Nick Ekleyen
CHAN_ACCESS_LIST_FORMAT
%4d %4d %s %s
şeklinde değiştirin. kaydedip dosyayı kapatın.
daha sonra /home/login/ircservices-5.0.x/modules/database/ klasörüne girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico version4.c
komutuyla version4.c dosyasını açın.bu dosyada
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_int16(ci->access_count, f));
ARRAY_FOREACH (i, ci->access) {
if (ci->access[i].nickgroup)
ngi = get_ngi_id(ci->access[i].nickgroup);
else
ngi = NULL;
SAFE(write_int16(ngi != NULL, f));
if (ngi) {
SAFE(write_int16(convert_new_level(ci->access[i].level), f));
SAFE(write_string(ngi_mainnick(ngi), f));
}
}
satırlarını bulup hemen altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_int16(ci->access_count, f));
ARRAY_FOREACH (i, ci->access) {
SAFE(write_string(ci->access[i].ekleyen, f));
}
satırlarını ekleyin. kaydedip çıkın. /home/login/ircservices-5.0.x/ klasörüne girip
önce
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make
bitince de
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make install
komutunu uygulayıp servisleri ÇALIŞTIRIN.denemek amacıyla resgele bi kanalda rasgele bi nicke
access ekleyip access listesine bakın.
daha sonra;
/home/login/ircservices-5.0.x/modules/database/ klasörüne girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico version4.c
komutuyla yine version4.c dosyasını açın.bu dosyada ;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_int16(&ci->access_count, f));
if (ci->access_count) {
ci->access = scalloc(ci->access_count, sizeof(ChanAccess));
ARRAY_FOREACH (i, ci->access) {
SAFE(read_int16(&tmp16, f)); /* in_use */
if (tmp16) {
SAFE(read_int16(&lev, f));
ci->access[i].level = convert_old_level(lev);
SAFE(read_string(&s, f));
if (s) {
ni = get_nickinfo(s);
if (ni) {
ci->access[i].nickgroup = ni->nickgroup;
} free(s);
}
}
}
} else {
ci->access = NULL;
}
satırlarını bulup en son parantezin bi alt satırına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_int16(&ci->access_count, f));
if (ci->access_count) {
ARRAY_FOREACH (i, ci->access) {
SAFE(read_string(&ci->access[i].ekleyen, f));
}
}
else {
ci->access = NULL;
}
ircservices-* dosyasına girip;
önce
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make
bitince de
Kod: Kodu kopyalamak için üzerine çift tıklayın!
make install
Orjinal anlatim buydu.