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




5Beğeni(ler)

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 17 Aralık 2009, 11:40   #1
Çevrimdışı
Unreal3.2.3 m_quit.c cıkıs mesajı toplam bağlantı süresi.


sohbet


m_quit.c

Kod;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* * Unreal Internet Relay Chat Daemon, src/modules/m_quit.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 DLLFUNC int m_quit(aClient *cptr, aClient *sptr, int parc, char *parv[]); /* Place includes here */ #define MSG_QUIT "QUIT" /* QUIT */ #define TOK_QUIT "," /* 44 */ ModuleHeader MOD_HEADER(m_quit) = { "quit", /* Name of module */ "$Id: m_quit.c,v 1.1.6.6 2005/03/13 21:03:15 syzop Exp $", /* Version */ "command /quit", /* Short description of module */ "3.2-b8-1", NULL }; /* This is called on module init, before Server Ready */ DLLFUNC int MOD_INIT(m_quit)(ModuleInfo *modinfo) { /* * We call our add_Command crap here */ add_CommandX(MSG_QUIT, TOK_QUIT, m_quit, 1, M_UNREGISTERED|M_USER|M_VIRUS); MARK_AS_OFFICIAL_MODULE(modinfo); return MOD_SUCCESS; } /* Is first run when server is 100% ready */ DLLFUNC int MOD_LOAD(m_quit)(int module_load) { return MOD_SUCCESS; } /* Called when module is unloaded */ DLLFUNC int MOD_UNLOAD(m_quit)(int module_unload) { if (del_Command(MSG_QUIT, TOK_QUIT, m_quit) < 0) { sendto_realops("Failed to delete commands when unloading %s", MOD_HEADER(m_quit).name); } return MOD_SUCCESS; } /* ** m_quit ** parv[0] = sender prefix ** parv[1] = comment */ char saat[1024]; DLLFUNC int m_quit(aClient *cptr, aClient *sptr, int parc, char *parv[]) { char *ocomment = (parc > 1 && parv[1]) ? parv[1] : parv[0]; static char comment[TOPICLEN + 1]; Membership *lp; if (!IsServer(cptr) && IsPerson(sptr)) { #ifdef STRIPBADWORDS int blocked = 0; #endif int n; char *s = comment; Hook *tmphook; if (STATIC_QUIT) if ((TStime() - sptr->firsttime) > 86400) ircsprintf(saat, "%s - Bağlantı süresi: %d gün %d sa %d dk %d sn", STATIC_QUIT, ((TStime() - sptr->firsttime) / 86400), (((TStime() - sptr->firsttime) % 86400) / 3600), ((((TStime() - sptr->firsttime) % 86400) % 3600) / 60), (((((TStime() - sptr->firsttime) % 86400) % 3600) % 60) % 60)); else if ((TStime() - sptr->firsttime) > 3600) ircsprintf(saat, "%s - Bağlantı süresi: %d sa %d dk %d sn", STATIC_QUIT, (((TStime() - sptr->firsttime) / 3600)), (((TStime() - sptr->firsttime) % 3600) / 60), ((((TStime() - sptr->firsttime) % 3600) % 60) % 60)); else if ((TStime() - sptr->firsttime) > 60) ircsprintf(saat, "%s - Bağlantı süresi: %d dk %d sn", STATIC_QUIT, ((TStime() - sptr->firsttime) / 60), ((TStime() - sptr->firsttime) % 60)); else ircsprintf(saat, "%s", STATIC_QUIT); return exit_client(cptr, sptr, sptr, saat); if (IsVirus(sptr)) return exit_client(cptr, sptr, sptr, "Client exited"); if (!prefix_quit || strcmp(prefix_quit, "no")) s = ircsprintf(comment, "%s ", BadPtr(prefix_quit) ? "Quit:" : prefix_quit); #ifdef STRIPBADWORDS ocomment = (char *)stripbadwords_quit(ocomment, &blocked); if (blocked) ocomment = parv[0]; #endif n = dospamfilter(sptr, ocomment, SPAMF_QUIT, NULL); if (n == FLUSH_BUFFER) return n; if (n < 0) ocomment = parv[0]; if (!IsAnOper(sptr) && ANTI_SPAM_QUIT_MSG_TIME) if (sptr->firsttime+ANTI_SPAM_QUIT_MSG_TIME > TStime()) ocomment = parv[0]; /* Strip color codes if any channel is +S, use nick as reason if +c. */ if (IsPerson(sptr) && (strchr(ocomment, '\003'))) { unsigned char filtertype = 0; /* 1=filter, 2=block, highest wins. */ for (lp = sptr->user->channel; lp; lp = lp->next) { if (lp->chptr->mode.mode & MODE_NOCOLOR) { filtertype = 2; break; } if (lp->chptr->mode.mode & MODE_STRIP) { if (!filtertype) filtertype = 1; } } if (filtertype == 1) { ocomment = StripColors(ocomment); if (*ocomment == '\0') ocomment = parv[0]; } else if (filtertype == 2) ocomment = parv[0]; } /* (strip color codes) */ for (tmphook = Hooks[HOOKTYPE_PRE_LOCAL_QUIT]; tmphook; tmphook = tmphook->next) { ocomment = (*(tmphook->func.pcharfunc))(sptr, ocomment); if (!ocomment) { ocomment = parv[0]; break; } } strncpy(s, ocomment, TOPICLEN - (s - comment)); comment[TOPICLEN] = '\0'; return exit_client(cptr, sptr, sptr, comment); } else { return exit_client(cptr, sptr, sptr, ocomment); } }

m_quit.c

Kod;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* * Unreal Internet Relay Chat Daemon, src/modules/m_quit.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 DLLFUNC int m_quit(aClient *cptr, aClient *sptr, int parc, char *parv[]); /* Place includes here */ #define MSG_QUIT "QUIT" /* QUIT */ #define TOK_QUIT "," /* 44 */ ModuleHeader MOD_HEADER(m_quit) = { "quit", /* Name of module */ "$Id: m_quit.c,v 1.1.6.6 2005/03/13 21:03:15 syzop Exp $", /* Version */ "command /quit", /* Short description of module */ "3.2-b8-1", NULL }; /* This is called on module init, before Server Ready */ DLLFUNC int MOD_INIT(m_quit)(ModuleInfo *modinfo) { /* * We call our add_Command crap here */ add_CommandX(MSG_QUIT, TOK_QUIT, m_quit, 1, M_UNREGISTERED|M_USER|M_VIRUS); MARK_AS_OFFICIAL_MODULE(modinfo); return MOD_SUCCESS; } /* Is first run when server is 100% ready */ DLLFUNC int MOD_LOAD(m_quit)(int module_load) { return MOD_SUCCESS; } /* Called when module is unloaded */ DLLFUNC int MOD_UNLOAD(m_quit)(int module_unload) { if (del_Command(MSG_QUIT, TOK_QUIT, m_quit) < 0) { sendto_realops("Failed to delete commands when unloading %s", MOD_HEADER(m_quit).name); } return MOD_SUCCESS; } /* ** m_quit ** parv[0] = sender prefix ** parv[1] = comment */ char saat[1024]; DLLFUNC int m_quit(aClient *cptr, aClient *sptr, int parc, char *parv[]) { char *ocomment = (parc > 1 && parv[1]) ? parv[1] : parv[0]; static char comment[TOPICLEN + 1]; Membership *lp; if (!IsServer(cptr) && IsPerson(sptr)) { #ifdef STRIPBADWORDS int blocked = 0; #endif int n; char *s = comment; Hook *tmphook; if (STATIC_QUIT) if ((TStime() - sptr->firsttime) > 86400) ircsprintf(saat, "%s - Bağlantı süresi: %d gün %d sa %d dk %d sn", STATIC_QUIT, ((TStime() - sptr->firsttime) / 86400), (((TStime() - sptr->firsttime) % 86400) / 3600), ((((TStime() - sptr->firsttime) % 86400) % 3600) / 60), (((((TStime() - sptr->firsttime) % 86400) % 3600) % 60) % 60)); else if ((TStime() - sptr->firsttime) > 3600) ircsprintf(saat, "%s - Bağlantı süresi: %d sa %d dk %d sn", STATIC_QUIT, (((TStime() - sptr->firsttime) / 3600)), (((TStime() - sptr->firsttime) % 3600) / 60), ((((TStime() - sptr->firsttime) % 3600) % 60) % 60)); else if ((TStime() - sptr->firsttime) > 60) ircsprintf(saat, "%s - Bağlantı süresi: %d dk %d sn", STATIC_QUIT, ((TStime() - sptr->firsttime) / 60), ((TStime() - sptr->firsttime) % 60)); else ircsprintf(saat, "%s", STATIC_QUIT); return exit_client(cptr, sptr, sptr, saat); if (IsVirus(sptr)) return exit_client(cptr, sptr, sptr, "Client exited"); if (!prefix_quit || strcmp(prefix_quit, "no")) s = ircsprintf(comment, "%s ", BadPtr(prefix_quit) ? "Quit:" : prefix_quit); #ifdef STRIPBADWORDS ocomment = (char *)stripbadwords_quit(ocomment, &blocked); if (blocked) ocomment = parv[0]; #endif n = dospamfilter(sptr, ocomment, SPAMF_QUIT, NULL); if (n == FLUSH_BUFFER) return n; if (n < 0) ocomment = parv[0]; if (!IsAnOper(sptr) && ANTI_SPAM_QUIT_MSG_TIME) if (sptr->firsttime+ANTI_SPAM_QUIT_MSG_TIME > TStime()) ocomment = parv[0]; /* Strip color codes if any channel is +S, use nick as reason if +c. */ if (IsPerson(sptr) && (strchr(ocomment, '\003'))) { unsigned char filtertype = 0; /* 1=filter, 2=block, highest wins. */ for (lp = sptr->user->channel; lp; lp = lp->next) { if (lp->chptr->mode.mode & MODE_NOCOLOR) { filtertype = 2; break; } if (lp->chptr->mode.mode & MODE_STRIP) { if (!filtertype) filtertype = 1; } } if (filtertype == 1) { ocomment = StripColors(ocomment); if (*ocomment == '\0') ocomment = parv[0]; } else if (filtertype == 2) ocomment = parv[0]; } /* (strip color codes) */ for (tmphook = Hooks[HOOKTYPE_PRE_LOCAL_QUIT]; tmphook; tmphook = tmphook->next) { ocomment = (*(tmphook->func.pcharfunc))(sptr, ocomment); if (!ocomment) { ocomment = parv[0]; break; } } strncpy(s, ocomment, TOPICLEN - (s - comment)); comment[TOPICLEN] = '\0'; return exit_client(cptr, sptr, sptr, comment); } else { return exit_client(cptr, sptr, sptr, ocomment); } }


