|
| |
|
|
|
|
LinkBack | Konu Araçları | Görünüm Modları |
23-09-24, 08:09 | #1 | |||||||||
Owner Üye No : 2
Üyelik Tarihi: 23-09-24
Nerden :
Konular : 1236
Mesajlar : 1,266
Aldığı Teşekkür : 25
Ettiği Teşekkür : 72
Rep Puanı: 10 Tuttuğu Takım : galatasaray
Ruh Halim:
Level: 30 [] Paylaşım: 1119 / 1119 |
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: Kodu kopyalamak için üzerine çift tıklayın! { CA_AUTOPROTECT, ACCLEV_SOP, "AUTOPROTECT", CHAN_LEVEL_AUTOPROTECT, CL_SET_MODE, { .cumode = {"a",0} } }, üzerine; Kod: Kodu kopyalamak için üzerine çift tıklayın! { CA_AUTOOWNER, ACCLEV_FOUNDER, "", -1, CL_SET_MODE, { .cumode = {"", 1} } }, Aynı dosyada bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! /* CA_AUTOOWNER 18 */ /* No longer used */ Kod: Kodu kopyalamak için üzerine çift tıklayın! #define CA_AUTOOWNER 18 olarak değiştir. Dosya: irc*.*/modules/chanserv/main.c Bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! else if (strcmp(cmd, "DEHALFOP") == 0) target_nextacc = CA_AUTOOP; else target_nextacc = -1; Hemen altına; Kod: Kodu kopyalamak için üzerine çift tıklayın! if (strcmp(cmd, "DEPROTECT") == 0 && chanusermode_owner) mode |= chanusermode_owner; Dosya: irc*.*/modes.c Bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! char chanmode_multiple[257]; /* Chanmodes that can be set multiple times */ Hemen üstüne; Kod: Kodu kopyalamak için üzerine çift tıklayın! int32 chanusermode_owner; Aynı dosyada bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! #define MI_REGNICKS_ONLY 0x08 /* [ C] Only registered/ID'd nicks may join */ Hemen altına ekle; Kod: Kodu kopyalamak için üzerine çift tıklayın! #define MI_CHANOWNER 0x10 Aynı dosyada bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! extern int32 chanmode_opersonly;/* Chanmodes indicating oper-only channels */ Hemen altına; Kod: Kodu kopyalamak için üzerine çift tıklayın! extern int32 chanusermode_owner; Dosya: irc*.*/modules/protocol/ptlink.c Bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! static const struct modedata_init new_chanusermodes[] = { {'a', {0x00000010,1,1,'.'}}, /* Channel owner */ }; Bununla değiştir; Kod: Kodu kopyalamak için üzerine çift tıklayın! static const struct modedata_init new_chanusermodes[] = { {'a', {0x00000010,1,1,'.',MI_CHANOWNER}}, /* Channel owner */ }; Dosya: irc*.*/modules/protocol/trircd.c Bunu bulup; Kod: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! 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: Kodu kopyalamak için üzerine çift tıklayın! 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 |
|||||||||
|
Yer İmleri |
Konuyu Görüntüleyen Aktif Kullanıcılar: 1 (0 üye ve 1 misafir) | |
Konu Araçları | |
Görünüm Modları | |
|
|
İrcHane.Com | Forum Teknik Destek |
Powered by vBulletin® Version 3.8.11 Copyright ©2000 - 2024, vBulletin Solutions Inc. Search Engine Optimization by vBSEO 3.6.0 Design by İrcHane @ İrcHane.com
Design by Geyikforum @ GeyikForum
Navbar with Avatar by Motorradforum
İrcHane.Com Temayı Yapımcısı: Dk yazılım irchane Copyright 2024 |
|