Görünmezlik modunun kodlarininin ayristirilmis halidir. Kisa sürede ayriştirdiğim için unuttugum seyler olabilir bunlari konu altinda yazabilirsiniz.
Unreal3.2.10* versiyonlarinda denemiştim.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico src/include/h.h
girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
extern MODVAR long UMODE_STRIPBADWORDS; /* 0x80000000 */
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
extern MODVAR long UMODE_HIDING; /* 0x16000000 Totally invisible .. */
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/include/struct.h
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define IsAdmin(x) ((x)->umodes & UMODE_ADMIN)
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define IsHiding(x) ((x)->umodes & UMODE_HIDING)
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define MODE_NONICKCHANGE 0x80000000
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define MODE_NOHIDING 0x16000000
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define OFLAG_UMODEQ 0x80000000 /* can set +q */
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define OFLAG_INVISIBLE 0x32000000 /* can set [+I] */
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/umodes.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
long UMODE_NOCTCP = 0L; /* Blocks ctcp (except dcc and action) */
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
long UMODE_HIDING = 0L; /* Totally invisible .. */
Kod: Kodu kopyalamak için üzerine çift tıklayın!
UmodeAdd(NULL, 'G', UMODE_GLOBAL, NULL, &UMODE_STRIPBADWORDS);
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
UmodeAdd(NULL, 'I', UMODE_GLOBAL, umode_allow_opers, &UMODE_HIDING);
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_svso.c
girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
~(UMODE_KIX |UMODE_HIDING | UMODE_DEAF | UMODE_HIDEOPER | UMODE_VICTIM);
bölümünü
Kod: Kodu kopyalamak için üzerine çift tıklayın!
~(UMODE_KIX |UMODE_HIDING | UMODE_DEAF | UMODE_HIDEOPER | UMODE_VICTIM);
olarak değiştirin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_who.c
girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (channel)
{
int member = who_flags & WF_ONCHANNEL;
if (SecretChannel(channel) || HiddenChannel(channel))
{
/* if they aren't on it.. they can't see it */
if (!(who_flags & WF_ONCHANNEL))
break;
}
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (IsHiding(acptr))
break;
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((cansee = can_see(sptr, acptr, channel)) & WHO_CANTSEE)
continue;
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((acptr->umodes & UMODE_HIDING) && !IsAnOper(sptr))
break;
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
for (acptr = client; acptr; acptr = acptr->next)
{
int cansee;
char status[20];
char *channel;
int flg;
if (!IsPerson(acptr))
continue;
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((acptr->umodes & UMODE_HIDING) && !IsAnOper(sptr))
break;
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
static char *first_visible_channel(aClient *sptr, aClient *acptr, int *flg)
{
Membership *lp;
*flg = 0;
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (IsHiding(acptr))
return "*";
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_kick.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (chptr->mode.mode & MODE_NOKICKS)
{
if (!op_can_override(sptr))
{
if (!MyClient(sptr))
goto attack; /* lag? yes.. kick crossing +Q... allow */
sendto_one(sptr, err_str(ERR_CANNOTDOCOMMAND),
me.name, sptr->name, "KICK",
"channel is +Q");
goto deny;
}
üstüne; Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (IsHiding(who))
{
sendto_one(sptr,
err_str(ERR_NOSUCHNICK),
me.name, parv[0], user, name);
sendto_one(who,
":%s %s %s :*** Hidden: %s tried to kick you from channel %s (%s)",
me.name, IsWebTV(who) ? "PRIVMSG" : "NOTICE", who->name, parv[0],
chptr->chname, comment);
break;
}
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src /modules/m_message.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (*nick != '#' && (acptr = find_person(nick, NULL)))
{
text = parv[2];
newcmd = cmd;
ret = can_privmsg(cptr, sptr, acptr, notice, &text, &newcmd);
if (ret == CANPRIVMSG_SEND)
{
sendto_message_one(acptr, sptr, parv[0], newcmd, nick, text);
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((acptr->umodes & UMODE_HIDING) && !IsAnOper(sptr))
{
sendto_one(sptr,
err_str(ERR_NOSUCHNICK),
me.name, parv[0], parv[1]);
sendto_one(acptr,
":%s %s %s :*** NICK %s MSG %s",
me.name, IsWebTV(acptr) ? "PRIVMSG" : "NOTICE", acptr->name, sptr->name, text);
break;
}
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_mode.c
girip
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (op_can_override(cptr) && !is_chanowner(cptr, chptr))
{
opermode = 1;
}
auditorium_ok:
goto setthephuckingmode;
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
case MODE_NOHIDING:
if (!IsAnOper(cptr) && !IsServer(cptr) && !IsULine(cptr))
{
sendto_one(cptr,
":%s %s %s :*** No Hiding mode (+H) can only be set by Administrators.",
me.name, IsWebTV(cptr) ? "PRIVMSG" : "NOTICE", cptr->name);
break;
}
goto setthephuckingmode;
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (MyClient(sptr)) {
if (IsAnOper(sptr)) {
if (IsAdmin(sptr) && !OPIsAdmin(sptr))
ClearAdmin(sptr);
if (IsSAdmin(sptr) && !OPIsSAdmin(sptr))
ClearSAdmin(sptr);
if (IsNetAdmin(sptr) && !OPIsNetAdmin(sptr))
ClearNetAdmin(sptr);
if (IsCoAdmin(sptr) && !OPIsCoAdmin(sptr))
ClearCoAdmin(sptr);
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((sptr->umodes & UMODE_HIDING)
&& !(sptr->oflag & OFLAG_INVISIBLE))
sptr->umodes &= ~UMODE_HIDING;
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (MyClient(sptr))
{
if ((sptr->umodes & UMODE_KIX) && (!OPCanUmodeq(sptr) || !IsAnOper(sptr)))
sptr->umodes &= ~UMODE_KIX;
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((sptr->umodes & UMODE_HIDING) && !IsAnOper(sptr))
sptr->umodes &= ~UMODE_HIDING;
if ((sptr->umodes & UMODE_HIDING) && !(sptr->oflag & OFLAG_INVISIBLE))
sptr->umodes &= ~UMODE_HIDING;
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (!(sptr->umodes & UMODE_SECURE) && IsSecure(sptr))
sptr->umodes |= UMODE_SECURE;
}
}
Altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((sptr->umodes & (UMODE_HIDING)) && !(setflags & UMODE_HIDING))
{
sendto_umode(UMODE_ADMIN,
"[+I] Activated total invisibility mode on %s",
sptr->name);
sendto_serv_butone(cptr,
":%s SMO A :[+I] Activated total invisibility mode on %s",
me.name, sptr->name);
sendto_channels_inviso_part(sptr);
}
if (!(sptr->umodes & (UMODE_HIDING)))
{
if (setflags & UMODE_HIDING)
{
sendto_umode(UMODE_ADMIN,
"[+I] De-activated total invisibility mode on %s",
sptr->name);
sendto_serv_butone(cptr,
":%s SMO A :[+I] De-activated total invisibility mode on %s",
me.name, sptr->name);
sendto_channels_inviso_join(sptr);
}
}
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_part.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
DLLFUNC void _join_channel(aChannel *chptr, aClient *cptr, aClient *sptr, int flags)
{
char *parv[] = { 0, 0 };
/*
** Complete user entry to the new channel (if any)
*/
add_user_to_channel(chptr, sptr, flags);
/*
** notify all other users on the new channel
*/
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (IsHiding(sptr))
{
if (MyClient(sptr))
{
sendto_one(sptr, ":%s!%s@%s JOIN :%s",
sptr->name, sptr->user->username,
(IsHidden(sptr) ? sptr->
user->virthost : sptr->user->realhost),
chptr->chname);
sendto_umode(UMODE_ADMIN,
"*** [+I] %s invisible joined %s",
sptr->name, chptr->chname);
sendto_serv_butone_token(&me, me.name, MSG_SMO,
TOK_SMO, "A :[+I] %s invisible joined %s",
sptr->name, chptr->chname);
sendto_channel_ntadmins(sptr, chptr, ":%s JOIN :%s",
sptr->name, chptr->chname);
}
}
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_part.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/* Send to other servers... */
if (!comment)
sendto_serv_butone_token(cptr, parv[0],
MSG_PART, TOK_PART, "%s", chptr->chname);
else
sendto_serv_butone_token(cptr, parv[0],
MSG_PART, TOK_PART, "%s :%s", chptr->chname,
comment);
if (1)
{
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (IsHiding(sptr))
{
if (MyClient(sptr))
{
sendto_umode(UMODE_ADMIN,
"*** [+I] %s invisible parted %s",
sptr->name, chptr->chname);
sendto_serv_butone_token(&me,
me.name, MSG_SMO, TOK_SMO,
"A :[+I] %s invisible parted %s",
sptr->name, chptr->chname);
if (parc < 3)
sendto_channel_ntadmins(sptr, chptr, ":%s PART %s",
sptr->name, chptr->chname);
else
sendto_channel_ntadmins(sptr, chptr, ":%s PART %s :%s",
sptr->name, chptr->chname, comment);
}
}
ekleyin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
pico -w src/modules/m_whois.c
girip;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((acptr = find_client(nick, NULL)))
{
altina;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((acptr->umodes & UMODE_HIDING) && !IsAnOper(sptr))
{
sendto_one(sptr,
err_str(ERR_NOSUCHNICK),
me.name, parv[0], parv[1]);
sendto_one(acptr,
":%s %s %s :*** Hidden: %s (%s@%s) tried to /whois you.",
me.name, IsWebTV(acptr) ? "PRIVMSG" : "NOTICE", acptr->name, sptr->name,
sptr->user->username, sptr->user->realhost);
break;
}
ekleyin.
Ektekileri src/ icerisine icerisine atin.;
make&&make install
./unreal restart