IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Services Hazır Kodlar (https://www.ircforumlari.net/services-hazir-kodlar/)
-   -   Online Seviyesi Ve Buna Göre /NS SET HOST (https://www.ircforumlari.net/services-hazir-kodlar/306933-online-seviyesi-ve-buna-gore-ns-set-host.html)

toXic 22 Aralık 2009 17:38

Online Seviyesi Ve Buna Göre /NS SET HOST
 
Öncelikle Bu Sistemi Kullanabilmeniz icin, TOTAL Online Time IRCServiceslerinizde var olmali.

( Kodlar ve anlatim -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] )

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.

Alıntı:

nickserv -- set host Forever
© NickServ Hostunuz Forever Olarak Belirlendi. Lutfen Nıckınızı IDENTIFY Edınız.
© NickServ Password accepted - Sifre kabul edildi.
««««« [ Whois toXic ] »»»»»
* Adres: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
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: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
© 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: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
© NickServ URL: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
© 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:


       
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);

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
girip;

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. :P

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.

Alıntı:

nickserv -- set host Forever
© NickServ Hostunuz Forever Olarak Belirlendi. Lutfen Nıckınızı IDENTIFY Edınız.
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..

fatal 22 Aralık 2009 17:41

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
adam yapiyor ya.. eline sağlık ibo.

Geologist 22 Aralık 2009 17:47

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
Süper çalışma, eline sağlık ibocum.

mStf 22 Aralık 2009 17:52

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
Ibo :) Döktürdün mü Durduramıyorum seni kanka :p

Kae 22 Aralık 2009 17:54

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
Güzel bir çalışma olmuş eline saglık kanka

eXo 22 Aralık 2009 17:59

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
ibo testleri benim sunucuda yapıyor :D

Cemalizim 22 Aralık 2009 19:56

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
Eline Sağlık İboşum

---------- Post added at 19:56 ---------- Previous post was at 19:55 ----------

Eline Sağlık ibrahim , Yakışır Kardeşime.

FrameWork 22 Aralık 2009 20:57

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
Guzel Paylasım Kanke , eline sağlık.

Sky-Dancer 23 Aralık 2009 04:10

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
toXic sanki ben bu projeyi başka bir yerlerden hatırlıyorum ama neyse :)

Güzel gibi olmuş. Eline sağlık.. Fakat şu kısımda editlenebilirlik açısından şöyle yapman daha iyi olurdu;
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 */

->
Kod:

    static int SEVIYEX = 1;
    static int SEVIYEXX =  60*60*24*50;
    static int SEVIYEXXXX =  60*60*24*100;
    static int SEVIYEXXXX =  60*60*24*200;

- if (SEVIYEX && ..) demene gerek yok.. Zaten SEVIYEX var olan bir tamsayı orada :P

- bence tr.l kullanmak yerine send_cmd ile NOTICE gönderimi yapman daha iyi olurdu :)

eline sağlık..

iyi Çalışmalar..

toXic 23 Aralık 2009 09:04

Cevap: Online Seviyesi Ve Buna Göre /NS SET HOST
 
Alıntı:

Sky-Dancer Nickli Üyeden Alıntı (Mesaj 885301)
toXic sanki ben bu projeyi başka bir yerlerden hatırlıyorum ama neyse :)

Güzel gibi olmuş. Eline sağlık.. Fakat şu kısımda editlenebilirlik açısından şöyle yapman daha iyi olurdu;
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 */

->
Kod:

    static int SEVIYEX = 1;
    static int SEVIYEXX =  60*60*24*50;
    static int SEVIYEXXXX =  60*60*24*100;
    static int SEVIYEXXXX =  60*60*24*200;

- if (SEVIYEX && ..) demene gerek yok.. Zaten SEVIYEX var olan bir tamsayı orada :P

- bence tr.l kullanmak yerine send_cmd ile NOTICE gönderimi yapman daha iyi olurdu :)

eline sağlık..

iyi Çalışmalar..


Dil dosyası Kullanmadım direk send_cmd ile gönderdim :)
Ayrica anopede böyle bir sistemin ( nick kayit tarihine göre ) Oldugunu söylemiştim :P

Ayrica dediğim gibi Online süresi belirtilenin altinda olursa ns set host komutunu kullanamıyor;

Alıntı:

nickserv -- set host aaa
© NickServ Bu komutu kullanma izniniz yok.
© NickServ Toplam Online Süresiniz: 200 Gun 0 Saat 0 Dakika ve 0 Saniye Olmalidir.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:40.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net