cd ircservices-*
Kod:
pico -w modules/chan*/main.c
Kod:
int access_add(ChannelInfo *ci, const char *nick, int level, int uacc)
üstteki satırı bulun.
bu satırı;
Kod:
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:
ci->access[i].nickgroup = ni->nickgroup;
ci->access[i].level = level;
satırlarını bulup bi alt satırına;
Kod:
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:
pico access-levels.c
komutuyla açtıktan sonra;
Kod:
switch (access_add(ci, nick, level,
is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci)))
satırlarını bulup;
Kod:
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;
satırını bulup bi üst satırında bulunan
Kod:
notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,
index+1, access->level, ngi_mainnick(ngi));
satırlarını ;
Kod:
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
komutuyla açip
Kod:
switch (access_add(ci, nick, level,
is_servadmin ? ACCLEV_FOUNDER : get_access(u,ci)))
satırlarını bulup bu satırları
Kod:
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ı
komutuyla açin ve
Kod:
typedef struct {
uint32 nickgroup; /* Zero if entry is not in use */
int16 level;
}
satirlarini bulup;
Kod:
typedef struct {
uint32 nickgroup; /* Zero if entry is not in use */
int16 level;
char *ekleyen;
}
olarak değiştirin kaydedin kapatin.
komutu ile cs-local.h dosyasini acip
Kod:
E int access_add(ChannelInfo *ci, const char *nick, int level, int uacc);
satırını bulun ve bu satırı
Kod:
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
komutuyla tr.l dosyasını açın.
Kod:
CHAN_ACCESS_LIST_HEADER
%s Kanali Erisim Listesi:
Sira Seviye Nick
CHAN_ACCESS_LIST_FORMAT
%4d %4d %s
satırlarını bulup;
Kod:
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
komutuyla version4.c dosyasını açın.bu dosyada
Kod:
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:
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
bitince de
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;
komutuyla yine version4.c dosyasını açın.bu dosyada ;
Kod:
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:
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
bitince de
ALINTI