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

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Hazır_kodlar (https://www.ircforumlari.net/hazir_kodlar/)
-   -   Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi. (https://www.ircforumlari.net/hazir_kodlar/306097-unreal32-m_quitc-cikis-mesaji-toplam-baglanti-suresi.html)

SaLTaNaT 17 Aralık 2009 11:40

Unreal3.2.3 m_quit.c cıkıs mesajı toplam bağlantı süresi.
 
m_quit.c

Kod;
Kod:

/*
 *  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);
 }
}


Sky-Dancer 17 Aralık 2009 18:52

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 :)
çü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..

SaLTaNaT 17 Aralık 2009 18:53

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 :)

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

Kod;
Kod:

char saat[1024];
olarak kullanırsınız hata verir ise.

Sky-Dancer 17 Aralık 2009 19:15

Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.
 
Alıntı:

SaLTaNaT Nickli Üyeden Alıntı (Mesaj 881569)
Kendim kullanıyorum aktif calısıyor , o yüzden paylastım hata vermedi ama doğrudur olabilir :)

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

Kod;
Kod:

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 ?

Sky-Dancer 17 Aralık 2009 19:24

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:

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..

SaLTaNaT 17 Aralık 2009 20:18

Cevap: Unreal3.2* m_quit.c cıkıs mesajı toplam bağlantı süresi.
 
Haklısın :)

Buzsohbet 03 Şubat 2010 01:47

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

Cihandar 03 Şubat 2010 02:47

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..

toXic 03 Şubat 2010 18:21

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

SaW 03 Şubat 2010 19:21

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..


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk