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/)
-   -   IRCServices 5.1.24 (+q) Founder Düzenlemesi (https://www.ircforumlari.net/services-hazir-kodlar/578794-ircservices-5124-q-founder-duzenlemesi.html)

xwerswoodx 14 Nisan 2014 04:08

IRCServices 5.1.24 (+q) Founder Düzenlemesi
 
IRCServices 5.1.24 sürümü ile kaldırılan founder sorunun daha önceden sorusu sorulmuş ve çözümler yetersiz kalmış, bende hazır ora yazmışken döküman haline getireyim dedim, yardımcı olabildiysem ne mutlu bana.

Biraz eskidi konu ancak hala sorun yaşayanlar varsa ben çözdüğüm yöntemi anlatmak istiyorum;

Dosya: irc*.*/modules/chanserv/access.c
Kod:

    { CA_AUTOPROTECT,  ACCLEV_SOP, "AUTOPROTECT", CHAN_LEVEL_AUTOPROTECT,
          CL_SET_MODE,  { .cumode = {"a",0} } },

üzerine;
Kod:

        { CA_AUTOOWNER,                ACCLEV_FOUNDER, "",        -1,
                  CL_SET_MODE,  { .cumode = {"", 1} } },

Aynı dosyada bunu bulup;
Kod:

    for (i = 0; levelinfo[i].what >= 0; i++) {
        int type = levelinfo[i].action & CL_TYPEMASK;
        if (type == CL_SET_MODE || type == CL_CLEAR_MODE) {
            /* Use MODE_NOERROR to deal with protocols that don't
            * support some modes (e.g. +h in AUTODEOP) */
            levelinfo[i].target.cumode.flags =
                mode_string_to_flags(levelinfo[i].target.cumode.modes,
                                    MODE_CHANUSER | MODE_NOERROR);
        }
        def_levels[levelinfo[i].what] = levelinfo[i].defval;
        lev_is_max[levelinfo[i].what] = levelinfo[i].action & CL_LESSEQUAL;
    }

Böyle değiştir;
Kod:

    for (i = 0; levelinfo[i].what >= 0; i++) {
                int type = levelinfo[i].action & CL_TYPEMASK;
                if (type == CL_SET_MODE || type == CL_CLEAR_MODE) {
                        if (levelinfo[i].what == CA_AUTOOWNER) {
                                if (chanusermode_owner)
                                    levelinfo[i].target.cumode.flags = chanusermode_owner;
                                else
                                    levelinfo[i].action = CL_OTHER;  /* make it a no-op */
            } else {
                /* Use MODE_NOERROR to deal with protocols that don't
                * support some modes (e.g. +h in AUTODEOP) */
                levelinfo[i].target.cumode.flags =
                    mode_string_to_flags(levelinfo[i].target.cumode.modes,
                                        MODE_CHANUSER | MODE_NOERROR);
            }
        }
        def_levels[levelinfo[i].what] = levelinfo[i].defval;
        lev_is_max[levelinfo[i].what] = levelinfo[i].action & CL_LESSEQUAL;
    }

Dosya: irc*.*/modules/chanserv/chanserv.h

Bunu bulup;
Kod:

/*      CA_AUTOOWNER    18 */  /* No longer used */
Kod:

#define CA_AUTOOWNER    18
olarak değiştir.

Dosya: irc*.*/modules/chanserv/main.c

Bunu bulup;
Kod:

    else if (strcmp(cmd, "DEHALFOP") == 0)
        target_nextacc = CA_AUTOOP;
    else
        target_nextacc = -1;

Hemen altına;
Kod:

    if (strcmp(cmd, "DEPROTECT") == 0 && chanusermode_owner)
        mode |= chanusermode_owner;

Dosya: irc*.*/modes.c

Bunu bulup;
Kod:

char  chanmode_multiple[257];  /* Chanmodes that can be set multiple times */
Hemen üstüne;
Kod:

int32 chanusermode_owner;
Aynı dosyada bunu bulup;
Kod:

    modelist = chanusermodes;
    flaglist = chanuserflags;
    for (i = 0; i < 256; i++) {
        if (modelist[i].flag) {
            int n = 0;
            uint32 tmp = (uint32) modelist[i].flag;
            prefixtable[ (uint8)modelist[i].prefix ] = tmp;
            while (tmp >>= 1)
                n++;
            if (n < 31)
                flaglist[n] = (char)i;
            if (modelist[i].plus_params!=1 || modelist[i].minus_params!=1) {
                log("modes: Warning: channel user mode `%c' takes %d/%d"
                    " parameters (should be 1/1)",
                    i, modelist[i].plus_params, modelist[i].minus_params);
            }
        }
    }
}

Bununla değiştir;
Kod:

    modelist = chanusermodes;
    flaglist = chanuserflags;
    for (i = 0; i < 256; i++) {
        if (modelist[i].flag) {
            int n = 0;
            uint32 tmp = (uint32) modelist[i].flag;
            prefixtable[ (uint8)modelist[i].prefix ] = tmp;
                    if (modelist[i].info & MI_CHANOWNER)
                        chanusermode_owner |= tmp;
            while (tmp >>= 1)
                n++;
            if (n < 31)
                flaglist[n] = (char)i;
            if (modelist[i].plus_params!=1 || modelist[i].minus_params!=1) {
                log("modes: Warning: channel user mode `%c' takes %d/%d"
                    " parameters (should be 1/1)",
                    i, modelist[i].plus_params, modelist[i].minus_params);
            }
        }
    }
}

