IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 20 Şubat 2009, 23:49   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
bilgi.c




arkadaşlar bu bilgi modülünü , değişiklikleri belirlediğim bir nickin özeline gönderecek şekilde ayarlayabilir miyiz? belirlediğimiz odaya gönderiyor bilindiği üzre giriş çıkışları mod değişimleri vs..vs.. leri. bunu belirlediğimiz bir nicke göndertebilir miyiz kanala değilde?

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Alt 21 Şubat 2009, 05:30   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: bilgi.c




kullanmis oldugun modulu buraya kopyalarmisin.

 
Alıntı ile Cevapla

Alt 21 Şubat 2009, 11:08   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: bilgi.c




/*Lütfen Asagidaki Verecegim Codeleri unrealircd.conf
Dosyaniza Ekleyiniz..
chansno
{
// msgtype privmsg;

channel "#Bilgi-1" {
joins; parts; kicks; mode-changes; topics;
};

channel "#Bilgi-2" {
nickchanges; connects; disconnects; server-connects; squits;
};
};

*/
#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

typedef struct _conf_operflag OperFlag;
typedef struct _chansnoflag ChanSnoFlag;

struct _conf_operflag
{
long flag;
char *name;
};

struct _chansnoflag
{
ChanSnoFlag *prev, *next;
char *channel;
long flags;
};

extern ConfigEntry *config_find_entry(ConfigEntry *, char *);
extern OperFlag *config_binary_flags_search(OperFlag *table, char *cmd, int size);

#define MSG_CHANSNO "CHANSNO"
#define TOK_CHANSNO "CR"
#define MyMod ModChanSno->handle
#define CHSNO_TABLESIZE sizeof(_ChanSnoFlags)/sizeof(_ChanSnoFlags[0])
#define MaxSize (sizeof(msgbuf) - strlen(msgbuf) - 1)

#define ircstrdup(x,y) if (x) MyFree(x); if (!y) x = NULL; else x = strdup(y)
#define IsParam(x) (parc > (x) && !BadPtr(parv[(x)]))
#define IsNotParam(x) (parc <= (x) || BadPtr(parv[(x)]))
#define DelHook(x) if (x) HookDel(x); x = NULL
#define DelCommand(x) if (x) CommandDel(x); x = NULL

/* Messages types */

#define MT_PRIVMSG 0x00
#define MT_NOTICE 0x01
#define MsgType (msgtype == MT_PRIVMSG ? "PRIVMSG" : "NOTICE")

/* Channel server notice masks */

#define CHSNO_CONNECT 0x0001
#define CHSNO_DISCONNECT 0x0002
#define CHSNO_NICKCHANGE 0x0004
#define CHSNO_JOIN 0x0008
#define CHSNO_PART 0x0010
#define CHSNO_KICK 0x0020
#define CHSNO_CHANMODE 0x0040
#define CHSNO_SCONNECT 0x0080
#define CHSNO_SQUIT 0x0100
#define CHSNO_TOPIC 0x0200

/* This MT be alphabetized */
OperFlag _ChanSnoFlags[] =
{
{ CHSNO_CONNECT, "connects" },
{ CHSNO_DISCONNECT, "disconnects" },
{ CHSNO_JOIN, "joins" },
{ CHSNO_KICK, "kicks" },
{ CHSNO_CHANMODE, "mode-changes" },
{ CHSNO_NICKCHANGE, "nickchanges" },
{ CHSNO_PART, "parts" },
{ CHSNO_SCONNECT, "server-connects" },
{ CHSNO_SQUIT, "squits" },
{ CHSNO_TOPIC, "topics" }
};

static Command *AddCommand(char *msg, char *token, int (*func)());
DLLFUNC int m_chansno(aClient *cptr, aClient *sptr, int parc, char *parv[]);
DLLFUNC int test_chansno(ConfigFile *, ConfigEntry *, int, int *);
DLLFUNC int conf_chansno(ConfigFile *, ConfigEntry *, int);
DLLFUNC int rehash_chansno();

DLLFUNC int cb_mode(aClient *, aClient *, aChannel *, char *, char *, TS, int);
DLLFUNC int cb_connect(aClient *);
DLLFUNC int cb_quit(aClient *, char *);
DLLFUNC int cb_join(aClient *, aClient *, aChannel *, char *[]);
DLLFUNC int cb_kick(aClient *, aClient *, aClient *, aChannel *, char *);
DLLFUNC int cb_nickchange(aClient *, char *);
DLLFUNC int cb_part(aClient *, aClient *, aChannel *, char *);
DLLFUNC int cb_server_connect(aClient *);
DLLFUNC int cb_server_quit(aClient *);
DLLFUNC int cb_topic();

ModuleInfo *ModChanSno = NULL;
Command *CmdChanSno = NULL;
ChanSnoFlag *ConfChanSno;
Hook *HookConfTest, *HookConfRun, *HookConfRehash;
Hook *HookMode, *HookConnect, *HookQuit, *HookJoin;
Hook *HookKick, *HookNickChange, *HookPart, *HookServerConnect;
Hook *HookServerQuit, *HookTopic;
static char msgbuf[BUFSIZE+1];
u_int msgtype = MT_PRIVMSG;

ModuleHeader MOD_HEADER(chansno)
= {
"bilgi.c",
"$Id: bilgi.c chat services sohbet hizmetleri",
"chat services sohbet hizmetleri",
"3.2-b8-1",
NULL
};

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;
}

// ================================================== ===============
// Functions related to loading/unloading configuration
// ================================================== ===============

static void InitConf()
{
ConfChanSno = NULL;
msgtype = MT_PRIVMSG;
}

static void FreeConf()
{
ChanSnoFlag *c;
ListStruct *next;

for (c = ConfChanSno; c; c = (ChanSnoFlag *) next)
{
next = (ListStruct *) c->next;
DelListItem(c, ConfChanSno);
MyFree(c->channel);
MyFree(c);
}
}

// ================================================== ===============
// Module functions
// ================================================== ===============

DLLFUNC int MOD_TEST(chansno)(ModuleInfo *modinfo)
{
ModChanSno = modinfo;
HookConfTest = HookAddEx(MyMod, HOOKTYPE_CONFIGTEST, test_chansno);

return MOD_SUCCESS;
}

DLLFUNC int MOD_INIT(chansno)(ModuleInfo *modinfo)
{
ModChanSno = modinfo;

InitConf();

CmdChanSno = AddCommand(MSG_CHANSNO, TOK_CHANSNO, m_chansno);
HookConfRun = HookAddEx(MyMod, HOOKTYPE_CONFIGRUN, conf_chansno);
HookConfRehash = HookAddEx(MyMod, HOOKTYPE_REHASH, rehash_chansno);

if (!CmdChanSno)
return MOD_FAILED;

return MOD_SUCCESS;
}

DLLFUNC int MOD_LOAD(userauth)(int module_load)
{
HookMode = HookAddEx(MyMod, HOOKTYPE_LOCAL_CHANMODE, cb_mode);
HookConnect = HookAddEx(MyMod, HOOKTYPE_LOCAL_CONNECT, cb_connect);
HookQuit = HookAddEx(MyMod, HOOKTYPE_LOCAL_QUIT, cb_quit);
HookJoin = HookAddEx(MyMod, HOOKTYPE_LOCAL_JOIN, cb_join);
HookKick = HookAddEx(MyMod, HOOKTYPE_LOCAL_KICK, cb_kick);
HookNickChange = HookAddEx(MyMod, HOOKTYPE_LOCAL_NICKCHANGE, cb_nickchange);
HookPart = HookAddEx(MyMod, HOOKTYPE_LOCAL_PART, cb_part);
HookServerConnect = HookAddEx(MyMod, HOOKTYPE_SERVER_CONNECT, cb_server_connect);
HookServerQuit = HookAddEx(MyMod, HOOKTYPE_SERVER_QUIT, cb_server_quit);
HookTopic = HookAddEx(MyMod, HOOKTYPE_LOCAL_TOPIC, cb_topic);

return MOD_SUCCESS;
}

DLLFUNC int MOD_UNLOAD(m_chansno)(int module_unload)
{
DelHook(HookTopic);
DelHook(HookServerQuit);
DelHook(HookServerConnect);
DelHook(HookPart);
DelHook(HookNickChange);
DelHook(HookKick);
DelHook(HookJoin);
DelHook(HookQuit);
DelHook(HookConnect);
DelHook(HookMode);

DelHook(HookConfRehash);
DelHook(HookConfRun);
DelHook(HookConfTest);
DelCommand(CmdChanSno);

FreeConf();
return MOD_SUCCESS;
}

// ================================================== ===============
// Config file interfacing
// ================================================== ===============

DLLFUNC int rehash_chansno()
{
FreeConf();
InitConf();

return 1;
}

DLLFUNC int test_chansno(ConfigFile *cf, ConfigEntry *ce, int type, int *errs)
{
ConfigEntry *cep, *cepp;
int errors = 0;

if (type != CONFIG_MAIN)
return 0;

if (!strcmp(ce->ce_varname, "chansno"))
{
for (cep = ce->ce_entries; cep; cep = cep->ce_next)
{
if (!cep->ce_varname)
{
config_error("%s:%i: blank chansno item",
cep->ce_fileptr->cf_filename,
cep->ce_varlinenum);
errors++;
continue;
}
if (!cep->ce_vardata)
{
config_error("%s:%i: chansno::%s item without value",
cep->ce_fileptr->cf_filename,
cep->ce_varlinenum, cep->ce_varname);
errors++;
continue;
}
if (!strcmp(cep->ce_varname, "channel"))
{
if (!cep->ce_entries)
{
config_error("%s:%i: chansno::channel without contents",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum);
errors++;
continue;
}
for (cepp = cep->ce_entries; cepp; cepp = cepp->ce_next)
{
if (!cepp->ce_varname)
{
config_error("%s:%i: chansno::channel item without variable name",
cepp->ce_fileptr->cf_filename, cepp->ce_varlinenum);
errors++;
continue;
}
if (!config_binary_flags_search(_ChanSnoFlags, cepp->ce_varname, CHSNO_TABLESIZE))
{
config_error("%s:%i: unknown chansno::channel flag '%s'",
cepp->ce_fileptr->cf_filename, cepp->ce_varlinenum,
cepp->ce_varname);
errors++;
}
}
}
else if (!strcmp(cep->ce_varname, "msgtype"))
{
if (!strcmp(cep->ce_vardata, "privmsg"))
;
else if (!strcmp(cep->ce_vardata, "notice"))
;
else
{
config_error("%s:%i: unknown chansno::msgtype '%s'",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum,
cep->ce_varname);
errors++;
}
}
else
{
config_error("%s:%i: unknown directive chansno::%s",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum, cep->ce_varname);
errors++;
}
}
*errs = errors;
return errors ? -1 : 1;
}
else
return 0;
}

DLLFUNC int conf_chansno(ConfigFile *cf, ConfigEntry *ce, int type)
{
ConfigEntry *cep, *cepp;
OperFlag *ofp;
ChanSnoFlag *ca;

if (type != CONFIG_MAIN)
return 0;

if (!strcmp(ce->ce_varname, "chansno"))
{
for (cep = ce->ce_entries; cep; cep = cep->ce_next)
{
if (!strcmp(cep->ce_varname, "channel"))
{
ca = MyMallocEx(sizeof(ChanSnoFlag));
ircstrdup(ca->channel, cep->ce_vardata);

for (cepp = cep->ce_entries; cepp; cepp = cepp->ce_next)
{
if ((ofp = config_binary_flags_search(_ChanSnoFlags, cepp->ce_varname, CHSNO_TABLESIZE)))
ca->flags |= ofp->flag;
}

AddListItem(ca, ConfChanSno);
}
else if (!strcmp(cep->ce_varname, "msgtype"))
{
if (!strcmp(cep->ce_vardata, "privmsg"))
msgtype = MT_PRIVMSG;
else if (!strcmp(cep->ce_vardata, "notice"))
msgtype = MT_NOTICE;
}
}

return 1;
}

return 0;
}

// ================================================== =============
// Functions used by m_chansno
// ================================================== =============

static char *get_flag_names(long flags)
{
u_int i, found = 0;

memset(&msgbuf, 0, sizeof msgbuf);

for (i = 0; i < CHSNO_TABLESIZE; i++)
if (flags & _ChanSnoFlags[i].flag)
{
if (found)
strncat(msgbuf, ", ", MaxSize);
else
found = 1;

strncat(msgbuf, _ChanSnoFlags[i].name, MaxSize);
}

if (!strlen(msgbuf))
strcpy(msgbuf, "<None>");

return msgbuf;
}

static void stats_chansno_channels(aClient *sptr)
{
ChanSnoFlag *c;

for (c = ConfChanSno; c; c = c->next)
sendto_one(sptr, ":%s %i %s :Kanal %s: %s",
me.name, RPL_TEXT, sptr->name,
c->channel, get_flag_names(c->flags));

sendto_one(sptr, rpl_str(RPL_ENDOFSTATS), me.name, sptr->name, 'S');
}

static void stats_chansno_config(aClient *sptr)
{
ChanSnoFlag *c;

sendto_one(sptr, ":%s %i %s :msgtype: %s",
me.name, RPL_TEXT, sptr->name, MsgType);
sendto_one(sptr, rpl_str(RPL_ENDOFSTATS), me.name, sptr->name, 'S');
}

// ================================================== =============
// m_chansno
// parv[0]: sender prefix
// parv[1]: option
// parv[2]: server name (optional)
// ================================================== =============

DLLFUNC int m_chansno(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
if (!IsPerson(sptr))
return -1;

if (!IsAnOper(sptr))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return -1;
}

if (!IsParam(1))
{
sendto_one(sptr, ":%s NOTICE %s :Usage:",
me.name, sptr->name);
sendto_one(sptr, ":%s NOTICE %s : /chansno <option> [<servername>]",
me.name, sptr->name);
sendto_one(sptr, ":%s NOTICE %s :Options:",
me.name, sptr->name);
sendto_one(sptr, ":%s NOTICE %s : list: displays the chansno::channel block list",
me.name, sptr->name);
sendto_one(sptr, ":%s NOTICE %s : config: shows the rest of chansno configuration",
me.name, sptr->name);
return 0;
}

if (IsParam(2))
{
if (hunt_server_token(cptr, sptr, MSG_CHANSNO, TOK_CHANSNO,
"%s", 2, parc, parv) != HUNTED_ISME)
return 0;
}

if (!strcasecmp(parv[1], "list"))
stats_chansno_channels(sptr);
else if (!strcasecmp(parv[1], "config"))
stats_chansno_config(sptr);
else
{
sendto_one(sptr, ":%s NOTICE %s :Hatali parametre %s."
" Valid options are: list | config",
me.name, sptr->name, parv[1]);
return -1;
}

return 0;
}

// ================================================== =============
// Interface for sending notifications
// ================================================== =============

#define SendBuf_simple \
if ((sendto = find_channel(c->channel, NullChn)) != NullChn) \
sendto_channel_butone(&me, &me, sendto, ":%s %s %s :%s", \
me.name, MsgType, sendto->chname, msgbuf)

#define SendBuf_channel \
if (!find_sno_channel(chptr) && (sendto = find_channel(c->channel, NullChn)) != NullChn) \
sendto_channel_butone(&me, &me, sendto, ":%s %s %s :[%s] %s", \
me.name, MsgType, sendto->chname, chptr->chname, msgbuf)

static u_int find_sno_channel(aChannel *chptr)
{
ChanSnoFlag *c;

for (c = ConfChanSno; c; c = c->next)
if (!strcasecmp(chptr->chname, c->channel))
return 1;

return 0;
}

static void SendNotice_simple(long type)
{
ChanSnoFlag *c;
aChannel *sendto;

for (c = ConfChanSno; c; c = c->next)
{
if (c->flags & type)
SendBuf_simple;
}
}

static void SendNotice_channel(aChannel *chptr, long type)
{
ChanSnoFlag *c;
aChannel *sendto;

for (c = ConfChanSno; c; c = c->next)
{
if (c->flags & type)
SendBuf_channel;
}
}

DLLFUNC int cb_mode(aClient *cptr, aClient *sptr, aChannel *chptr,
char *modebuf, char *parabuf, TS sendts, int samode)
{
snprintf(msgbuf, BUFSIZE, " %s Nick'i: mod degistirdi %s%s%s",
sptr->name, modebuf,
BadPtr(parabuf) ? "" : " ",
BadPtr(parabuf) ? "" : parabuf);

SendNotice_channel(chptr, CHSNO_CHANMODE);
return 0;
}

DLLFUNC int cb_connect(aClient *sptr)
{
snprintf(msgbuf, BUFSIZE, "Sunucuya giris yapildi. Port: %d: Nick: %s Ip add: (%s) [%s] %s%s%s%s",
sptr->listener->port, sptr->name, sptr->user->username, sptr->user->realhost,
sptr->class ? sptr->class->name : "",
#ifdef USE_SSL
IsSecure(sptr) ? "[secure " : "",
IsSecure(sptr) ? SSL_get_cipher((SSL *)sptr->ssl) : "",
IsSecure(sptr) ? "]" : "");
#else
"", "", "");
#endif

SendNotice_simple(CHSNO_CONNECT);
return 0;
}

DLLFUNC int cb_quit(aClient *sptr, char *comment)
{
snprintf(msgbuf, BUFSIZE, "Sunucudan ayrildi: %s!%s@%s (%s)",
sptr->name, sptr->user->username,
sptr->user->realhost, comment);

SendNotice_simple(CHSNO_DISCONNECT);
return 0;
}

DLLFUNC int cb_join(aClient *cptr, aClient *sptr, aChannel *chptr, char *parv[])
{
snprintf(msgbuf, BUFSIZE, " %s [%s@%s] Nicki %s kanalina giris yapti.",
sptr->name, sptr->user->username, sptr->user->realhost,
chptr->chname);

SendNotice_channel(chptr, CHSNO_JOIN);
return 0;
}

DLLFUNC int cb_kick(aClient *cptr, aClient *sptr, aClient *who, aChannel *chptr, char *comment)
{
snprintf(msgbuf, BUFSIZE, "Kanalinda %s kickledi %s nickini (nick: %s)",
sptr->name, who->name, comment);

SendNotice_channel(chptr, CHSNO_KICK);
return 0;
}

DLLFUNC int cb_nickchange(aClient *sptr, char *nick)
{
snprintf(msgbuf, BUFSIZE, " %s (%s@%s) Nick degistirdi. Yeni Nicki: %s",
sptr->name, sptr->user->username, sptr->user->realhost, nick);

SendNotice_simple(CHSNO_NICKCHANGE);
return 0;
}

DLLFUNC int cb_part(aClient *cptr, aClient *sptr, aChannel *chptr, char *comment)
{
snprintf(msgbuf, BUFSIZE, " %s Nick'i (%s@%s) %s kanalindan ayrildi. Part mesaji (%s)",
sptr->name, sptr->user->username, sptr->user->realhost,
chptr->chname, comment ? comment : sptr->name);

SendNotice_channel(chptr, CHSNO_PART);
return 0;
}

DLLFUNC int cb_server_connect(aClient *sptr)
{
if (!MyConnect(sptr))
return 0;

snprintf(msgbuf, BUFSIZE, "Sunucuya giris yapildi. Port: %d: Nick: %s Ip add: (%s) [%s] %s%s%s%s",
sptr->listener->port, sptr->name, sptr->info,
sptr->class ? sptr->class->name : "",
#ifdef USE_SSL
IsSecure(sptr) ? "[secure " : "",
IsSecure(sptr) ? SSL_get_cipher((SSL *)sptr->ssl) : "",
IsSecure(sptr) ? "]" : "",
#else
"", "", "",
#endif

#ifdef ZIP_LINKS
IsZipped(sptr) ? " [zip]" : "");
#else
"");
#endif

SendNotice_simple(CHSNO_SCONNECT);
return 0;
}

DLLFUNC int cb_server_quit(aClient *sptr)
{
if (!MyConnect(sptr))
return 0;

/* The hook supports no reason :-( */
snprintf(msgbuf, BUFSIZE, "Sunucudan ayrildi: %s",
sptr->name);

SendNotice_simple(CHSNO_SQUIT);
return 0;
}

DLLFUNC int cb_topic(aClient *cptr, aClient *sptr, aChannel *chptr, char *topic)
{
snprintf(msgbuf, BUFSIZE, "Kanalinda %s nicki topic degistirdi. Yeni topic: %s",
sptr->name, topic);

SendNotice_channel(chptr, CHSNO_SQUIT);
return 0;
}

 
Alıntı ile Cevapla

Alt 26 Şubat 2009, 13:51   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: bilgi.c




bu konuda bir fikri olan var mıı?

 
Alıntı ile Cevapla

Alt 27 Şubat 2009, 08:02   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: bilgi.c




Ups, hata verdi, deneyip yazayim kodu
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Cevapla

Etiketler
bilgic


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


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Proteinlerle ilgili bilgi, Protein hakkında bilgi PySSyCaT Sağlık Köşesi 0 24 Ocak 2015 23:15
!bilgi sil Goemon mIRC Scripting Sorunları 1 20 Temmuz 2012 04:13
!biLgi kanjius mIRC Scripting Sorunları 3 14 Temmuz 2010 20:03