mIRCForumlari.Net

mIRCForumlari.Net (https://www.mircforumlari.net/)
-   Services Hazır Kodlar (https://www.mircforumlari.net/services-hazir-kodlar/)
-   -   IRCServices (+q) Founder Düzenlemesi (https://www.mircforumlari.net/services-hazir-kodlar/582-ircservices-q-founder-duzenlemesi.html)

RahmetLi 22 Aralık 2022 06:17

IRCServices (+q) Founder Düzenlemesi
 
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ı:


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.


Navbar with Avatar by Motorradforum