IRCD FORUMLARI


¦ IRCdForumlari.NET Sevgi Dolu Bir Forum... ¦ www.ircdforumlari.net ¦ Webmaster Ve IRC Severlerin Buluşma Noktası ¦ |


Geri git   IRCD FORUMLARI > Genel IRCD (Sunucu, Servis, Botlar, Korumalar) > Servisler

Cevapla
Seçenekler Stil
Okunmamış 05-06-2020, 09:55 AM   #1
IRCDForumlari
+Voice User
 
IRCDForumlari - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Apr 2019
Mesajlar: 74
Tesekkür: 6
4 Mesajina 4 Tesekkür Aldi
Arrow Online Kullanici ve Kullanici Rekoru

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

Kodu yazarı : Diablo
IRCDForumlari isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Tag Ekle
kullanici, online, rekoru

Seçenekler
Stil

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı

Gitmek istediğiniz klasörü seçiniz


Şu Anki Saat: 05:58 AM


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Destekleyenler by konya chat ve kahramanmaras haber