Dosya: irc*.*/modes.h

Bunu bulup;
Kod:

#define MI_REGNICKS_ONLY 0x08 /* [ C] Only registered/ID'd nicks may join */
Hemen altına ekle;
Kod:

#define MI_CHANOWNER        0x10
Aynı dosyada bunu bulup;
Kod:

extern int32 chanmode_opersonly;/* Chanmodes indicating oper-only channels */
Hemen altına;
Kod:

extern int32 chanusermode_owner;
Dosya: irc*.*/modules/protocol/ptlink.c

Bunu bulup;
Kod:

static const struct modedata_init new_chanusermodes[] = {
    {'a', {0x00000010,1,1,'.'}},        /* Channel owner */
};

Bununla değiştir;
Kod:

static const struct modedata_init new_chanusermodes[] = {
    {'a', {0x00000010,1,1,'.',MI_CHANOWNER}},        /* Channel owner */
};

Dosya: irc*.*/modules/protocol/trircd.c

Bunu bulup;
Kod:

static const struct modedata_init new_chanusermodes[] = {
    {'h', {0x00000004,1,1,'%'}},        /* Half-op */
    {'a', {0x00000008,1,1,'~'}},        /* Protected (no kick or deop by +o) */
    {'u', {0x00000010,1,1,'.'}},        /* Channel owner */
};

Bununla değiştir;
Kod:

static const struct modedata_init new_chanusermodes[] = {
    {'h', {0x00000004,1,1,'%'}},        /* Half-op */
    {'a', {0x00000008,1,1,'~'}},        /* Protected (no kick or deop by +o) */
    {'u', {0x00000010,1,1,'.',MI_CHANOWNER}},        /* Channel owner */
};

Dosya: irc*.*/modules/protocol/unreal.c

Bunu bulup;
Kod:

static const struct modedata_init new_chanusermodes[] = {
    {'h', {0x00000004,1,1,'%'}},        /* Half-op */
    {'a', {0x00000008,1,1,'~'}},        /* Protected (no kick or deop by +o) */
    {'q', {0x00000010,1,1,'*'}},        /* Channel owner */
};

Bununla değiştir;
Kod:

static const struct modedata_init new_chanusermodes[] = {
    {'h', {0x00000004,1,1,'%'}},        /* Half-op */
    {'a', {0x00000008,1,1,'~'}},        /* Protected (no kick or deop by +o) */
    {'q', {0x00000010,1,1,'*',MI_CHANOWNER}},        /* Channel owner */
};

Kod:

make
make install

Servisleri restartlamanız gerekmektedir.

Umarım eksik bir kod vermemişimdir, hata alırsanız hatayı kopyalarsanız yardımcı olabilirim. Şuanda açık bir sunucuda bu şekilde +q yetkisini ayarladm, herhangi bir sorun yaşamadım, yaşayacağınızı sanmıyorum, yinede hata varsa belirtirseniz çözmeye çalışırım.

Alıntı:

[02:09:19] *** Tekrar Girilmeye Çalışılıyor...
[02:09:19] *** Kanala Tekrar Giriliyor #sohbet
[02:09:19] *** ChanServ mod değiştirdi:+oq xwerswoodx xwerswoodx


basketci 14 Nisan 2014 08:32

Cevap: IRCServices 5.1.24 (+q) Founder Düzenlemesi
 
hamit sende olmasan napcak kod arayanlar emeğine sağlık :)

xwerswoodx 14 Nisan 2014 14:03

Cevap: IRCServices 5.1.24 (+q) Founder Düzenlemesi
 
Valla arkadaşlara yardımcı olabildiysem ne mutlu, ama hani buradan belirtmeliyim ki sürekli test edilmiş bir şey değil, şuana kadar açık sunucuda hata almadım ama arkadaşlar belirtirse çözmeye çalışırız

Serseri 10 Mayıs 2014 16:26

Cevap: IRCServices 5.1.24 (+q) Founder Düzenlemesi
 
Alıntı:

xwerswoodx Nickli Üyeden Alıntı (Mesaj 1041416848)
Valla arkadaşlara yardımcı olabildiysem ne mutlu, ama hani buradan belirtmeliyim ki sürekli test edilmiş bir şey değil, şuana kadar açık sunucuda hata almadım ama arkadaşlar belirtirse çözmeye çalışırız

düzenleme yaptığınız sunucuyu belirtirseniz denemeden önce görmek isteyen arkadaşlar bakıp görüp inceleme fırsatı da bulabilir... ama ilk fırsatta ben deneyeceğim yalan yok ve hatta başarılı olabilirsem eğer mevcut editlerin tamamını uygulamayı bile şuanda düşünüyorum :)

xwerswoodx 10 Mayıs 2014 20:46

Cevap: IRCServices 5.1.24 (+q) Founder Düzenlemesi
 
Tabi aslında reklam olmasın diye vermek istememiştim ama irc.gelsene.net sunucusunda deniyorum şuanda sunucu açık hiç bir sorun yaşamadım yaklaşık olarak 1 ay oldu sanıyorum konuyu açalı, o gün ayarlamıştım zaten, isteyen tabiki gelip deneyebilir, sorun varsa çözmeye çalışırızda elimden geldikce


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk