cd ircservices-5.0.xx
pico channels.h

dosyası içerisinde
Kod:

time_t topic_time;   /* When topic was set */

satırının hemen altına
Kod:

int anuser;
int maxuser;
time_t maxuser_time;

ekleyip kayıt edin ..

pico channels.c

dosyası içerisinde
Kod:

/* Allocate pre-cleared memory */
c = scalloc(sizeof(Channel), 1);

satırının hemen altına
Kod:

c->anuser = 0;

şeklinde ekleyip ve aynı dosya içerisinde
Kod:

void chan_deluser(User *user, Channel *c)
{
    struct c_userlist *u;
    int i;
    LIST_SEARCH_SCALAR(c->users, user, user, u);
    if (!u) {
 log(“channel: BUG: chan_deluser() called for %s in %s but they “
     “were not found on the channel’s userlist.”,
     user->nick, c->name);
 return;
    }

satırının hemen altına
Kod:

(c->anuser)–;

şeklinde ekleyip kayıt edin …

cd modules\chanserv
pico chanserv.h

dosyası içerisinde
Kod:

char *last_topic;  /* Last topic on the channel */

satırının hemen üzerine
Kod:

int anuser;
int maxuser;
time_t maxuser_time;

şeklinde ekleyip kayıt edin …

pico main.c

dosyası içerisinde
Kod:

static int chanserv_whois(const char *source, char *who, char *extra)
{
    if (irc_stricmp(who, s_ChanServ) != 0)
 return 0;
    send_cmd(ServerName, “311 %s %s %s %s * :%s”, source, who,
      ServiceUser, ServiceHost, desc_ChanServ);
    send_cmd(ServerName, “312 %s %s %s :%s”, source, who,
      ServerName, ServerDesc);
    send_cmd(ServerName, “318 End of /WHOIS response.”);
    return 1;
}

satırının hemen altına
Kod:

void ago_time(char *buf, time_t t, User *u)
{
  int days, hours, minutes, seconds;
  days = t/(24*3600);
  t %= 24*3600;
  hours = t/3600;
  t %= 3600;
  minutes = t/60;
  t %= 60;
  seconds = t;
  sprintf(buf,”%d gün, %d saat, %d dakika ve %d saniye önce”, days, hours, minutes, seconds);
}

şeklinde ekleyin ve aynı dosya içerisinde
Kod:

static int do_channel_create(Channel *c, User *u, int32 modes)
{
    /* Store ChannelInfo pointer in channel record */
    c->ci = get_channelinfo(c->name);
    if (c->ci) {
 /* Store return pointer in ChannelInfo record */
 c->ci->c = c;
    }
    /* Restore locked modes and saved topic */
    /* Note: these should be outside the c->ci test to ensure any spurious
     *       +r modes are cleared */
    check_modes(c);
    restore_topic(c);
    return 0;
}

satırını
Kod:

static int do_channel_create(Channel *c, User *u, int32 modes)
{
    /* Store ChannelInfo pointer in channel record */
    c->ci = get_channelinfo(c->name);
    if (c->ci) {
 /* Store return pointer in ChannelInfo record */
 c->ci->c = c;
 c->maxuser = c->ci->maxuser;
        c->maxuser_time = c->ci->maxuser_time;
    } else
        {
        c->maxuser = 1;
        c->maxuser_time = time(NULL);
    }
    /* Restore locked modes and saved topic */
    /* Note: these should be outside the c->ci test to ensure any spurious
     *       +r modes are cleared */
    check_modes(c);
    restore_topic(c);
    return 0;
}

şeklinde değiştirin ve aynı dosya içerisinde
Kod:

if (ci && ci->entry_message)
notice(s_ChanServ, user->nick, “(%s) %s”, ci->name, ci->entry_message);

satırının üzerine
Kod:

if (c->maxuser < ++(c->anuser)) {
            c->maxuser = c->anuser;
            c->maxuser_time = time(NULL);
        if(ci) {
            ci->maxuser = c->maxuser;
            ci->maxuser_time = c->maxuser_time;
        }
    }

şeklinde ekleyin ve aynı dosya içerisinde
Kod:

if (c->topic) {
     ci->last_topic = sstrdup(c->topic);
     strscpy(ci->last_topic_setter, c->topic_setter, NICKMAX);
     ci->last_topic_time = c->topic_time;
 }

satırının hemen altına
Kod:

c->maxuser = c->anuser;
c->maxuser_time = time(NULL);
ci->maxuser = c->maxuser;
ci->maxuser_time = c->maxuser_time;

şeklinde ekleyin ve aynı dosya içerisinde
Kod:

static void do_info(User *u)
{
char *chan = strtok(NULL, ” “);
char *param = strtok(NULL, ” “);
ChannelInfo *ci;
NickGroupInfo *ngi, *ngi2 = NULL;
char buf[BUFSIZE], *end, *s;

satırının altına
Kod:

char buf2[BUFSIZE];
time_t now=time(NULL);

şeklinde ekleyin ve aynı dosya içerisinde
Kod:

if (ci->entry_message && CHECK_SHOW_ALL)
notice_lang(s_ChanServ, u, CHAN_INFO_ENTRYMSG, ci->entry_message);

satırının hemen üzerine
Kod:

if (ci->c)
send_cmd(s_ChanServ, “NOTICE %s :Online kullanıcı : \2%d\2”, u->nick, ci->c->anuser);
ago_time(buf2, now-ci->maxuser_time, u);
send_cmd(s_ChanServ, “NOTICE %s :Kullanıcı rekoru : \2%d\2 [%s]”, u->nick, ci->maxuser, buf2);

şeklinde kaydedin…

cd ..
cd database
pico version4.c

dosyası içerisinde
Kod:

SAFE(write_int32(ci->last_topic_time, f));

satırının hemen altına
Kod:

SAFE(write_int16(ci->maxuser, f));
SAFE(write_int32(ci->maxuser_time, f));

şeklinde ekleyip kaydedin ve sonra ircservices-5.0.xx
ana klasör içerisinde

make
make install

yaparak servisinizi restartlayın.sunucunuza girerek kayıtlı bir
kanalınıza info cekin..
daha sonra tekrar

cd ircservices-5.0.xx\modules\database
pico version4.c

dosyasına tekrar girip içerisinde
Kod:

SAFE(read_int32(&tmp32, f));
ci->last_topic_time = tmp32;

satırını bulup hemen altına
Kod:

SAFE(read_int16(&tmp16, f));
ci->maxuser = tmp16;
SAFE(read_int32(&tmp32, f));
ci->maxuser_time = tmp32;

ekleyip dosyayı kaydediyoruz ve sonra ircservices-5.0.xx
ana klasör içerisinde

make
make install

yaparak servisinizi tekrar restartlayın.Güle güle kullanın

Kodu yazarı : Diablo