UnrealIRCd Random QUIT mesajı

Aytac

Developer
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
373
Tepkime puanı
17
Puanları
18
Konum
ircland
Web sitesi
www.ircalem.net
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);
}
 
Üst