Konu SaLTaNaT tarafından (18 Aralık 2009 Saat 00:52 ) değiştirilmiştir. Sebep: Hata düzeltilmistir.
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Alt 17 Aralık 2009, 18:52   #2
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Denediniz mi bu kodu? hata vermediyse veya uyarı vermediyse garip bir olay
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

çünkü şöyle bir sorun var,
char *saat[1024];
bu tanımı "BU KOD İÇİN" yaparsan hatalı bir işlem olur.
Bunun yerine,
char saat[1024];
bunu yaparsan sorun çıkartmayacaktır..

iyi Çalışmalar..

  Alıntı ile Cevapla

Alt 17 Aralık 2009, 18:53   #3
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Kendim kullanıyorum aktif calısıyor , o yüzden paylastım hata vermedi ama doğrudur olabilir
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Kullanıcak arakadaslar siz ; Sky-Dancer ın dedigi gibi

Kod;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
char saat[1024];

olarak kullanırsınız hata verir ise.


Konu SaLTaNaT tarafından (17 Aralık 2009 Saat 18:58 ) değiştirilmiştir.
  Alıntı ile Cevapla

Alt 17 Aralık 2009, 19:15   #4
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




SaLTaNaT Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Kendim kullanıyorum aktif calısıyor , o yüzden paylastım hata vermedi ama doğrudur olabilir
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Kullanıcak arakadaslar siz ; Sky-Dancer ın dedigi gibi

