All pastes #167522 Raw Edit

yadmin

public cpp v1 · immutable
·published 2006-09-12 02:09 UTC
rendered paste body
#include "yadhed.pwn"#include "yadcom.pwn"ProcessCommand(playerid, cmd[], help){	new len; //= strfind(cmd, " ");	//if (len == -1) len = strlen(cmd);	for (new i = 0; i < sizeof (gFuncNames); i++)	{		#if defined YS_ALT_NAMES_ON			if (gAltNames[i][0] ? (len = strlen(gAltNames[i])) && strcmp(cmd, gAltNames[i], true, len) == 0 : (len = strlen(gFuncNames[i])) && strcmp(cmd, gFuncNames[i], true, len) == 0)			{			    // Command entered			    if (gFuncLevel[i] <= gUserLevel[playerid])			    {					if ((cmd[len] == 0 && CallFunc(i, playerid, "", help)) || (cmd[len] == 32 && CallFunc(i, playerid, cmd[len + 1], help))) return 1;			    }			    else			    {			        if (gComSet & YS_COMSET_USE_WARNINGS)			        {			            SendClientMessage(playerid, 0xFF0000FF, "*** You cannot use that command");			        }			    }			    break;			}			//if ((gAltNames[i][0] ? (strcmp(cmd, gAltNames[i], true, len) == 0 ? true : false) : (strcmp(cmd, gFuncNames[i], true, len) == 0 ? true : false)) && (gFuncLevel[i] <= gUserLevel[playerid]) && ((cmd[len] == 0 && CallFunc(i, playerid, "", help)) || (cmd[len] == 32 && CallFunc(i, playerid, cmd[len + 1], help)))) return 1;			//if (((gAltNames[i][0] == 0 && strcmp(cmd, gFuncNames[i], true, len) == 0) || (strcmp(cmd, gAltNames[i], true, len) == 0)) && ((cmd[len] == 0 && CallFunc(i, playerid, "", help)) || (cmd[len] == 32 && CallFunc(i, playerid, cmd[len + 1], help)))) return 1;		#else			#if defined YS_ALT_NAMES_OFF				len = strlen(gFuncNames[i]);				//printf("%s %s %d", gFuncNames[i], cmd, i);				if (strcmp(cmd, gFuncNames[i], true, len) == 0) // return 1;				{					// Command entered				    if (gFuncLevel[i] <= gUserLevel[playerid])				    {						if ((cmd[len] == 0 && CallFunc(i, playerid, "", help)) || (cmd[len] == 32 && CallFunc(i, playerid, cmd[len + 1], help))) return 1;				    }				    else				    {				        if (gComSet & YS_COMSET_USE_WARNINGS)				        {				            SendClientMessage(playerid, 0xFF0000FF, "*** You cannot use that command");				        }				    }			    }			#else			    if (((gComSet & YS_COMSET_USE_ALT) && (gAltNames[i][0] != 0)) ? (len = strlen(gAltNames[i])) && strcmp(cmd, gAltNames[i], true, len) == 0 : (len = strlen(gFuncNames[i])) && strcmp(cmd, gFuncNames[i], true, len) == 0)				//if (((gAltNames[i][0] == 0 && strcmp(cmd, gFuncNames[i], true, len) == 0) || (strcmp(cmd, gAltNames[i], true, len) == 0))) return 1;				{				    // Command entered				    if (gFuncLevel[i] <= gUserLevel[playerid])				    {						if ((cmd[len] == 0 && CallFunc(i, playerid, "", help)) || (cmd[len] == 32 && CallFunc(i, playerid, cmd[len + 1], help))) return 1;				    }				    else				    {				        if (gComSet & YS_COMSET_USE_WARNINGS)				        {				            SendClientMessage(playerid, 0xFF0000FF, "*** You cannot use that command");				            return 1;				        }				    }			    }			#endif		#endif	}	return 0;}public OnFilterScriptInit(){	ReadINI();	#if !defined YS_LOGGING_OFF		saveloop();		//gLastSave = mktime();	#endif	#if !defined YS_INTERNAL_OFF		SetInternalComms();	#endif	/*#if !defined YS_CHAT_OFF		for (new i = 0; i < MAX_PLAYERS; i++)		{			gChanColor[i] = (random(255) << 24) + (random(255) << 16) + (random(255) << 8) + 0xAA;		}	#endif*/	YS_LOG_CODE(YS_ON_FILTER_SCRIPT_INIT, "OnFilterScriptInit()")	print("\n====================================");	print("|                                  |");	print("|      Y_Less's server script      |");	print("|      ----------------------      |");	print("|                                  |");	print("| By Alex \"Y_Less\" Cole - (c) 2006 |");	print("|                                  |");	print("====================================\n");	return 1;}#if !defined YS_INTERNAL_OFFSetInternalComms(){	#if !defined YS_INTERNALS_ON		if (gIntenalSettings & YS_INT_USE)		{	#endif			#if !defined YS_USE_PREFIX_OFF				#if !defined YS_USE_PREFIX_ON					YS_INT_SET_CODE(gComSet, YS_COMSET_USE_PREFIX, YS_INT_PREFIX)				#else					YS_INT_QUICK_CODE(YS_INT_PREFIX)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_PREFIX)			#endif			#if !defined YS_ALT_NAMES_OFF				#if !defined YS_ALT_NAMES_ON					YS_INT_SET_CODE(gComSet, YS_COMSET_USE_PREFIX, YS_INT_ALT)				#else					YS_INT_QUICK_CODE(YS_INT_ALT)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_ALT)			#endif			#if !defined YS_LOGGING_OFF				#if !defined YS_LOGGING_ON					YS_INT_SET_CODE(gRecArray, YS_USE_LOGGING, YS_INT_LOGGING)				#else					YS_INT_QUICK_CODE(YS_INT_LOGGING)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_LOGGING)			#endif			#if !defined YS_MESSAGES_OFF				#if !defined YS_MESSAGES_ON					YS_INT_SET_CODE(gMessageDat, MS_BITS_USE, YS_INT_MESSAGES)				#else					YS_INT_QUICK_CODE(YS_INT_MESSAGES)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_MESSAGES)			#endif			#if !defined YS_SECURE_COMMANDS_OFF				#if !defined YS_SECURE_COMMANDS_ON					YS_INT_SET_CODE(gUseSecure, YS_SEC_USE, YS_INT_SECURE)				#else					YS_INT_QUICK_CODE(YS_INT_SECURE)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_SECURE)			#endif			#if !defined YS_CHAT_OFF				#if !defined YS_CHAT_ON					YS_INT_SET_CODE(gChatSettings, YS_USE_CHAT, YS_INT_CHAT)				#else					YS_INT_QUICK_CODE(YS_INT_CHAT)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_CHAT)			#endif			#if !defined YS_USERS_OFF				#if !defined YS_USERS_ON					YS_INT_SET_CODE(gUserSettings, YU_USE_USERS, YS_INT_USERS)				#else					YS_INT_QUICK_CODE(YS_INT_USERS)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_USERS)			#endif			#if !defined YS_INDIVIDUAL_FILES_OFF				#if !defined YS_INDIVIDUAL_FILES_ON					YS_INT_SET_CODE(gUserSettings, YU_USE_INDIVIDUAL, YS_INT_INDI)				#else					YS_INT_QUICK_CODE(YS_INT_INDI)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_INDI)			#endif			#if !defined YS_INTERNAL_OFF				#if !defined YS_INTERNAL_ON					YS_INT_SET_CODE(gIntenalSettings, YS_INT_USE, YS_INT_INT)				#else					YS_INT_QUICK_CODE(YS_INT_INT)				#endif			#else				YS_INT_UNSET_CODE(YS_INT_INT)			#endif				#if !defined YS_INTERNALS_ON		}		else		{			gIntenalSettings = 0;		}	#endif}#endifpublic OnFilterScriptExit(){	YS_LOG_CODE(YS_ON_FILTER_SCRIPT_EXIT, "OnFilterScriptExit()")	return 1;}ReadINI(){	new File:inifile;	if (fexist(INI_NAME))	{		inifile = fopen(INI_NAME, io_read);		if (inifile)		{			#if !defined YS_LOGGING_OFF				new igdone;				new fldone;			#endif			#if !defined YS_MESSAGES_OFF				new mc = 0;				new intext = 0;			#endif			new str[MAX_INI_LINE];			new group = 0;			while (fread(inifile, str))			{				// Read line first				if (str[0] == '[')				{					StripNL(str);					INI_GROUP(LOGGING)					else INI_GROUP(MESSAGES)					else INI_GROUP(MEMBERLEVELS)					else INI_GROUP(COMMANDLEVELS)					else INI_GROUP(ALTNAMES)					else INI_GROUP(SETTINGS)					else INI_GROUP(IGNORECOMMANDS)					else INI_GROUP(FILTERCOMMANDS)				}				else				{					switch (group)					{						#if !defined YS_LOGGING_OFF							case YS_INI_LOGGING:							{								INI_GET_B(OnFilterScriptInit,			YS_ON_FILTER_SCRIPT_INIT,		18, gRecArray)								else INI_GET_B(OnFilterScriptExit,		YS_ON_FILTER_SCRIPT_EXIT,		18, gRecArray)								else INI_GET_B(OnPlayerRequestClass,	YS_ON_PLAYER_REQUEST_CLASS,		20, gRecArray)								else INI_GET_B(OnPlayerRequestSpawn,	YS_ON_PLAYER_REQUEST_SPAWN,		20, gRecArray)								else INI_GET_B(OnPlayerConnect,			YS_ON_PLAYER_CONNECT,			15, gRecArray)								else INI_GET_B(OnPlayerDisconnect,		YS_ON_PLAYER_DISCONNECT,		18, gRecArray)								else INI_GET_B(OnPlayerSpawn,			YS_ON_PLAYER_SPAWN,				13, gRecArray)								else INI_GET_B(OnPlayerDeath,			YS_ON_PLAYER_DEATH,				13, gRecArray)								else INI_GET_B(OnVehicleSpawn,			YS_ON_VEHICLE_SPAWN,			14, gRecArray)								else INI_GET_B(OnVehicleDeath,			YS_ON_VEHICLE_DEATH,			14, gRecArray)								else INI_GET_B(OnPlayerText,			YS_ON_PLAYER_TEXT,				12, gRecArray)								else INI_GET_B(OnPlayerPrivmsg,			YS_ON_PLAYER_PRIVMSG,			15, gRecArray)								else INI_GET_B(OnPlayerCommandText,		YS_ON_PLAYER_COMMAND_TEXT,		19, gRecArray)								else INI_GET_B(OnPlayerInfoChange,		YS_ON_PLAYER_INFO_CHANGE,		18, gRecArray)								else INI_GET_B(OnPlayerEnterVehicle,	YS_ON_PLAYER_ENTER_VEHICLE,		20, gRecArray)								else INI_GET_B(OnPlayerExitVehicle,		YS_ON_PLAYER_EXIT_VEHICLE,		19, gRecArray)								else INI_GET_B(OnPlayerStateChange,		YS_ON_PLAYER_STATE_CHANGE,		19, gRecArray)								else INI_GET_B(OnPlayerEnterCheckpoint,	YS_ON_PLAYER_ENTER_CHECKPOINT,	23, gRecArray)								else INI_GET_B(OnPlayerLeaveCheckpoint,	YS_ON_PLAYER_LEAVE_CHECKPOINT,	23, gRecArray)							}						#endif						#if !defined YS_LOGGING_OFF || !defined YS_SECURE_COMMANDS_OFF							case YS_INI_IGNORECOMMANDS:							{								StripNL(str);								if (str[0])								{									if (igdone < MAX_SKIPPED_COMMANDS)									{										strmid(gIgnoredCommands[igdone], str, 0, strlen(str), YS_MAX_CMD_LENGTH);										igdone++;									}									else									{										print("YSS warning: Max ignored commands reached, some may not be ignored");									}								}							}							case YS_INI_FILTERCOMMANDS:							{								StripNL(str);								if (str[0])								{									if (fldone < MAX_SKIPPED_COMMANDS)									{										strmid(gFilteredCommands[fldone], str, 0, strlen(str), YS_MAX_CMD_LENGTH);										fldone++;									}									else									{										print("YSS warning: Max filtered commands reached, some may not be filtered");									}								}							}				        #endif				        #if !defined YS_MESSAGES_OFF							case YS_INI_MESSAGES:							{								if (!intext)								{									if (mc < YS_MAX_MESSAGES)									{										//INI_GET_B(Use, MS_TYPE_USE, 3, gMessages[mc][MS_TYPE])										INI_GET_B(Ignore, MS_TYPE_IGNORE, 6, gMessages[mc][MS_TYPE])										else if (strcmp(str, "Type", true, 4) == 0)										{											gMessages[mc][MS_TYPE] &= 0xFFFF0000;											gMessages[mc][MS_TYPE] += strval(ReturnINIValue(str[4]));										}										else INI_GET_H(Color, gMessages[mc][MS_INFO], 5)										else INI_GET_I(Time, gMessages[mc][MS_INFO], 4)										else INI_GET_B(Spawn, MS_BITS_MOTD_TYPE, 5, gMessageDat)										else if (strcmp(str, "Connect", true, 7) == 0) { if (strval(ReturnINIValue(str[7]))) { gMessageDat &= -1 ^ MS_BITS_MOTD_TYPE; } else { gMessageDat |= MS_BITS_MOTD_TYPE; }}										else INI_GET_B(Include, MS_BITS_MOTD_INC, 7, gMessageDat)										else if (strcmp(str, "Motd", true, 4) == 0)										{											gMessageDat &= 0xFFFFFF00;											if (strval(ReturnINIValue(str[4])))											{												gMessageDat |= mc & 0xFF;											}											else											{												gMessageDat |= 0xFF;											}										}										//else INI_GET_I(Count, gMessageCount, 5)										else if (strcmp(str, "Text", true, 4) == 0)										{											intext = 1;											//print("hi");										}									}									else									{										print("YSS warning: Max messages reached");										intext = -1;									}								}								else if (intext > 0)								{									if (str[0] > 0x20)// && str[0] != ' ')									{										//printf("%s %d %d", str, mc, intext);										StripNL(str);										switch (intext)										{											case 1:											{												//strmid(gMessages[mc][MS_TEXT_0], str, 0, MAX_INI_LINE);												format(gMessages[mc][MS_TEXT_0], MAX_INI_LINE, "%s", str);												//printf("stored? %s", gMessages[mc][MS_TEXT_0]);											}											case 2:											{												format(gMessages[mc][MS_TEXT_1], MAX_INI_LINE, "%s", str);											}											case 3:											{												format(gMessages[mc][MS_TEXT_2], MAX_INI_LINE, "%s", str);											}											case 4:											{												format(gMessages[mc][MS_TEXT_3], MAX_INI_LINE, "%s", str);											}											case 5:											{												format(gMessages[mc][MS_TEXT_4], MAX_INI_LINE, "%s", str);											}											default:											{												intext = -1;											}										}										intext++;									}									else									{										intext = 0;										mc++;									}								}							}							#endif						case YS_INI_MEMBERLEVELS:						{							new num[3];							new i, j;							i = GetININame(num, str);							j = strval(num);							if (j < MAX_LEVELS)							{								strmid(gLevelNames[j], ReturnINIValue(str[i]), 0, MAX_INI_LINE);								StripNL(gLevelNames[j]);							}							else							{								printf("YSS warning: Level title excedes maximum levels (%d)", MAX_LEVELS);						    }						}						case YS_INI_COMMANDLEVELS:						{							StripNL(str);							if (str[0])							{								new com[YS_MAX_CMD_LENGTH];								new i, j;								i = GetININame(com, str);								/*while (str[i] != ' ' && str[i] != '=' && str[i] != 0)								{									com[i] = str[i];									i++;								}*/								for (j = 0; j < sizeof (gFuncNames); j++)								{									if (strcmp(gFuncNames[j], com, true) == 0)									{										gFuncLevel[j] = strval(ReturnINIValue(str[i]));										break;									}								}								if (j == sizeof (gFuncNames)) printf("YSS warning: Could not find command for level: %s", com);								//printf("%d", ((gComSet & YS_COMSET_USE_ALT) && (gAltNames[j][0] != 0)) ? 27 : 11);							}						}						#if !defined YS_ALT_NAMES_OFF							case YS_INI_ALTNAMES:							{								StripNL(str);								if (str[0])								{									new com[YS_MAX_CMD_LENGTH];									new i, j;									i = GetININame(com, str);									/*while (str[i] != ' ' && str[i] != '=' && str[i] != 0)									{										com[i] = str[i];										i++;									}*/									while (str[i] == ' ' || str[i] == '=' || str[i] == '/') i++;									for (j = 0; j < sizeof (gFuncNames); j++)									{										if (strcmp(gFuncNames[j], com, true) == 0)										{											//if (strfind(str, "/", false, i) != -1) i++;											strmid(gAltNames[j], str, i, strlen(str));											break;										}									}									if (j == sizeof (gFuncNames)) printf("YSS warning: Could not find command for alt name: %s", com);									//printf("%d", ((gComSet & YS_COMSET_USE_ALT) && (gAltNames[j][0] != 0)) ? 27 : 11);								}							}						#endif						case YS_INI_SETTINGS:						{							INI_GET_B(CommandWarnings, YS_COMSET_USE_WARNINGS, 15, gComSet)							/*if (strcmp(str, "CommandWarnings", true, 15) == 0)							{								if (strval(ReturnINIValue(str[15])))								{								    gComSet |= 0x0000FF00;								}								else								{								    gComSet &= 0xFFFF00FF;								}							}*/							#if !defined YS_LOGGING_OFF								else INI_GET_S(DateFormat,			gDateFormat,			10)								else INI_GET_B(UseLogging,			YS_USE_LOGGING,			10, gRecArray)								else INI_GET_B(ExpandParameters,	YS_USE_EXPANDED_PARS,	16, gRecArray)								else INI_GET_B(NameParameters,		YS_USE_PAR_NAMING,		14, gRecArray)								else INI_GET_B(UseDailySaves,		YS_USE_DAILY_SAVES,		13,	gRecArray)								else INI_GET_I(SaveDelay,			gSaveDelay,				9)							#endif							#if !defined YS_USERS_OFF								else INI_GET_B(UseUsers, YU_USE_USERS, 8, gUserSettings)							#endif							/*#if !defined YS_INTERNAL_OFF								else INI_GET_B(gIntenalSettings, YS_INT_USE, , gIntenalSettings)							#endif*/							#if !defined YS_CHAT_OFF								else INI_GET_H(ChatColor, gChatColor, 9)								else INI_GET_B(UseChat, YS_USE_CHAT, 7, gChatSettings)							#endif							#if !defined YS_SECURE_COMMANDS_OFF								else INI_GET_B(UseSecure, YS_SEC_USE, 9, gUseSecure)								else INI_GET_B(RecSecure, YS_SEC_REC, 9, gUseSecure)							#endif							#if !defined YS_INTERNAL_OFF								else INI_GET_B(UseComms, YS_INT_USE, 8, gIntenalSettings)							#endif							#if !defined YS_ALT_NAMES_OFF								else INI_GET_B(UseAltNames, YS_COMSET_USE_ALT, 11, gComSet)								/*else if (strcmp(str, "UseAltNames", true, 11) == 0)								{									if (strval(ReturnINIValue(str[11])))									{									    gComSet |= 0x00FF0000;									}									else									{									    gComSet &= 0xFF00FFFF;									}								}*/							#endif							#if !defined YS_USE_PREFIX_OFF								else INI_GET_B(UsePrefix, YS_COMSET_USE_PREFIX, 9, gComSet)								/*else if (strcmp(str, "UsePrefix", true, 9) == 0)								{									if (strval(ReturnINIValue(str[9])))									{									    gComSet |= 0x000000FF;									}									else									{									    gComSet &= 0xFFFFFF00;									}								}*/								else if (strcmp(str, "Prefix", true, 6) == 0)								{									//gPrefix = ReturnINIValue(str[6]);									format(gPrefix, sizeof (gPrefix), "%s%s", strfind(str, "/", false, 6) == -1 ? "/" : "", ReturnINIValue(str[6]));									StripNL(gPrefix);								}								//INI_GET_S(Prefix, gPrefix, 6)							#endif							#if !defined YS_MESSAGES_OFF								else INI_GET_B(UseMessages, MS_BITS_USE, 11, gMessageDat)								else INI_GET_I(MessageDelay, gMessageDelay, 12)								/*else if (strcmp(str, "MessageDelay", true, 12) == 0)								{									gMessageDat &= -1 ^ MS_BITS_COUNT;									gMessageDat |= (strval(ReturnINIValue(str[12])) << 8) & MS_BITS_COUNT;								}*/								//printf("%s", gDateFormat);							#endif						}					}				}			}			#if !defined YS_MESSAGES_OFF				gMessageDat &= 0xFFFF00FF;				new c;				for (new i = 0; i < YS_MAX_MESSAGES; i++)				{					if (gMessages[i][MS_TEXT_0][0] != 0)					{						//printf("%s %d", gMessages[i][MS_TEXT_0], c);						c++;						//gMessageDat += 256; // (+= 1 << 8)					}				}				gMessageDat |= (c << 8) & MS_BITS_COUNT;				//printf("%d %d", gMessageDat, (gMessageDat & MS_BITS_COUNT) >>> 8);			#endif			print("YSS message: Settings loaded");		}		else		{			print("YSS warning: Could not read ini file, default settings loaded");		}	}	else	{	    print("YSS warning: Could not find ini file, default settings loaded");	}}StripNL(str[]){	new l = strlen(str) - 1;	if (l != -1 && (str[l] == '\n' || str[l] == '\r'))	{		str[l] = 0;		l--;		if (l != -1 && (str[l] == '\n' || str[l] == '\r'))		{			str[l] = 0;		}	}}GetININame(name[], str[]){	new i;	while (str[i] != ' ' && str[i] != '=' && str[i] != 0)	{		name[i] = str[i];		i++;	}	return i;}ReturnINIValue(string[]){	//#pragma unused ReturnINIValue	new retstr[MAX_INI_LINE] = "";	new i = 0, j;	j = strlen(string);	while ((string[i] == ' ' || string[i] == '=') && i < j)	{	    i++;	}	if (i < j)	{	    strmid(retstr, string, i, j);	}	return retstr;	/*new e = strfind(str, "=") + 1;	if (e == strlen(str)) return 0;	return strtok(str, e);*/}prename(){	new str[9];	#if !defined YS_USE_PREFIX_OFF		#if !defined YS_USE_PREFIX_ON			if (YS_COMSET_USE_PREFIX & gComSet)			{		#endif			//if (YS_COMSET_USE_PREFIX & gComSet)			//{				format(str, sizeof (str), "%s ", gPrefix[1]);			//}		//#else			//format(str, sizeof (str), "%s ", gPrefix[1]);		#if !defined YS_USE_PREFIX_ON			}		#endif	#endif	return str;}/*		prename()		{			new str[9];			format(str, sizeof (str), "%s ", gPrefix[1]);			return str;		}	#else		prename()		{			new str[9];			if (YS_COMSET_USE_PREFIX & gComSet)			{				format(str, sizeof (str), "%s ", gPrefix[1]);			}			return str;		}	#endif#else#endif*/comname(name[], num = -1){	new str[YS_MAX_CMD_LENGTH + 10];	#if defined YS_ALT_NAMES_OFF		//#define comname(%1) %1		if (num != -1) format(str, sizeof (str), "%s%s", prename(), gFuncNames[num]);		else format(str, sizeof (str), "%s%s", prename(), name);		return str;	#else		#if !defined YS_ALT_NAMES_ON			if (gComSet & YS_COMSET_USE_ALT)			{		#endif				if (num != -1)				{					format(str, sizeof (str), "%s%s", prename(), gAltNames[num][0] ? gAltNames[num] : gFuncNames[num]);					return str;				}				for (new i = 0; i < sizeof (gFuncNames); i++)				{					if (strcmp(name, gFuncNames[i]) == 0)					{						format(str, sizeof (str), "%s%s", prename(), gAltNames[i][0] ? gAltNames[i] : gFuncNames[i]);						return str;					}				}		#if !defined YS_ALT_NAMES_ON			}		#endif		format(str, sizeof (str), "%s%s", prename(), name);		return str;	#endif}#if !defined YS_USERS_OFF || !defined YS_CHAT_OFFIsInteger(string[]){	for (new i = 0, j = strlen(string); i < j; i++)	{	    if (string[i] > '9' || string[i] < '0') return 0;	}	return 1;}#endif#if !defined YS_USERS_OFFstrtok(string[], &index){	new length = strlen(string);	while ((index < length) && (string[index] <= ' '))	{		index++; // Strip leading spaces	}	new offset = index;	new result[32];	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof (result) - 1)))	{		result[index - offset] = string[index];		index++;	}	result[index - offset] = EOS;	while ((index < length) && (string[index] <= ' '))	{		index++; // Strip trailing spaces (required now)	}	return result;}MakeHash(str[]){	static charset[] = "#|NrT_^+=QMh`JdnSF<9ZzXjwEK¬¦IU8ay\\3bRgH[(C)2O06 Y-Less.com]$4%5Wk;@'xVuG7*!1\"£Pp{&l:i~DfvB}qtA,>?/";	static css = 99; //(size of ESCAPED charset string)	new target[PASS_LENGTH];	//new hash = 1;	//new i = 0;	//new b, c, d, f;	/*while ((str[i]) && (i < size))	{		hash %= str[i];		//f = ((b & c) | ((!b) & d));	}*/	new j = strlen(str);	new maxj = (((j + 16) / 16) * 16);	if (maxj > PASS_LENGTH - 1) maxj = PASS_LENGTH; // Limit length for errors	//new maxj2 = (j >> 3 + 1) << 3;	new sum = j;	new tmp[2] = 0;	for (new i = 0; i < maxj; i++)	{	    tmp[0] = (i >= j) ? ' ' : str[i];	    sum = (sum + strfind(charset, tmp) + 1) % css;	    //printf("%d, %d, %c", strfind(charset, tmp), sum, charset[sum]);	    target[i] = charset[sum];	}	target[maxj] = '\0';	return target;}SavePlayer(playerid, text[] = "", ban = -1, mute = -1, level = -1){	if (fexist(USER_FILE_INDEX))	{		new File:bla = fopen(USER_FILE_INDEX, io_read);		new File:temp = fopen("YU_TMP_FILE", io_write);		if (bla && temp)		{			new name[256];			GetPlayerName(playerid, name, sizeof (name));			new str[256];			while (fread(bla, str))			{				new idx = 0;				if (strcmp(strtok(str, idx), name) == 0)				{					StripNL(str);					format(name, sizeof (name), "%s %d", name, strval(strtok(str, idx)));					new num;					num = strval(strtok(str, idx));					if (ban == -1) ban = num;					num = strval(strtok(str, idx));					if (mute == -1) mute = num;					num = strval(strtok(str, idx));					if (level == -1) level = num;					format(name, sizeof (name), "%s %d %d %d", name, ban, mute, level);					if (text[0])					{						format(str, sizeof (str), "%s %s\r\n", name, text);					}					else					{						strmid(str, str, idx, strlen(str));						format(str, sizeof (str), "%s %s\r\n", name, str);					}				}				fwrite(temp, str);			}			fclose(temp);			fclose(bla);			if (fremove(USER_FILE_INDEX))			{				bla = fopen(USER_FILE_INDEX, io_write);				temp = fopen("YU_TMP_FILE", io_read);				while (fread(temp, str))				{					fwrite(bla, str);				}				fclose(bla);				fclose(temp);				fremove("YU_TMP_FILE");			}			else			{				return 0;			}		}		else		{			return 0;		}	}	else	{		return 0;	}	return 1;}#endif#if !defined YS_MESSAGES_OFF || !defined YS_CHAT_OFFhexval(string[]){	new m = 0;	if (string[0] == '0' && string[1] == 'x') m = 2;	new ret = 0;	for (new i = m, j = 28; i < 8 + m; i++, j -= 4)	{		new k = string[i];		if (k >= '0' && k <= '9')		{		    ret += (k - 0x30) << j;		}		else if (k >= 'A' && k <= 'F')		{		    ret += (k - 0x37) << j;		}		else if (k >= 'a' && k <= 'f')		{		    ret += (k - 0x57) << j;		}		else		{		    return 0;		}	}	return ret;}#endif#if !defined YS_MESSAGES_OFFMessageCheck(d = 255, playerid = INVALID_PLAYER_ID){	//print("hi");	static lastcall;	#if !defined YS_MESSAGES_ON		if (gMessageDat & MS_BITS_USE)		{	#endif			//print("hi");			if (mktime() - lastcall >= gMessageDelay)			{				// Display a message				//d = random((gMessageDat & MS_BITS_COUNT) >>> 8);				//printf("%d %d %d", d, gMessageDat & MS_BITS_COUNT, (gMessageDat & MS_BITS_COUNT) >>> 8);				//printf("%d %d %d %d", (MS_TYPE_IGNORE & gMessages[d][MS_TYPE]), gMessageDat & MS_BITS_MOTD, d, gMessageDat & MS_BITS_MOTD_INC);				//printf("%d", (MS_TYPE_IGNORE & gMessages[d][MS_TYPE]));				if (d == 255) while (d == 255 || ((gMessageDat & MS_BITS_MOTD) == d && !(gMessageDat & MS_BITS_MOTD_INC)) || (MS_TYPE_IGNORE & gMessages[d][MS_TYPE])) d = random((gMessageDat & MS_BITS_COUNT) >>> 8);				//{				if (playerid == INVALID_PLAYER_ID)				{					if (gMessages[d][MS_TYPE] & 0xFFFF)					{						GameTextForAll(gMessages[d][MS_TEXT_0], gMessages[d][MS_INFO] * 1000, gMessages[d][MS_TYPE] & 0xFFFF);					}					else					{						new c = gMessages[d][MS_INFO];						if (gMessages[d][MS_TEXT_0][0]) SendClientMessageToAll(c, gMessages[d][MS_TEXT_0]);						if (gMessages[d][MS_TEXT_1][0]) SendClientMessageToAll(c, gMessages[d][MS_TEXT_1]);						if (gMessages[d][MS_TEXT_2][0]) SendClientMessageToAll(c, gMessages[d][MS_TEXT_2]);						if (gMessages[d][MS_TEXT_3][0]) SendClientMessageToAll(c, gMessages[d][MS_TEXT_3]);						if (gMessages[d][MS_TEXT_4][0]) SendClientMessageToAll(c, gMessages[d][MS_TEXT_4]);					}				}				else				{					if (gMessages[d][MS_TYPE] & 0xFFFF)					{						GameTextForPlayer(playerid, gMessages[d][MS_TEXT_0], gMessages[d][MS_INFO] * 1000, gMessages[d][MS_TYPE] & 0xFFFF);					}					else					{						new c = gMessages[d][MS_INFO];						if (gMessages[d][MS_TEXT_0][0]) SendClientMessage(playerid, c, gMessages[d][MS_TEXT_0]);						if (gMessages[d][MS_TEXT_1][0]) SendClientMessage(playerid, c, gMessages[d][MS_TEXT_1]);						if (gMessages[d][MS_TEXT_2][0]) SendClientMessage(playerid, c, gMessages[d][MS_TEXT_2]);						if (gMessages[d][MS_TEXT_3][0]) SendClientMessage(playerid, c, gMessages[d][MS_TEXT_3]);						if (gMessages[d][MS_TEXT_4][0]) SendClientMessage(playerid, c, gMessages[d][MS_TEXT_4]);					}				}			}	#if !defined YS_MESSAGES_ON		}	#endif	lastcall = mktime();}#endif#if !defined YS_LOGGING_OFF || !defined YS_MESSAGES_OFFmktime(){	static days_of_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};	new hour, minute, second;	gettime(hour, minute, second);	new timestamp;	timestamp = second + minute * 60 + hour * 3600;	getdate(hour, minute, second);	if (((hour % 4 == 0) && (hour % 100 != 0)) || (hour % 400 == 0))	{		days_of_month[1] = 29;	}	else	{		days_of_month[1] = 28;	} 	if (minute > 1) { // No January Calculation, because its always the 0 past months		for (new i = 0; i < minute - 1; i++)		{			second += days_of_month[i];		}	}	timestamp += second * 86400;	// printf("Days this hour: %d",days_this_year);	for (new j = 1970; j < hour; j++)	{		timestamp += 31536000;		if (((hour % 4 == 0) && (hour % 100 != 0)) || (hour % 400 == 0)) timestamp += 86400; // Schaltjahr + 1 Tag	}	return timestamp;}#endif#if !defined YS_LOGGING_OFFyLog(string[]){	//new File:g_fLogFile;	if (g_fLogFile)	{		/*strcat(gTempBuf, MakeFormattedTime());		strcat(gTempBuf, ": ");		strcat(gTempBuf, string);		strcat(gTempBuf, "\r\n");	}	else	{*/		fwrite(g_fLogFile, MakeFormattedTime());		fwrite(g_fLogFile, ": ");		fwrite(g_fLogFile, string);		fwrite(g_fLogFile, "\r\n");	}	//new time = mktime();	//printf("%d %d %d %d", time, gLastSave, gSaveDelay, time - gLastSave);	if (mktime() - gLastSave >= gSaveDelay)	{		saveloop();	}	return 1;}saveloop(autos = 0){	static run = 0, day;	static str[32];	if (run)	{		if (g_fLogFile)		{			fwrite(g_fLogFile, MakeFormattedTime());			if (autos)			{				fwrite(g_fLogFile, ": Logs auto-saved\r\n");			}			else			{				fwrite(g_fLogFile, ": Logs saved\r\n");			}			fclose(g_fLogFile);		}		else		{			print("YSS error: No active log file, some logs may be missing");		}		new d;		getdate(d, d, d);		if ((gRecArray & YS_USE_DAILY_SAVES) && (d != day))		{			openlogfile(str, ": New file created\r\n", sizeof (str));			day = d;		}		else		{			g_fLogFile = fopen(str, io_append);			if (!g_fLogFile)			{				print("YSS error: Could not open log file, the server will not be logged");				print("            Type \"/ys save\" (or equivalent) to try again");			}		}	}	else	{		run = 1;		openlogfile(str, ": Server started\r\n", sizeof (str));		getdate(day, day, day);	}	gLastSave = mktime();}openlogfile(name[], str[], len){	strmid(name, MakeFormattedDate(""), 0, 10, len);	format(name, len, LOG_FILE_NAME, name);	g_fLogFile = fopen(name, io_append);	if (!g_fLogFile)	{		print("YSS error: Could not open log file, the server will not be logged");		print("            Type \"/ys save\" (or equivalent) to try again");	}	else	{		fwrite(g_fLogFile, "\r\n====================================\r\n");		fwrite(g_fLogFile, "|                                  |\r\n");		fwrite(g_fLogFile, "|      Y_Less's server script      |\r\n");		fwrite(g_fLogFile, "|      ----------------------      |\r\n");		fwrite(g_fLogFile, "|                                  |\r\n");		fwrite(g_fLogFile, "| By Alex \"Y_Less\" Cole - (c) 2006 |\r\n");		fwrite(g_fLogFile, "|                                  |\r\n");		fwrite(g_fLogFile, "====================================\r\n\r\n");		fwrite(g_fLogFile, MakeFormattedTime());		fwrite(g_fLogFile, str);	}}MakeFormattedTime(){	new str[9], h, m, s;	gettime(h, m, s);	format(str, sizeof (str), "%d:%02d:%02d", h, m, s);	return str;}MakeFormattedDate(split[]){	new str[11], d, m, y, j;	getdate(y, m, d);	if (strlen(gDateFormat) == 8) y %= 100;	/*{		case 10:		{			yf = "%s%04d";		}		case 8:		{			yf = "%s%02d";		}		default:		{			print("Invalid date format");			return str;		}	}*/	for (new i = 0; i < 3; i++)	{		if (gDateFormat[j] == 'd') format(str, sizeof (str), "%s%02d", str, d);		if (gDateFormat[j] == 'm') format(str, sizeof (str), "%s%02d", str, m);		if (gDateFormat[j] == 'y') format(str, sizeof (str), "%s%02d", str, y);		if (i < 2)		{			j = strfind(gDateFormat, ":", false, j) + 1;			strcat(str, split);		}	}	return str;}ReturnPlayerIDData(playerid){	new pdat[128];	if (IsPlayerConnected(playerid))	{		if (gRecArray & YS_USE_EXPANDED_PARS) // Change		{		    format(pdat, sizeof (pdat), "%d: %s", playerid, ReturnPlayerName(playerid));		}		else		{		    format(pdat, sizeof (pdat), "%d", playerid);		}	}	else	{		if (gRecArray & YS_USE_EXPANDED_PARS)		{			pdat = "-1: None";		}		else		{			pdat = "-1";		}	}	return pdat;}ReturnPlayerName(playerid){	new pname[MAX_PLAYER_NAME];	GetPlayerName(playerid, pname, sizeof (pname));	return pname;}#endifpublic OnPlayerRequestClass(playerid, classid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_REQUEST_CLASS, "OnPlayerRequestClass(%s%s, %s%d)", PAR_DAT(playerid), ID_DAT, PAR_DAT(classid), classid)	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);	return 1;}public OnPlayerRequestSpawn(playerid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_REQUEST_SPAWN, "OnPlayerRequestSpawn(%s%s)", PAR_DAT(playerid), ID_DAT)	return 1;}public OnPlayerConnect(playerid){	#if !defined YS_MESSAGES_OFF		#if !defined YS_MESSAGES_ON			if (gMessageDat & MS_BITS_USE)			{		#endif				new motd = gMessageDat & MS_BITS_MOTD;				if (!(gMessageDat & MS_BITS_MOTD_TYPE) && motd != 0xFF) MessageCheck(motd, playerid);				else YS_MESSAGE_CODE		#if !defined YS_MESSAGES_ON			}		#endif	#endif	YS_LOG_CODE(YS_ON_PLAYER_CONNECT, "OnPlayerConnect(%s%s)", PAR_DAT(playerid), ID_DAT)	#if !defined YS_LOGGING_OFF		gPlayersConnected++;	#endif	#if !defined YS_CHAT_OFF		gChannel[playerid] = -1;	#endif	return 1;}public OnPlayerDisconnect(playerid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_DISCONNECT, "OnPlayerDisconnect(%s%s)", PAR_DAT(playerid), ID_DAT)	#if !defined YS_CHAT_OFF		if (gChannel[playerid] != -1)		{			gChanInfo[gChannel[playerid]]--;			gChannel[playerid] = -1;		}	#endif	#if !defined YS_LOGGING_OFF		gPlayersConnected--	;		if (gPlayersConnected == 0)		{			saveloop(1);		}	#endif	return 1;}public OnPlayerSpawn(playerid){	#if !defined YS_MESSAGES_OFF		#if !defined YS_MESSAGES_ON			if (gMessageDat & MS_BITS_USE)			{		#endif				new motd = gMessageDat & MS_BITS_MOTD;				if ((gMessageDat & MS_BITS_MOTD_TYPE) && motd != 0xFF) MessageCheck(motd, playerid);				else YS_MESSAGE_CODE		#if !defined YS_MESSAGES_ON			}		#endif	#endif	YS_LOG_CODE(YS_ON_PLAYER_SPAWN, "OnPlayerSpawn(%s%s)", PAR_DAT(playerid), ID_DAT)	//dfb = INI afijo;;; * 4	return 1;}public OnPlayerDeath(playerid, killerid, reason){	YS_MESSAGE_CODE	#if !defined YS_LOGGING_OFF		static reasonnames[][RS_DAT_ENUM] =		{			{"0: UNKNOWN_DEATH_REASON",		"0"},			{"1: WEAPON_BRASSKNUCKLE",		"1"},			{"2: WEAPON_GOLFCLUB",			"2"},			{"3: WEAPON_NITESTICK",			"3"},			{"4: WEAPON_KNIFE",				"4"},			{"5: WEAPON_BAT",				"5"},			{"6: WEAPON_SHOVEL",			"6"},			{"7: WEAPON_POOLSTICK",			"7"},			{"8: WEAPON_KATANA",			"8"},			{"9: WEAPON_CHAINSAW",			"9"},			{"10: WEAPON_DILDO",			"10"},			{"11: WEAPON_DILDO2",			"11"},			{"12: WEAPON_VIBRATOR",			"12"},			{"13: WEAPON_VIBRATOR2",		"13"},			{"14: WEAPON_FLOWER",			"14"},			{"15: WEAPON_CANE",				"15"},			{"16: WEAPON_GRENADE",			"16"},			{"17: WEAPON_TEARGAS",			"17"},			{"18: WEAPON_MOLTOV",			"18"},			{"19: UNKNOWN_DEATH_REASON",	"19"},			{"20: UNKNOWN_DEATH_REASON",	"20"},			{"21: UNKNOWN_DEATH_REASON",	"21"},			{"22: WEAPON_COLT45",			"22"},			{"23: WEAPON_SILENCED",			"23"},			{"24: WEAPON_DEAGLE",			"24"},			{"25: WEAPON_SHOTGUN",			"25"},			{"26: WEAPON_SAWEDOFF",			"26"},			{"27: WEAPON_SHOTGSPA",			"27"},			{"28: WEAPON_UZI",				"28"},			{"29: WEAPON_MP5",				"29"},			{"30: WEAPON_AK47",				"30"},			{"31: WEAPON_M4",				"31"},			{"32: WEAPON_TEC9",				"32"},			{"33: WEAPON_RIFLE",			"33"},			{"34: WEAPON_SNIPER",			"34"},			{"35: WEAPON_ROCKETLAUNCHER",	"35"},			{"36: WEAPON_HEATSEEKER",		"36"},			{"37: WEAPON_FLAMETHROWER",		"37"},			{"38: WEAPON_MINIGUN",			"38"},			{"39: WEAPON_SATCHEL",			"39"},			{"40: WEAPON_BOMB",				"40"},			{"41: WEAPON_SPRAYCAN",			"41"},			{"42: WEAPON_FIREEXTINGUISHER",	"42"},			{"43: WEAPON_CAMERA",			"43"},			{"44: UNKNOWN_DEATH_REASON",	"44"},			{"45: UNKNOWN_DEATH_REASON",	"45"},			{"46: WEAPON_PARACHUTE",		"46"},			{"47: UNKNOWN_DEATH_REASON",	"47"},			{"48: UNKNOWN_DEATH_REASON",	"48"},			{"49: WEAPON_VEHICLE",			"49"},			{"50: UNKNOWN_DEATH_REASON",	"50"},			{"51: UNKNOWN_DEATH_REASON",	"51"},			{"52: UNKNOWN_DEATH_REASON",	"52"},			{"53: WEAPON_DROWN",			"53"},			{"54: WEAPON_COLLISION",		"54"}		};		/*static reasonnames[][] =		{			{"WEAPON_BRASSKNUCKLE"},			{"WEAPON_GOLFCLUB"},			{"WEAPON_NITESTICK"},			{"WEAPON_KNIFE"},			{"WEAPON_BAT"},			{"WEAPON_SHOVEL"},			{"WEAPON_POOLSTICK"},			{"WEAPON_KATANA"},			{"WEAPON_CHAINSAW"},			{"WEAPON_DILDO"},			{"WEAPON_DILDO2"},			{"WEAPON_VIBRATOR"},			{"WEAPON_VIBRATOR2"},			{"WEAPON_FLOWER"},			{"WEAPON_CANE"},			{"WEAPON_GRENADE"},			{"WEAPON_TEARGAS"},			{"WEAPON_MOLTOV"},			{"WEAPON_COLT45"},			{"WEAPON_SILENCED"},			{"WEAPON_DEAGLE"},			{"WEAPON_SHOTGUN"},			{"WEAPON_SAWEDOFF"},			{"WEAPON_SHOTGSPA"},			{"WEAPON_UZI"},			{"WEAPON_MP5"},			{"WEAPON_AK47"},			{"WEAPON_M4"},			{"WEAPON_TEC9"},			{"WEAPON_RIFLE"},			{"WEAPON_SNIPER"},			{"WEAPON_ROCKETLAUNCHER"},			{"WEAPON_HEATSEEKER"},			{"WEAPON_FLAMETHROWER"},			{"WEAPON_MINIGUN"},			{"WEAPON_SATCHEL"},			{"WEAPON_BOMB"},			{"WEAPON_SPRAYCAN"},			{"WEAPON_FIREEXTINGUISHER"},			{"WEAPON_CAMERA"},			{"WEAPON_PARACHUTE"},			{"WEAPON_VEHICLE"},			{"WEAPON_DROWN"},			{"WEAPON_COLLISION"}		};*/		/*if (gRecArray & YS_USE_EXPANDED_PARS)		{			YS_LOG_CODE(YS_ON_PLAYER_DEATH, "OnPlayerDeath(%s%s, %s%s, %s%d: %s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(killerid), ReturnPlayerIDData(killerid), PAR_DAT(reason), reason, reasonnames[reason])		}		else		{			YS_LOG_CODE(YS_ON_PLAYER_DEATH, "OnPlayerDeath(%s%s, %s%s, %s%d)", PAR_DAT(playerid), ID_DAT, PAR_DAT(killerid), ReturnPlayerIDData(killerid), PAR_DAT(reason), reason)		}*/		YS_LOG_CODE(YS_ON_PLAYER_DEATH, "OnPlayerDeath(%s%s, %s%s, %s%s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(killerid), ReturnPlayerIDData(killerid), PAR_DAT(reason), RS_DAT(reason))	#endif	return 1;}public OnVehicleSpawn(vehicleid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_VEHICLE_SPAWN, "OnVehicleSpawn(%s%d)", PAR_DAT(vehicleid), vehicleid)	return 1;}public OnVehicleDeath(vehicleid, killerid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_VEHICLE_DEATH, "OnVehicleDeath(%s%d, %s%s)", PAR_DAT(vehicleid), vehicleid, PAR_DAT(killerid), ReturnPlayerIDData(killerid))	return 1;}public OnPlayerText(playerid, text[]){	YS_MESSAGE_CODE	new i, j;	#pragma unused i, j	#if !defined YS_SECURE_COMMANDS_OFF		#if !defined YS_SECURE_COMMANDS_ON			if (gUseSecure & YS_SEC_USE)			{		#endif				while (text[i] < 0x41) i++;				#if !defined YS_ALT_NAMES_OFF					#if !defined YS_ALT_NAMES_ON						if (gComSet & YS_COMSET_USE_PREFIX)						{					#endif							if (strcmp(text[i], gPrefix[1], true, strlen(gPrefix) - 1) == 0) i += strlen(gPrefix);					#if !defined YS_ALT_NAMES_ON						}					#endif				#endif				for (j = 0; j < MAX_SKIPPED_COMMANDS; j++)				{					//printf("%d %d %s %s %s", i, j, text, gIgnoredCommands[j], gFilteredCommands[j])					if ((gIgnoredCommands[j][0] && strcmp(gIgnoredCommands[j], text[i], true, strlen(gIgnoredCommands[j])) == 0) || (gFilteredCommands[j][0] && strcmp(gFilteredCommands[j], text[i], true, strlen(gFilteredCommands[j])) == 0)) break;				}				/*if (j == MAX_SKIPPED_COMMANDS)				{					YS_LOG_CODE(YS_ON_PLAYER_TEXT, "OnPlayerText(%s%s, %s%s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(text[]), text)					#if defined YS_LOGGING_OFF						new str[256];					#endif					//return 1;					#if !defined YS_CHAT_OFF						j = gChannel[playerid];						new color = (j > -1 && j < sizeof (gChannel)) ? gChanColor[j] : gChatColor;					//#else						//new color = (GetPlayerColor(playerid) & 0xFFFFFF00) | 0xAA;						// Set the players text color alpha to AA					#endif					GetPlayerName(playerid, str, sizeof (str));					format(str, sizeof (str), "%s: %s", str, text);					for (i = 0; i < MAX_PLAYERS; i++)					{						if (IsPlayerConnected(i))						{							#if defined YS_CHAT_OFF								SendClientMessage(i, gChatColor, str);							#else								#if !defined YS_CHAT_ON									if (YS_USE_CHAT & gChatSettings)									{								#endif										if (gChannel[i] == j)										{											SendClientMessage(i, color, str);										}								#if !defined YS_CHAT_ON									}									else									{										SendClientMessage(i, color, str);									}								#endif							#endif*/														/*#if !defined YS_CHAT_OFF								#if !defined YS_CHAT_ON									if (!(YS_USE_CHAT & gChatSettings))									{									}									else									{										if (gChannel[i] == j)										{								#else								#endif							#endif							#if !defined YS_CHAT_OFF									}							#endif*/						//}					//}				//}				//#if !defined YS_LOGGING_OFF					//else if (gUseSecure & YS_SEC_REC)				if (j < MAX_SKIPPED_COMMANDS)				{					YS_LOG_CODE(YS_ON_PLAYER_TEXT, "OnPlayerText(%s%s, %s<security filtered>)", PAR_DAT(playerid), ID_DAT, PAR_DAT(text[]))					return 0;				}				/*#else					if (j == MAX_SKIPPED_COMMANDS)					{						return 1;					}*/				//#endif		#if !defined YS_SECURE_COMMANDS_ON			}		#endif	//#else	#endif	YS_LOG_CODE(YS_ON_PLAYER_TEXT, "OnPlayerText(%s%s, %s%s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(text[]), text)	#if !defined YS_CHAT_OFF		#if defined YS_LOGGING_OFF			new str[256];		#endif		j = gChannel[playerid];		new color = (j > -1 && j < sizeof (gChannel)) ? gChanColor[j] : gChatColor;		GetPlayerName(playerid, str, sizeof (str));		format(str, sizeof (str), "%s: %s", str, text);		SendChannelMessage(j, color, str);		//SendChannelMessage(j, color, str);		/*for (i = 0; i < MAX_PLAYERS; i++)		{			if (IsPlayerConnected(i))			{				#if defined YS_CHAT_OFF					SendClientMessage(i, gChatColor, str);				#else					#if !defined YS_CHAT_ON						if (YS_USE_CHAT & gChatSettings)						{					#endif							if (gChannel[i] == j)							{								SendClientMessage(i, color, str);							}					#if !defined YS_CHAT_ON						}						else						{							SendClientMessage(i, color, str);						}					#endif				#endif			}		}*/	#endif	return 0;}#if !defined YS_CHAT_OFFJoinChannel(playerid, channel){	new str[128];	//GetPlayerName(playerid, str, sizeof (str));	new old = gChannel[playerid];	format(str, sizeof (str), "*** %s joined the channel", ReturnPlayerName(playerid));	SendChannelMessage(channel, 0x00FFFFAA, str);	if (old != -1)	{		gChanInfo[old]--;	}	gChannel[playerid] = channel;	gChanInfo[channel]++;	format(str, sizeof (str), "*** Welcome to channel %d", channel);	SendClientMessage(playerid, 0x00FFFFAA, str);	SendClientMessage(playerid, 0x00FFFFAA, "*** Current Members:");	for (new i = 0; i < MAX_PLAYERS; i++)	{		if (gChannel[i] == channel && IsPlayerConnected(i))		{			//GetPlayerName(i, str, sizeof (str));			format(str, sizeof (str), "*** %s", ReturnPlayerName(i));			SendClientMessage(playerid, 0x00FFFFAA, str);		}	}	format(str, sizeof (str), "*** %s left the channel", ReturnPlayerName(playerid));	SendChannelMessage(old, 0x00FFFFAA, str);}SendChannelMessage(channel, color, str[]){	#if !defined YS_CHAT_ON		if (YS_USE_CHAT & gChatSettings)		{	#endif			for (new i = 0; i < MAX_PLAYERS; i++)			{				if (IsPlayerConnected(i))				{					if (gChannel[i] == channel)					{						SendClientMessage(i, color, str);					}				}			}	#if !defined YS_CHAT_ON		}		else		{			SendClientMessageToAll(color, str);		}	#endif}#endifpublic OnPlayerPrivmsg(playerid, senderid, text[]){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_PRIVMSG, "OnPlayerPrivmsg(%s%s, %s%s, %s%s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(senderid), ReturnPlayerIDData(senderid), PAR_DAT(text[]), text)	return 1;}public OnPlayerCommandText(playerid, cmdtext[]){	if (IsPlayerConnected(playerid))	{		YS_MESSAGE_CODE		new retval;		#if defined YS_USE_PREFIX_ON			new len = strlen(gPrefix);			if (strcmp(cmdtext, gPrefix, true, len) == 0 && ((cmdtext[len] == 32 && ProcessCommand(playerid, cmdtext[len + 1], 0)) || (cmdtext[len] == 0 && dcmd_commands(playerid, "", false)))) retval = 1;		#else			#if defined YS_USE_PREFIX_OFF				#if !defined YS_LOGGING_OFF					new len = 1;				#endif				if (ProcessCommand(playerid, cmdtext[1], 0)) retval = 1;			#else				new len = strlen(gPrefix);				new prefix = gComSet & YS_COMSET_USE_PREFIX ? 1 : 0;				if ((prefix ? (strcmp(cmdtext, gPrefix, true, len) == 0) : true) && (prefix ? (cmdtext[len] == 32 ? true : (cmdtext[len] == 0 && !dcmd_commands(playerid, "", false))) : true) && ProcessCommand(playerid, cmdtext[(prefix * len) + 1], 0)) retval = 1;				#if !defined YS_LOGGING_OFF					if (prefix) len++;					else len = 1;				#endif			#endif		#endif		#if !defined YS_LOGGING_OFF			#if !defined YS_LOGGING_ON				if (gRecArray & YS_USE_LOGGING)				{			#endif					if (gRecArray & YS_ON_PLAYER_COMMAND_TEXT)					{						new dontrec;						for (new i = 0; i < MAX_SKIPPED_COMMANDS; i++)						{							new k = strlen(gIgnoredCommands[i]);							if (gIgnoredCommands[i][0] == 0) break;							else if (strcmp(gIgnoredCommands[i], cmdtext[len], true, k) == 0 || strcmp(gIgnoredCommands[i], cmdtext[1], true, k) == 0)							{								dontrec = 1;								break;							}						}						if (!dontrec)						{							for (new i = 0; i < MAX_SKIPPED_COMMANDS; i++)							{								new k = strlen(gFilteredCommands[i]);								if (gFilteredCommands[i][0] == 0) break;								else if (strcmp(gFilteredCommands[i], cmdtext[len], true, k) == 0)								{									dontrec = -1;									len += k;									break;								}								else if (strcmp(gFilteredCommands[i], cmdtext[1], true, k) == 0)								{									dontrec = -1;									len = k + 1;									break;								}							}							new str[256];							if (dontrec)							{								strmid(str, cmdtext, 0, len);								format(str, sizeof (str), "OnPlayerCommandText(%s%s, %s%s <parameters>)", PAR_DAT(playerid), ID_DAT, PAR_DAT(cmdtext[]), str);							}							else							{								format(str, sizeof (str), "OnPlayerCommandText(%s%s, %s%s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(cmdtext[]), cmdtext);							}							yLog(str);						}					}					/*#if defined YS_ALT_NAMES_ON					#else						#if defined YS_ALT_NAMES_OFF						#else							if (((gComSet & YS_COMSET_USE_ALT) && (gAltNames[i][0] != 0)) ? (strcmp(cmdtext[len], gAltNames[i], true, strlen(gAltNames[i])) == 0 || (len != 1 && strcmp(cmdtext[1], gAltNames[i], true, strlen(gAltNames[i])) == 0)) : (strcmp(cmdtext[len], gFuncNames[i], true, strlen(gFuncNames[i])) == 0 || (len != 1 && strcmp(cmdtext[1], gFuncNames[i], true, strlen(gFuncNames[i])) == 0)))						#endif					#endif*/			#if !defined YS_LOGGING_ON				}			#endif		#endif		return retval;	}	#if !defined YS_LOGGING_OFF		else		{			YS_LOG_CODE(YS_ON_PLAYER_COMMAND_TEXT, "Exploit attempt: OnPlayerCommandText(%s%s, %s%s)", PAR_DAT(playerid), ID_DAT, PAR_DAT(cmdtext[]), cmdtext)		}	#endif	return 0;}public OnPlayerInfoChange(playerid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_INFO_CHANGE, "OnPlayerInfoChange(%s%s)", PAR_DAT(playerid), ID_DAT)	return 1;}public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_ENTER_VEHICLE, "OnPlayerEnterVehicle(%s%s, %s%d, %s%d)", PAR_DAT(playerid), ID_DAT, PAR_DAT(vehicleid), vehicleid, PAR_DAT(ispassenger), ispassenger)	return 1;}public OnPlayerExitVehicle(playerid, vehicleid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_EXIT_VEHICLE, "OnPlayerExitVehicle(%s%s, %s%d)", PAR_DAT(playerid), ID_DAT, PAR_DAT(vehicleid), vehicleid)	return 1;}public OnPlayerStateChange(playerid, newstate, oldstate){	YS_MESSAGE_CODE	#if !defined YS_LOGGING_OFF		/*static statenames[][] =		{			{"PLAYER_STATE_NONE"},			{"PLAYER_STATE_ONFOOT"},			{"PLAYER_STATE_DRIVER"},			{"PLAYER_STATE_PASSENGER"},			{"PLAYER_STATE_EXIT_VEHICLE"},			{"PLAYER_STATE_ENTER_VEHICLE_DRIVER"},			{"PLAYER_STATE_ENTER_VEHICLE_PASSENGER"},			{"PLAYER_STATE_WASTED"},			{"PLAYER_STATE_SPAWNED"}		};*/		static statenames[][ST_DAT_ENUM] =		{			{"0: PLAYER_STATE_NONE", "0"},			{"1: PLAYER_STATE_ONFOOT", "1"},			{"2: PLAYER_STATE_DRIVER", "2"},			{"3: PLAYER_STATE_PASSENGER", "3"},			{"4: PLAYER_STATE_EXIT_VEHICLE", "4"},			{"5: PLAYER_STATE_ENTER_VEHICLE_DRIVER", "5"},			{"6: PLAYER_STATE_ENTER_VEHICLE_PASSENGER", "6"},			{"7: PLAYER_STATE_WASTED", "7"},			{"8: PLAYER_STATE_SPAWNED", "8"}		};		if (gRecArray & YS_USE_PAR_NAMING)		{			YS_LOG_CODE(YS_ON_PLAYER_STATE_CHANGE, "OnPlayerStateChange(playerid: %s, newstate: %s, oldstate: %s)", ID_DAT, ST_DAT(newstate), ST_DAT(oldstate))		}		else		{			YS_LOG_CODE(YS_ON_PLAYER_STATE_CHANGE, "OnPlayerStateChange(%s, %s, %s)", ID_DAT, ST_DAT(newstate), ST_DAT(oldstate))		}	#endif	return 1;}public OnPlayerEnterCheckpoint(playerid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_ENTER_CHECKPOINT, "OnPlayerEnterCheckpoint(%s%s)", PAR_DAT(playerid), ID_DAT)	return 1;}public OnPlayerLeaveCheckpoint(playerid){	YS_MESSAGE_CODE	YS_LOG_CODE(YS_ON_PLAYER_LEAVE_CHECKPOINT, "OnPlayerLeaveCheckpoint(%s%s)", PAR_DAT(playerid), ID_DAT)	return 1;}