Merhaba,
• Herzaman olduğu gibi yine ve yeniden bir kullanıcının isteği üzerine idi.. :) olduğu gibi mesajımı kopyalıyorum umarım işinize yarar.
• Bence o düzenlemeyle uğraşmayın az önce konuyu görünce Sky-Dancer, arkadaşımızın yapmış olduğu RandomQuit modülünü OPER ve ADMIN seviyesin de olan kişiler için düzenledim yapmanız gerekenler aşağıda ki adımları izlemek olacaktır.
Kod :
char *CikisListesi[] = {
"Buraya normal kullanıcıların çıkış mesajını belirtiniz",
};
Kod :
char *OperCikisListesi[] = {
"Buraya ise, Oper ve adminlerin çıkış mesajlarını belirtiniz",
};
NOT: Mesajları çoğaltmak için aynı mantıkla devam edebilirsiniz.
randomquit.c modülü;
Kod :
/*
* RandomQuit Modülü -> Yapımcı : Sky-Dancer
* Yapılması Gerekenler:
* -> modül içinden CikisListesi değişkeni Çıkış listesini dilediğiniz gibi ayarlayınız.
* -> Modülü Diğer Modüller Gibi Kurunuz.
*/
/*
* Son Düzenleme; Entrance
* Böyle bir Modülü kullanıcılar ile buluşturduğu için kendisine teşekkür ediyorum.
* Son olarak, Modülü Oper/admin seviyesin de olan kişiler için düzenledim umuyorum ki, bu durumdan kendisi Hoşnut kalır.
*/
#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 _WIN32
#include "version.h"
#endif
char *CikisListesi[] = {
"Buraya normal kullanıcıların çıkış mesajını belirtiniz
};
char *OperCikisListesi[] = {
"Buraya ise, Oper ve adminlerin çıkış mesajlarını belirtiniz"
};
#define CMD_QUIT "Quit"
DLLFUNC int over_quit(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]);
DLLFUNC int over_quits(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]);
static Cmdoverride *OvrQuit = NULL;
static ModuleInfo *Module_RandomQuit;
ModuleHeader MOD_HEADER(RandomQuit) = {
"RandomQuit",
"Random Quit Mesajı (By Sky-Dancer)",
"Random Quit Mesajı (By Sky-Dancer)",
"3.2-b8-1",
NULL
};
DLLFUNC int MOD_TEST(RandomQuit)(ModuleInfo *modinfo) {
return MOD_SUCCESS;
}
DLLFUNC int MOD_INIT(RandomQuit)(ModuleInfo *modinfo) {
Module_RandomQuit=modinfo;
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(RandomQuit)(int module_load) {
int ret=MOD_SUCCESS;
OvrQuit = CmdoverrideAdd(Module_RandomQuit->handle, CMD_QUIT, over_quit);
OvrQuit = CmdoverrideAdd(Module_RandomQuit->handle, CMD_QUIT, over_quits);
if (!OvrQuit)
ret=MOD_FAILED;
return ret;
}
DLLFUNC int MOD_UNLOAD(RandomQuit)(int module_unload) {
return MOD_SUCCESS;
}
DLLFUNC int over_quit(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]) {
int Secim;
char Mesajimiz[64];
if (IsULine(sptr) || IsServer(sptr) || IsOper(sptr))
return CallCmdoverride(ovr, cptr, sptr, parc, parv);
// if (MyClient(sptr)) {
if (IsPerson(sptr)) {
srand(time(NULL));
Secim = rand()%(sizeof(CikisListesi)/sizeof(*CikisListesi));
strcpy(Mesajimiz, CikisListesi[Secim]);
return exit_client(cptr, sptr, sptr, Mesajimiz);
}
return CallCmdoverride(ovr, cptr, sptr, parc, parv);
}
DLLFUNC int over_quits(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]) {
int Secims;
char Mesajimizi[64];
if (IsULine(sptr) || IsServer(sptr) && !IsOper(sptr))
return CallCmdoverride(ovr, cptr, sptr, parc, parv);
// if (MyClient(sptr)) {
if (IsPerson(sptr)) {
srand(time(NULL));
Secims = rand()%(sizeof(OperCikisListesi)/sizeof(*OperCikisListesi));
strcpy(Mesajimizi, OperCikisListesi[Secims]);
return exit_client(cptr, sptr, sptr, Mesajimizi);
}
return CallCmdoverride(ovr, cptr, sptr, parc, parv);
}
“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş.