Hazır kod Online Kullanici ve Kullanici Rekoru

  • Konbuyu başlatan KraL
  • Başlangıç tarihi
  • Cevaplar : 0
  • Görüntüleme : 63
Konu sahibi son olarak 81 gün önce görüldü

KraL

Paylaşımcı üye
Katılım
27 Kas 2025
Mesajlar
1,553
IFGT Puan
38
Konum
iStanbuL
Cinsiyet
Erkek
Medeni Hali
Şehir
Kars
Takım
Galatasaray
Burç
İkizler
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
 
Geri
Üst Alt