cd ircservices-5.0.xx pico channels.h
dosyası içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
time_t topic_time; /* When topic was set */
satırının hemen altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
int anuser;
int maxuser;
time_t maxuser_time;
ekleyip kayıt edin ..
pico channels.c
dosyası içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/* Allocate pre-cleared memory */
c = scalloc(sizeof(Channel), 1);
satırının hemen altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
c->anuser = 0;
şeklinde ekleyip ve aynı dosya içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
(c->anuser)--;
şeklinde ekleyip kayıt edin ...
cd modules\chanserv pico chanserv.h
dosyası içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
char *last_topic; /* Last topic on the channel */
satırının hemen üzerine
Kod: Kodu kopyalamak için üzerine çift tıklayın!
int anuser;
int maxuser;
time_t maxuser_time;
şeklinde ekleyip kayıt edin ...
pico main.c
dosyası içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
if (ci && ci->entry_message)
notice(s_ChanServ, user->nick, "(%s) %s", ci->name, ci->entry_message);
satırının üzerine
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
char buf2[BUFSIZE];
time_t now=time(NULL);
şeklinde ekleyin ve aynı dosya içerisinde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(write_int32(ci->last_topic_time, f));
satırının hemen altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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: Kodu kopyalamak için üzerine çift tıklayın!
SAFE(read_int32(&tmp32, f));
ci->last_topic_time = tmp32;
satırını bulup hemen altına
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Kodu yazarı : Diablo