Kod;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
char saat[1024];

olarak kullanırsınız hata verir ise.

şimdi aslında senin char *saat[1024];
ile yaptığın şey, 1024 lük char dizisi halinde pointer (bir çeşit array) tanımlamak.. Yani 1024 x ... lık bir karakterler grubu oluşturmak..
hiç derlerken warning vermiyor mu ?

  Alıntı ile Cevapla

Alt 17 Aralık 2009, 19:24   #5
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Demeye çalıştığım şu; Sizde hata vermemiş olabilir. ama 64 bit bir işletim sisteminde veya Windows da derlendiğinde %90 hata verecektir. Çünkü;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
m_quit.c:102: warning: passing argument 1 of âircsprintfâ from incompatible pointer type m_quit.c:104: warning: passing argument 1 of âircsprintfâ from incompatible pointer type m_quit.c:106: warning: passing argument 1 of âircsprintfâ from incompatible pointer type m_quit.c:108: warning: passing argument 1 of âircsprintfâ from incompatible pointer type m_quit.c:109: warning: passing argument 4 of âexit_clientâ from incompatible pointer type

Kısa özet : birbirine uyumsuz tipleri kullanmışsın (char *[] -> char*)

iyi Çalışmalar..

  Alıntı ile Cevapla

Alt 17 Aralık 2009, 20:18   #6
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Haklısın
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

  Alıntı ile Cevapla

Alt 03 Şubat 2010, 01:47   #7
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Ayrıntılı bir sekilde anlatabilecek arkadaslar varsa sevinirim.

SaygıLar

  Alıntı ile Cevapla

Alt 03 Şubat 2010, 02:47   #8
Çevrimdışı
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




1. Yukardaki Kodu Kopyala Text'in içine at "Farklı kaydet" sonra isim verirken "m_quit.c" olarak kaydet.
2. Ftp'ye gir "Unreal3.2/src/modules" 'e at
3. Telnete gir "cd Unreal3.2"
4. "make custommodule MODULEFILE=m_quit" yaz
5. "unrealircd.conf" 'u aç
6. loadmodule "src/modules/m_quit.so";
7. "unrealircd.conf" u at "./unreal rehash" "./unreal restart" yap.

Hatırladıgım kadaryla modül kurulumu..

  Alıntı ile Cevapla

Alt 03 Şubat 2010, 18:21   #9
Çevrimiçi
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Sadece static quit lerde cikiyor client exit icin eklemek icinde

if (IsVirus(sptr))
return exit_client(cptr, sptr, sptr, "Client exited");

altina ekleyebilirsiniz

  Alıntı ile Cevapla

Alt 03 Şubat 2010, 19:21   #10
Çevrimdışı
SaW
SaW - ait Kullanıcı Resmi (Avatar)
Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.




Bu kodu ben yazmıştım. Öncesinde c ve c++ dilleriyle çok fazla iştigalim olmadığından böyle ufak tefek sorunların çıkması normaldir de paylaşan arkadaşın sanki kendisi yazmış gibi paylaşması tuhaf geldi. Yanlış anlaşılmasın çok çok önemli bir kod ya da çok çok uğraş verilerek hazırlanmış birşey değil, niyetim görgüsüzlük yapmak da değil ama yine de insan biraz saygı bekliyor..

  Alıntı ile Cevapla

Cevapla

Etiketler
bağlantı, baglanti, cikis, cıkıs, mesaji, mesajı, mquitc, suresi, süresi, toplam, unreal32

Seçenekler
Stil

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
m_sure - Bağlantı süresi modülü SaW Hazır_kodlar 10 16 Ekim 2011 11:05
Cıkıs Bağlantı süresi Nasıl eklerim? SeydiCan Unreal IRCd 4 14 Ocak 2011 17:28
IRCServices Toplam Online Süresi Sorunu Acil Bakarmısınız Arkadaşlar. yiLmaz691 IRCServices 1 07 Ocak 2011 18:33
Toplam Online Süresi.. 7610 mIRC Scripting Sorunları 5 22 Aralık 2007 13:53