KraL
IFGT Süper Moderatör
- Katılım
- 27 Kas 2025
- Mesajlar
- 1,421
- Tepkime puanı
- 19
- IFGT Puan
- 38
Öncelikle Bu Sistemi Kullanabilmeniz icin, TOTAL Online Time IRCServiceslerinizde var olmali.
( Kodlar ve anlatim -> IFGT Hazır kod - Total Online Time )
Bununla ilişki icinde Seviye sistemi Kurarak, Onlineye Göre, Nick infosuna Birtakım seyler yazacağız. Bu Sistem ile Bircok komutu acabilir bircok özellik yapabilirsiniz.
Anopedeki nick Kayit tarihine göreki olaydaki sistemi ircservicese göre Online olarak ayarlayıp faaliyete sokuyoruz.
Ayrıca /NS Set host hostunuz Komutu ilede, Hostunuzu Belirleyebilir Tabi sonunda %s.Kelebek.Gen.TR Yani Vhost.Kelebek.Gen.TR Olarak belirleniyor. Sunucu adını Sonuna yazabilirsiniz.
Fakat Bu Komutu, Sadece Onlinesi Belirli Bir Süreye Ulasan Kullanıcılar ERİŞEBİLİR. O Seviyeden Düşük Olan Kullanıcılar Komutu Kullanamaz.
IDENTFY Edilince, Hostu varsa, Kullanıcıya verilir.
Aynen Bu Sekildeki Gibi.
Ayrica Online Seviyesinide INFO 'Da gösteriyoruz.
nickserv -- info toXic
© NickServ ------------------ KELEBEK IRCd Network--------------
© NickServ
© NickServ toXic isim: return -1;
© NickServ Online oldugu adres: 1@IRCAdministrator.Kelebek.Gen.TR
© NickServ Toplam Online Süresi: 139 Gun 6 Saat 49 Dakika ve 58 Saniye.
© NickServ Online Durumuna Gore Seviyesi (Asistan KELEBEK)
© NickServ Kayit zamani: Agu 12 22:45:13 2007 CEST
© NickServ Son quit mesaji: www.kelebekblog.com
© NickServ URL: UnrealIRCd •» News/Announcements
© NickServ Bilgi: İşleri Varken Yalarlar, İşleri Bitince KRALLAR!
© NickServ Ekler: Kill korumasi,Ek Guvenlik,Ozel
© NickServ Daha fazla bilgi icin: /msg NickServ INFO toXic ALL
© NickServ
© NickServ Tüm Nick ve Kanallar GENEL IRC kuralları dahilinde ilk kayit eden kişiye Aittir
© NickServ Kelebek Yönetimi, Nick ve Kanalların kullanımını kurallar dahilinde yasaklayabilir, devir edebilir.
© NickServ Yönetim bu konuda herhangi bir ACIKLAMA veya DUYURU gerekmedikçe yapmaz.
© NickServ Bu Kisi KELEBEK bağımlısıdır, tedavisi yoktur.!
© NickServ
© NickServ ------------------ KELEBEK IRCd Network--------------
Olarak Gösteriyoruz..
Söylediğim Gibi, /ns set HOST Komutunu Sadece Services Adminler ve Online Seviyesi, Daha Önce Belirlenmiş Süreyi Geçti ise Kullanabilirler.
Saolsun Serkan Abide, Tıkandıgım anda yardımcı Oldu.
Gelelim Kodlara;
-
satirinin altina;
Ekliyoruz..
Altina;
Ekliyoruz.
/* Eğer Ben NS SET HOST Sistemini Değilde, Sadece Online Seviyesini yapmak istiyorum diyenler Assadaki kodu kullansın, eğer hem online sistemi hemde ns set host sistemini kullanırsanız karısır cünkü Online sistemi KENDİ HOST VERMEKTEDİR. NS SET HOST Kullanırsanız cakısma yasanır. */
/* Yukardada belirttiğim gibi Yukardaki Kodu , /NS SET HOST Komutunu kullanmayacaksanız ekleyin. Bunda, Services operler icin deaktif olacaktır. Eğer Kullanacaksanız Yukardaki Kodu es gecin */
[/CODE]
Altina;
Ekleyin..
Aynı Dosyada;
Altina;
Ekleyin..
Yine Aynı Dosyada;
Altina;
Ekleyin..
Aynı dosyada;
Altina;
Ekleyin.
Altina,
Ekleyip, Kaydedip Cikin.
Dosyasında;
Altina;
ekleyin.
SATIRININ ÜSTÜNE
EKLEYİN.
SATIRININ ÜSTÜNE
ekleyin.
Bölümünün YINE ÜSTÜNE
Ekleyip Kaydedip cıkın gencler.
Girip;
Altina;
ekelyin.
girip;
SATIRININ ÜSTÜNE
Olarak tanımlayalım.
girip;
altina;
ekleyin.
altina;
ekleyin.
altina;
ekleyin.
altina;
ekleyin.
Satirinin üstüne
ekleyin.
Gelelim DATABASEYE OKUTMASINA VE YAZMASINA. Ne Olur, Ne Olmaz, Siz Yedek alın. Güvenlik Her zaman Önde gelir her daim.
Girerek;
Altina;
ekliyorz.
Altina;
ekliyoruz.
Sonra kaydedip Cıkarak Yaptıklarımızı Derliyoruz.
ircservices ana dizinde
Ardindan /os update ile birlikte /os restart ile resetliyoruz servislerimizi.
Ardindan, IRC Üzerinden -> Ki tabi Services Admin iken Yapın Cünkü Online Var ya.. Yüksek olmak zorunda services admin değil iseniz tabi..
/ns set host hostunuz Komutunu Kullanin.
Ardından;
Yazmayı Yaptıktan Sonra, Sıra Geldi Okutmaya;
Altina;
Ekleyip Bitiriyoruz. Umarım Bu Sistem Zamanla Geliştirilir. Ki Zaten Bu Örnek alınarak Bence Online Süresine Göre Bircok sey yapilabilir. İmkansiz diye Birşey yoktur.
Kolay Gelsin..
( Kodlar ve anlatim -> IFGT Hazır kod - Total Online Time )
Bununla ilişki icinde Seviye sistemi Kurarak, Onlineye Göre, Nick infosuna Birtakım seyler yazacağız. Bu Sistem ile Bircok komutu acabilir bircok özellik yapabilirsiniz.
Anopedeki nick Kayit tarihine göreki olaydaki sistemi ircservicese göre Online olarak ayarlayıp faaliyete sokuyoruz.
Ayrıca /NS Set host hostunuz Komutu ilede, Hostunuzu Belirleyebilir Tabi sonunda %s.Kelebek.Gen.TR Yani Vhost.Kelebek.Gen.TR Olarak belirleniyor. Sunucu adını Sonuna yazabilirsiniz.
Fakat Bu Komutu, Sadece Onlinesi Belirli Bir Süreye Ulasan Kullanıcılar ERİŞEBİLİR. O Seviyeden Düşük Olan Kullanıcılar Komutu Kullanamaz.
IDENTFY Edilince, Hostu varsa, Kullanıcıya verilir.
Aynen Bu Sekildeki Gibi.
Ayrica Online Seviyesinide INFO 'Da gösteriyoruz.
nickserv -- info toXic
© NickServ ------------------ KELEBEK IRCd Network--------------
© NickServ
© NickServ toXic isim: return -1;
© NickServ Online oldugu adres: 1@IRCAdministrator.Kelebek.Gen.TR
© NickServ Toplam Online Süresi: 139 Gun 6 Saat 49 Dakika ve 58 Saniye.
© NickServ Online Durumuna Gore Seviyesi (Asistan KELEBEK)
© NickServ Kayit zamani: Agu 12 22:45:13 2007 CEST
© NickServ Son quit mesaji: www.kelebekblog.com
© NickServ URL: UnrealIRCd •» News/Announcements
© NickServ Bilgi: İşleri Varken Yalarlar, İşleri Bitince KRALLAR!
© NickServ Ekler: Kill korumasi,Ek Guvenlik,Ozel
© NickServ Daha fazla bilgi icin: /msg NickServ INFO toXic ALL
© NickServ
© NickServ Tüm Nick ve Kanallar GENEL IRC kuralları dahilinde ilk kayit eden kişiye Aittir
© NickServ Kelebek Yönetimi, Nick ve Kanalların kullanımını kurallar dahilinde yasaklayabilir, devir edebilir.
© NickServ Yönetim bu konuda herhangi bir ACIKLAMA veya DUYURU gerekmedikçe yapmaz.
© NickServ Bu Kisi KELEBEK bağımlısıdır, tedavisi yoktur.!
© NickServ
© NickServ ------------------ KELEBEK IRCd Network--------------
Olarak Gösteriyoruz..
Söylediğim Gibi, /ns set HOST Komutunu Sadece Services Adminler ve Online Seviyesi, Daha Önce Belirlenmiş Süreyi Geçti ise Kullanabilirler.
Saolsun Serkan Abide, Tıkandıgım anda yardımcı Oldu.
Gelelim Kodlara;
-
Kod:
cd ircservices*-*
Kod:
pico modules/nickserv/main.c
Kod:
static void do_identify(User *u)
{
char *pass = strtok_remaining();
NickInfo *ni = NULL;
NickGroupInfo *ngi = NULL;
satirinin altina;
Kod:
static int SEVIYEX = 1;
static int SEVIYEXX = 4320000;
static int SEVIYEXXX = 8640000;
static int SEVIYEXXXX = 17280000;
/* Seviyex 1 saniye , SeviyeXX 50 Gün , SeviyeXXX 100 G, SEVİYEXXXX 200 Gün Saniye Olarak ayarlidir. */
Ekliyoruz..
Kod:
} else if (call_callback_2(module, cb_id_check, u, pass) <= 0) {
int old_authstat = ni->authstat;
set_identified(u, ni, ngi);
module_log("%s!%s@%s identified for nick %s",
u->nick, u->username, u->host, u->nick);
notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);
Altina;
Kod:
if((ngi->host!=NULL))
send_cmd(s_NickServ, "CHGHost %s %s.Kelebek.Gen.TR", u->nick, ngi->host);
Ekliyoruz.
/* Eğer Ben NS SET HOST Sistemini Değilde, Sadece Online Seviyesini yapmak istiyorum diyenler Assadaki kodu kullansın, eğer hem online sistemi hemde ns set host sistemini kullanırsanız karısır cünkü Online sistemi KENDİ HOST VERMEKTEDİR. NS SET HOST Kullanırsanız cakısma yasanır. */
Kod:
if(!is_oper(u))
{
if (SEVIYEXXXX && ni->toplamzaman >= SEVIYEXXXX) {
notice(s_NickServ, u->nick, "Online Surenize Gore Durumunuz \2Profosyonel KELEBEK\2 Olarak Kaydedildi");
send_cmd(s_NickServ, "CHGHost %s ProfosyonelKelebek.%s.Kelebek.Gen.Tr", u->nick, u->nick);
}
else if (SEVIYEXXX && ni->toplamzaman >= SEVIYEXXX) {
notice(s_NickServ, u->nick, "Online Surenize Gore Durumunuz \2Asistan KELEBEK\2 Olarak Kaydedildi");
send_cmd(s_NickServ, "CHGHost %s AsistanKelebek.%s.Kelebek.Gen.Tr", u->nick, u->nick);
}
else if (SEVIYEXX && ni->toplamzaman >= SEVIYEXX) {
send_cmd(s_NickServ, "NOTICE %s \2Online\2 Surenize Gore Durumunuz \2StudenT KELEBEK\2 Olarak Kaydedildi", u->nick);;
}
}
/* Yukardada belirttiğim gibi Yukardaki Kodu , /NS SET HOST Komutunu kullanmayacaksanız ekleyin. Bunda, Services operler icin deaktif olacaktır. Eğer Kullanacaksanız Yukardaki Kodu es gecin */
Kod:
[CODE] } else if (call_callback_2(module, cb_id_check, u, pass) <= 0) {
int old_authstat = ni->authstat;
set_identified(u, ni, ngi);
module_log("[COLOR=#0000ff]%s!%s@%s[/COLOR] identified for nick %s",
u->nick, u->username, u->host, u->nick);
notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);
Altina;
Kod:
if((ngi->host!=NULL))
send_cmd(s_NickServ, "CHGHost %s %s.Kelebek.Gen.TR", u->nick, ngi->host);
Ekleyin..
Aynı Dosyada;
Kod:
static void do_info(User *u)
{
char *nick = strtok(NULL, " ");
char *param = strtok(NULL, " ");
NickInfo *ni;
NickGroupInfo *ngi;
Altina;
Kod:
static int SEVIYEX = 1;
static int SEVIYEXX = 4320000;
static int SEVIYEXXX = 8640000;
static int SEVIYEXXXX = 17280000;
Ekleyin..
Yine Aynı Dosyada;
Kod:
send_cmd(s_NickServ,
"NOTICE %s :Toplam Online S�resi: %d Gun %d Saat %d Dakika ve %d Saniye.",
u->nick, (ni->toplamzaman / 86400), ((ni->toplamzaman % 86400) / 3600),
(((ni->toplamzaman % 86400) % 3600) / 60),
((((ni->toplamzaman % 86400) % 3600) % 60) % 60));
Altina;
Kod:
if (SEVIYEXXXX && ni->toplamzaman >= SEVIYEXXXX) {
notice(s_NickServ, u->nick, "\2Online\2 Durumuna Gore Seviyesi \2(ProfosyoneL KELEBEK)\2");
}
else if (SEVIYEXXX && ni->toplamzaman >= SEVIYEXXX) {
notice(s_NickServ, u->nick, "\2Online\2 Durumuna Gore Seviyesi \2(Asistan KELEBEK)\2");
}
else if (SEVIYEXX && ni->toplamzaman >= SEVIYEXX) {
notice(s_NickServ, u->nick, "\2Online\2 Durumuna Gore Seviyesi \2(StudenT KELEBEK)\2");
}
else if (SEVIYEX && ni->toplamzaman >= SEVIYEX) {
notice(s_NickServ, u->nick, "\2Online\2 Durumuna Gore Seviyesi \2(New KELEBEK)\2");
}
Ekleyin..
Aynı dosyada;
Kod:
{ "SET INFO", NULL, NULL, NICK_HELP_SET_INFO, -1,-1 },
Altina;
Kod:
{ "SET HOST", NULL, NULL, -1 -1,-1 },
Ekleyin.
Kod:
if (ngi->info)
notice_lang(s_NickServ, u, NICK_INFO_INFO, ngi->info);
Altina,
Kod:
if (ngi->host)
notice_lang(s_NickServ, u, NICK_INFO_HOST, ngi->host);
Ekleyip, Kaydedip Cikin.
Kod:
pico modules/nickserv/set.c
Dosyasında;
Kod:
static void do_set_info(User *u, NickGroupInfo *ngi, char *param);
Altina;
Kod:
static void do_set_host(User *u, NickGroupInfo *ngi, char *param);
ekleyin.
Kod:
} else if (stricmp(cmd, "KILL") == 0) {
do_set_kill(u, ngi, param);
SATIRININ ÜSTÜNE
Kod:
} else if (stricmp(cmd, "HOST") == 0) {
do_set_host(u, ngi, param);
EKLEYİN.
Kod:
do_set_host(u, ngi, NULL);
} else {
syntax_error(s_NickServ, u, "UNSET",
NSRequireEmail ? NICK_UNSET_SYNTAX_REQ_EMAIL : NICK_UNSET_SYNTAX);
}
}
SATIRININ ÜSTÜNE
Kod:
} else if (stricmp(cmd, "HOST") == 0) {
do_set_host(u, ngi, NULL);
ekleyin.
Kod:
/*************************************************************************/
static void do_set_kill(User *u, NickGroupInfo *ngi, char *param)
{
if (stricmp(param, "ON") == 0) {
ngi->flags |= NF_KILLPROTECT;
ngi->flags &= ~(NF_KILL_QUICK | NF_KILL_IMMED);
notice_lang(s_NickServ, u, NICK_SET_KILL_ON);
} else if (stricmp(param, "QUICK") == 0) {
ngi->flags |= NF_KILLPROTECT | NF_KILL_QUICK;
ngi->flags &= ~NF_KILL_IMMED;
notice_lang(s_NickServ, u, NICK_SET_KILL_QUICK);
} else if (stricmp(param, "IMMED") == 0) {
Bölümünün YINE ÜSTÜNE
Kod:
/**********************************************************/
static void do_set_host(User *u, NickGroupInfo *ngi, char *param)
{
static int SEVIYEX = 1;
static int SEVIYEXX = 4320000;
static int SEVIYEXXX = 8640000;
static int SEVIYEXXXX = 17280000;
NickInfo *ni;
const char *nick = ngi_mainnick(ngi);
if (!is_services_admin(u) && SEVIYEXXXX && ni->toplamzaman <= SEVIYEXXXX) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
/*
send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanabilmeniz icin \2%d\2 Gun online olmalisiniz.", u->nick, SEVIYEXXXX % 86400) % 3600) / 60);
*/
send_cmd(s_NickServ,
"NOTICE %s :Toplam Online Süresiniz: %d Gun %d Saat %d Dakika ve %d Saniye Olmalidir.",
u->nick, (SEVIYEXXXX / 86400), ((SEVIYEXXXX % 86400) / 3600),
(((SEVIYEXXXX % 86400) % 3600) / 60),
((((SEVIYEXXXX % 86400) % 3600) % 60) % 60));
return 0;
}
free(ngi->host);
if (param) {
if (strlen(param)>10000) {
notice_lang(s_NickServ, u, NICK_SET_HOST_SYNTAX, nick);
return;
}
ngi->host = sstrdup(param);
notice_lang(s_NickServ, u, NICK_SET_HOST_CHANGED, nick, param);
send_cmd(s_NickServ, "NOTICE %s Hostunuz \2%s\2 Olarak Belirlendi. Lutfen Nıckınızı \2IDENTIFY\2 Edınız.", u->nick, ngi->host);
} else {
ngi->host = NULL;
notice_lang(s_NickServ, u, NICK_UNSET_HOST, nick);
}
put_nickgroupinfo(ngi);
}
Ekleyip Kaydedip cıkın gencler.
Kod:
pico modules/nickserv/util.c
Girip;
Kod:
/* Free a NickGroupInfo structure and all associated data. */
EXPORT_FUNC(free_nickgroupinfo)
STANDALONE_STATIC void free_nickgroupinfo(NickGroupInfo *ngi)
{
int i;
if (!ngi)
return;
free(ngi->url);
free(ngi->email);
free(ngi->info);
Altina;
Kod:
free(ngi->host);
ekelyin.
Kod:
pico modules/nickserv/nickserv.h
girip;
Kod:
SuspendInfo *suspendinfo; /* Suspension info (non-NULL => suspended) */
SATIRININ ÜSTÜNE
Kod:
char *host;
Olarak tanımlayalım.
Kod:
pico lang/index
Kod:
NICK_SET_INFO_CHANGED
altina;
Kod:
NICK_SET_HOST_CHANGED
ekleyin.
Kod:
NICK_UNSET_INFO
altina;
Kod:
NICK_UNSET_HOST
ekleyin.
Kod:
NICK_INFO_INFO
altina;
Kod:
NICK_INFO_HOST
ekleyin.
Kod:
NICK_HELP_SET_INFO
altina;
Kod:
NICK_HELP_SET_HOST
ekleyin.
Kod:
NICK_SET_LANGUAGE_SYNTAX
Satirinin üstüne
Kod:
NICK_SET_HOST_SYNTAX
ekleyin.
Gelelim DATABASEYE OKUTMASINA VE YAZMASINA. Ne Olur, Ne Olmaz, Siz Yedek alın. Güvenlik Her zaman Önde gelir her daim.
Kod:
pico modules/database/version4.c
Girerek;
Kod:
SAFE(write_string(ngi->info, f));
Altina;
Kod:
SAFE(write_string(ngi->host, f));
ekliyorz.
Kod:
if (ngi->info)
mem += strlen(ngi->info)+1;
Altina;
Kod:
if (ngi->host)
mem += strlen(ngi->host)+1;
ekliyoruz.
Sonra kaydedip Cıkarak Yaptıklarımızı Derliyoruz.
ircservices ana dizinde
Kod:
make&&make install
Ardindan /os update ile birlikte /os restart ile resetliyoruz servislerimizi.
Ardindan, IRC Üzerinden -> Ki tabi Services Admin iken Yapın Cünkü Online Var ya.. Yüksek olmak zorunda services admin değil iseniz tabi..
/ns set host hostunuz Komutunu Kullanin.
Ardından;
Yazmayı Yaptıktan Sonra, Sıra Geldi Okutmaya;
Kod:
pico modules/database/version4.c
Kod:
SAFE(read_string(&ngi->info, f));
Altina;
Kod:
SAFE(read_string(&ngi->host, f));
Ekleyip Bitiriyoruz. Umarım Bu Sistem Zamanla Geliştirilir. Ki Zaten Bu Örnek alınarak Bence Online Süresine Göre Bircok sey yapilabilir. İmkansiz diye Birşey yoktur.
Kolay Gelsin..