🔔 Çevrimdışı bildirim almak ister misiniz?
Bir konuya etiketlendiğinizde, özel mesaj aldığınızda, bir mesajınız alıntılandığında forumda olmasanız bile anlık bildirim almak için lütfen izni verin.
IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet odaları

>
+
Etiketlenen Kullanıcılar

 
 
LinkBack Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 20 Mart 2007, 14:36   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Bot Systems




Forumda bir kaç kişinin sorduğunu hatırlar gibiyim
Soru : "Serverimde eggdrop botlarımın IRC Operator olarak değilde tanıtılmış Bot Systemi Olarak Göstermek istiyorum.

Öncelikle ssh den login olup /ircops modul unu

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

linkindeki gibi kurup aktif hale getiriyoruz.

sonrasında

m_ircops.c klasöürüne ftp den aşşağıdaki codeleri ekliyoruz.


#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
#define RPL_IRCOPS 337
#define RPL_ENDOFIRCOPS 338
#define MSG_IRCOPS "IRCOPS"
#define TOK_IRCOPS "IO"
#define MyMod ModIrcops->handle
#define IsAway(x) (x)->user->away
#define IsSkoAdmin(sptr) (IsAdmin(sptr) || IsNetAdmin(sptr) || IsSAdmin(sptr) || IsCoAdmin(sptr))
#define DelCommand(x) if (x) CommandDel(x); x = NULL
static Command *AddCommand(char *msg, char *token, int (*func)());
DLLFUNC int m_ircops(aClient *cptr, aClient *sptr, int parc, char *parv[]);
ModuleInfo *ModIrcops;
Command *CmdIrcops;
#ifndef DYNAMIC_LINKING
ModuleHeader m_ircops_Header
#else
#define m_ircops_Header Mod_Header
ModuleHeader Mod_Header
#endif
= {
"ircops",
"$Id: m_ircops.c,v 2.3 2003/12/01 11:46:08 Salazar Exp $",
"command /ircops",
"3.2-b8-1",
NULL
};

/* The purpose of these ifdefs, are that we can "static" link the ircd if we
* want to
*/
/* This is called on module init, before Server Ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
#else
int m_ircops_Init(ModuleInfo *modinfo)
#endif
{
ModIrcops = modinfo;
CmdIrcops = AddCommand(MSG_IRCOPS, TOK_IRCOPS, m_ircops);
if (!CmdIrcops)
return MOD_FAILED;
return MOD_SUCCESS;
}
/* Is first run when server is 100% ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Load(int module_load)
#else
int m_ircops_Load(int module_load)
#endif
{
return MOD_SUCCESS;
}

/* Called when module is unloaded */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Unload(int module_unload)
#else
int m_ircops_Unload(int module_unload)
#endif
{
DelCommand(CmdIrcops);
return MOD_SUCCESS;
}
typedef struct
{
unsigned long *umode;
char *text;
} oflag;
static oflag otypes[] =
{
{ &UMODE_NETADMIN, "Network Administrator" },
{ &UMODE_ADMIN, "Services Administrator" },
{ &UMODE_SADMIN, "Server Administrator" },
{ &UMODE_COADMIN, "Technical Administrator" },
{ &UMODE_OPER, "IRC Operator" },
{ &UMODE_LOCOP, "Prizma Bot Systems"
},
{ NULL, NULL }
};
static char *find_otype(unsigned long umodes)
{
unsigned int i;
for (i = 0; otypes[i].umode; i++)
if (*otypes[i].umode & umodes)
return otypes[i].text;
return "an unknown operator";
}
static Command *AddCommand(char *msg, char *token, int (*func)())
{
Command *cmd;
if (CommandExists(msg))
{
config_error("Command %s already exists", msg);
return NULL;
}
if (CommandExists(token))
{
config_error("Token %s already exists", token);
return NULL;
}
cmd = CommandAdd(MyMod, msg, token, func, MAXPARA, 0);
#ifndef _WIN32
if (ModuleGetError(MyMod) != MODERR_NOERROR || !cmd)
#else
if (!cmd)
#endif
{
#ifndef _WIN32
config_error("Error adding command %s: %s", msg,
ModuleGetErrorStr(MyMod));
#else
config_error("Error adding command %s", msg);
#endif
return NULL; /* just to be sure */
}
return cmd;
}

int m_ircops(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
aClient *acptr;
char buf[BUFSIZE];
int opers = 0, admins = 0, globs = 0, aways = 0;
sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+",
me.name, sptr->name);
sendto_one(sptr, ":%s 339 %s : \2Sunucuda Online olan Görevli Listesi\2 ",
me.name, sptr->name);
sendto_one(sptr, ":%s 339 %s : ",
me.name, sptr->name);
sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+",
me.name, sptr->name);
for (acptr = client; acptr; acptr = acptr->next)
{
/* List only real IRC Operators */
if (IsULine(acptr) || !IsPerson(acptr) || !IsAnOper(acptr))
continue;
/* Don't list +H users */
if (!IsAnOper(sptr) && IsHideOper(acptr))
continue;
sendto_one(sptr, ":%s %d %s : \2Nick\2 : %-13s \2Görev\2 : %-20s " "%s",
me.name, RPL_IRCOPS, sptr->name,
acptr->name,
find_otype(acptr->umodes),
(IsAway(acptr) ? "- Meşgul" : IsHelpOp(acptr) ? "" : ""));
if (IsAway(acptr))
aways++;
else if (IsSkoAdmin(acptr))
admins++;
else
opers++;
}
globs = opers + admins + aways;
sprintf(buf,
"Toplam: %d Operatör%s Bağlı - %d Yönetici%s , %d IRC Operatör%s ve %d Meşgul",
globs, (globs) > 1 ? "" : "", admins, admins > 1 ? "" : "",
opers, opers > 1 ? "" : "", aways);
sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+",
me.name, sptr->name);
sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_IRCOPS, sptr->name, buf);
sendto_one(sptr, ":%s %d %s :Yönetici listesi sonu", me.name, RPL_ENDOFIRCOPS, sptr->name);
return 0;
}

Kırmızı Yazı ile Yazılan Prizma Yerine Kendi Serverinizin ismini yazın ve m_ircops.c yi aktif hale getirin.

egg droplarınıza eklediğiniz oper flaglarini silip sadec +o eklediğiniz takdirde serverde ircops kotu sonucu alttaki gibi gözükecektir.

+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
Sunucuda Online olan Görevli Listesi

+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
Nick : coder Görev : Services Administrator
Nick : ShadoW Görev : Services Administrator
Nick : ON-AIR Görev : Prizma Bot Systems
Nick : Arama Görev : Prizma Bot Systems
Nick : SentineL Görev : Prizma Bot Systems
Nick : Game Görev : Prizma Bot Systems
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
Toplam: 6 Operatör Bağlı - 2 Yönetici , 4 IRC Operatör ve 0 Meşgul
Yönetici listesi sonu.

bu sonuşta çıkan SentineL , ON-AIR ,Game ve Arama eggdrop tur.

Bu işlemi gerçekleştirdikten Sonra m_whois.c Dosyasınıda aşşağıdaki gibi değiştirin.


/*
* Unreal Internet Relay Chat Daemon, src/modules/m_whois.c
* (C) 2000-2001 Carsten V. Munk and the UnrealIRCd Team
* Moved to modules by Fish (Justin Hammond)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
static char buf[BUFSIZE];
DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]);
/* Place includes here */
#define MSG_WHOIS "WHOIS" /* WHOI */
#define TOK_WHOIS "#" /* 35 */
ModuleHeader MOD_HEADER(m_whois)
= {
"whois", /* Name of module */
"$Id: m_whois.c,v 1.1.6.6 2005/03/13 21:03:21 syzop Exp $", /* Version */
"command /whois", /* Short description of module */
"3.2-b8-1",
NULL
};
/* This is called on module init, before Server Ready */
DLLFUNC int MOD_INIT(m_whois)(ModuleInfo *modinfo)
{
/*
* We call our add_Command crap here
*/
add_Command(MSG_WHOIS, TOK_WHOIS, m_whois, MAXPARA);
MARK_AS_OFFICIAL_MODULE(modinfo);
return MOD_SUCCESS;
}
/* Is first run when server is 100% ready */
DLLFUNC int MOD_LOAD(m_whois)(int module_load)
{
return MOD_SUCCESS;
}
/* Called when module is unloaded */
DLLFUNC int MOD_UNLOAD(m_whois)(int module_unload)
{
if (del_Command(MSG_WHOIS, TOK_WHOIS, m_whois) < 0)
{
sendto_realops("Failed to delete commands when unloading %s",
MOD_HEADER(m_whois).name);
}
return MOD_SUCCESS;
}

/*
** m_whois
** parv[0] = sender prefix
** parv[1] = nickname masklist
*/
DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
Membership *lp;
anUser *user;
aClient *acptr, *a2cptr;
aChannel *chptr;
char *nick, *tmp, *name;
char *p = NULL;
int found, len, mlen;
if (IsServer(sptr))
return 0;
if (parc < 2)
{
sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN),
me.name, parv[0]);
return 0;
}
if (parc > 2)
{
if (hunt_server_token(cptr, sptr, MSG_WHOIS, TOK_WHOIS, "%s :%s", 1, parc,
parv) != HUNTED_ISME)
return 0;
parv[1] = parv[2];
}
for (tmp = parv[1]; (nick = strtoken(&p, tmp, ",")); tmp = NULL)
{
unsigned char invis, showchannel, member, wilds, hideoper; /* <- these are all boolean-alike */
found = 0;
/* We do not support "WHOIS *" */
wilds = (index(nick, '?') || index(nick, '*'));
if (wilds)
continue;
if ((acptr = find_client(nick, NULL)))
{
if (IsServer(acptr))
continue;
/*
* I'm always last :-) and acptr->next == NULL!!
*/
if (IsMe(acptr))
break;
/*
* 'Rules' established for sending a WHOIS reply:
* - only send replies about common or public channels
* the target user(s) are on;
*/
if (!IsPerson(acptr))
continue;
user = acptr->user;
name = (!*acptr->name) ? "?" : acptr->name;
invis = acptr != sptr && IsInvisible(acptr);
member = (user->channel) ? 1 : 0;
a2cptr = find_server_quick(user->server);
hideoper = 0;
if (IsHideOper(acptr) && (acptr != sptr) && !IsAnOper(sptr))
hideoper = 1;
if (IsWhois(acptr) && (sptr != acptr))
{
sendto_one(acptr,
":%s %s %s :*** %s (%s@%s) did a /whois on you.",
me.name, IsWebTV(acptr) ? "PRIVMSG" : "NOTICE", acptr->name, sptr->name,
sptr->user->username, sptr->user->realhost);
}
sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name,
parv[0], name,
user->username,
IsHidden(acptr) ? user->virthost : user->realhost,
acptr->info);
if (IsOper(sptr))
{
char sno[512];
strcpy(sno, get_sno_str(acptr));

/* send the target user's modes */
sendto_one(sptr, rpl_str(RPL_WHOISMODES),
me.name, parv[0], name,
get_mode_str(acptr), sno[1] == 0 ? "" : sno);
}
if ((acptr == sptr) || IsAnOper(sptr))
{
sendto_one(sptr, rpl_str(RPL_WHOISHOST),
me.name, parv[0], acptr->name,
user->realhost, user->ip_str ? user->ip_str : "");
}
if (IsARegNick(acptr))
sendto_one(sptr, rpl_str(RPL_WHOISREGNICK), me.name, parv[0], name);

found = 1;
mlen = strlen(me.name) + strlen(parv[0]) + 10 + strlen(name);
for (len = 0, *buf = '\0', lp = user->channel; lp; lp = lp->next)
{
chptr = lp->chptr;
showchannel = 0;
if (ShowChannel(sptr, chptr))
showchannel = 1;
#ifndef SHOW_SECRET
if (IsAnOper(sptr) && !SecretChannel(chptr))
#else
if (IsAnOper(sptr))
#endif
showchannel = 1;
if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr))
showchannel = 0;
if (IsServices(acptr) && !IsNetAdmin(sptr) && !IsSAdmin(sptr))
showchannel = 0;
if (acptr == sptr)
showchannel = 1;
/* Hey, if you are editting here... don't forget to change the webtv w_whois ;p. */
if (showchannel)
{
long access;
if (len + strlen(chptr->chname) > (size_t)BUFSIZE - 4 - mlen)
{
sendto_one(sptr,
":%s %d %s %s :%s",
me.name,
RPL_WHOISCHANNELS,
parv[0], name, buf);
*buf = '\0';
len = 0;
}
#ifdef SHOW_SECRET
if (IsAnOper(sptr)
#else
if (IsNetAdmin(sptr)
#endif
&& SecretChannel(chptr) && !IsMember(sptr, chptr))
*(buf + len++) = '?';
if (acptr->umodes & UMODE_HIDEWHOIS && !IsMember(sptr, chptr)
&& IsAnOper(sptr))
*(buf + len++) = '!';
access = get_access(acptr, chptr);
#ifdef PREFIX_AQ
if (access & CHFL_CHANOWNER)
*(buf + len++) = '~';
else if (access & CHFL_CHANPROT)
*(buf + len++) = '&';
else
#endif
if (access & CHFL_CHANOP)
*(buf + len++) = '@';
else if (access & CHFL_HALFOP)
*(buf + len++) = '%';
else if (access & CHFL_VOICE)
*(buf + len++) = '+';
if (len)
*(buf + len) = '\0';
(void)strcpy(buf + len, chptr->chname);
len += strlen(chptr->chname);
(void)strcat(buf + len, " ");
len++;
}
}
if (buf[0] != '\0')
sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), me.name, parv[0], name, buf);
if (!(IsULine(acptr) && !IsOper(sptr) && HIDE_ULINES))
sendto_one(sptr, rpl_str(RPL_WHOISSERVER),
me.name, parv[0], name, user->server,
a2cptr ? a2cptr->info : "*Not On This Net*");
if (user->away)
sendto_one(sptr, rpl_str(RPL_AWAY), me.name,
parv[0], name, user->away);
/* makesure they aren't +H (we'll also check
before we display a helpop or IRCD Coder msg)
-- codemastr */
if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsNetAdmin(acptr))
strlcat(buf, "an IRC Operator - Network Administrator", sizeof buf);
else if (IsSAdmin(acptr))
strlcat(buf, "an IRC Operator - Services Administrator", sizeof buf);
else if (IsAdmin(acptr) && !IsCoAdmin(acptr))
strlcat(buf, "an IRC Operator - Server Administrator", sizeof buf);
else if (IsCoAdmin(acptr))
strlcat(buf, "an IRC Operator - Technical Administrator", sizeof buf);
else if (IsServices(acptr))
strlcat(buf, "a Network Service", sizeof buf);
else if (IsOper(acptr))
strlcat(buf, "an IRC Operator", sizeof buf);
else
strlcat(buf, "a Prizma Bot Systems", sizeof buf);
if (buf[0])
sendto_one(sptr,
rpl_str(RPL_WHOISOPERATOR), me.name,
parv[0], name, buf);
}
if (IsHelpOp(acptr) && !hideoper && !user->away)
sendto_one(sptr, rpl_str(RPL_WHOISHELPOP), me.name, parv[0], name);
if (acptr->umodes & UMODE_BOT)
sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name, ircnetwork);
if (acptr->umodes & UMODE_SECURE)
sendto_one(sptr, rpl_str(RPL_WHOISSECURE), me.name, parv[0], name,
"is using a Secure Connection");
if (!BadPtr(user->swhois) && !hideoper)
sendto_one(sptr, ":%s %d %s %s :%s",
me.name, RPL_WHOISSPECIAL, parv[0],
name, acptr->user->swhois);
/*
* Fix /whois to not show idle times of
* global opers to anyone except another
* global oper or services.
* -CodeM/Barubary
*/
if (MyConnect(acptr))
sendto_one(sptr, rpl_str(RPL_WHOISIDLE),
me.name, parv[0], name,
TStime() - acptr->last, acptr->firsttime);
}
if (!found)
sendto_one(sptr, err_str(ERR_NOSUCHNICK),
me.name, parv[0], nick);
if (p)
p[-1] = ',';
}
sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]);
return 0;
}

kırmızı yazıyla yazılı olan Prizma nın yerine Server adınızı yazın böylelikle botlarınızın whoisi ;

irc.prizma.gen.tr nin koruma botu SentineL inki gibi olacaktır.


SentineL is
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
* Koruma Bot
SentineL is using modes +iwghrsOxWt +kcfvGqso
SentineL is connecting from
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
80.93.217.27
SentineL is a registered nick
SentineL on @#zurna @#ankara @#istanbul @#sanal @#prizma @#ayna @#Sohbet @#muhabbet @#klavye @#izmir @#ayva @#aşk
SentineL using irc.PrizmA.Gen.Tr PrizmA.Gen.Tr & PrizmA.Gen.Tr
SentineL is a Prizma Bot Systems
SentineL is available for help.
SentineL has been idle 1hr 40mins 2secs, signed on Tue Mar 20 12:53:34
SentineL End of /WHOIS list.

************************************************** ******

/ircops komutunda Serverdeki oper olan botların nickleri gözükmesin diye bir soru hatırlar gibiyim ama tam emin olmadığımdan onu açıklamadım merak eden varsa onuda yazabilirim.Umarım işinize yarar.

 
Alıntı ile Cevapla

 

Etiketler
systems, bot


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık