View difference between Paste ID: dbwfYF2g and TVshzZ8B
SHOW: | | - or go back to the newest paste.
1-
//SDiag by Nexius v1.0
1+
//SDiag by Nexius v1.1
2
3
#if defined _sdiag_included
4
	#endinput
5
#endif
6
#define _sdiag_included
7
8
#include <a_samp>
9
10-
#define SDIAG_VERSION		"1.0"
10+
#define SDIAG_VERSION		"1.1"
11
12
enum wMode
13
{
14
	WARNING_MODE_GM,
15
	WARNING_MODE_FS
16
}
17
18
static const WarningMode[wMode][] =
19-
		print("[SDiag: FS] One of your filterscripts doesn't have FILTERSCRIPT define");
19+
20
	"[SDiag: GM] ",
21
	"[SDiag: FS] "
22-
	if(MAX_PLAYERS != GetMaxPlayers()) print("[SDiag: FS] Your MAX_PLAYERS define isn't equal to the real number of player slots");
22+
};
23
24
enum wMessage
25
{
26
	NO_FILTERSCRIPT_DEFINE,
27
	WRONG_MAX_PLAYERS_DEFINE,
28
	INCLUDE_VERSION_MISMATCH,
29-
			print("[SDiag: FS] The SA-MP includes version doesn't match with the server version. Please update them");
29+
	NEGATIVE_TICK_COUNT,
30
	NO_SCRIPTFILES_FOLDER,
31
	WRONG_MAXNPC_VALUE,
32
	LOW_SLEEP_VALUE,
33
	QUERY_IS_DISABLED
34-
					print("[SDiag: FS] The SA-MP includes version doesn't match with the server version. Please update them");
34+
35
36
static const WarningMessage[wMessage][] =
37
{
38
	"One of your filterscripts doesn't have FILTERSCRIPT define",
39
	"Your MAX_PLAYERS define isn't equal to the real number of player slots",
40
	"The SA-MP includes version doesn't match with the server version. Please update them",
41
	"GetTickCount is less than 0. Please restart your computer",
42-
			print("[SDiag: FS] The SA-MP includes version doesn't match with the server version. Please update them");
42+
	"Your scriptfiles folder isn't created or you don't have access to it (some scripts may not work correctly)",
43
	"The variable 'maxnpc' exceeds the maximum number of player slots",
44
	"The variable 'sleep' is less than the default value. Your timers may work less accurately",
45
	"Query is disabled. Your server will not be visible in masterlist"
46
};
47
48
static bool:sdiag_IsFilterscript;
49
50
public OnFilterScriptInit()
51
{
52
	sdiag_IsFilterscript = true;
53
54
	#if !defined FILTERSCRIPT
55
		sdiag_SendWarning(NO_FILTERSCRIPT_DEFINE);
56
	#endif
57
58
	if(MAX_PLAYERS != GetMaxPlayers()) sdiag_SendWarning(WRONG_MAX_PLAYERS_DEFINE);
59
60
	new strtmp[10];
61
	GetServerVarAsString("version", strtmp, sizeof strtmp);
62
	if(strfind(strtmp, "0.3.7") != -1)
63
	{
64
		#if !defined OnVehicleSirenStateChange
65
			sdiag_SendWarning(INCLUDE_VERSION_MISMATCH);
66
		#else
67-
		if(GetTickCount() < 0) print("[SDiag: GM] GetTickCount is less than 0. Please restart your computer");
67+
68
			{
69-
		if(MAX_PLAYERS != GetMaxPlayers()) print("[SDiag: GM] Your MAX_PLAYERS define isn't equal to the real number of player slots");
69+
70
					sdiag_SendWarning(INCLUDE_VERSION_MISMATCH);
71
				#endif
72
			}
73
		#endif
74
	}
75
	else if(strfind(strtmp, "0.3.DL") != -1)
76-
				print("[SDiag: GM] The SA-MP includes version doesn't match with the server version. Please update them");
76+
77
		#if !defined GetPlayerCustomSkin
78
			sdiag_SendWarning(INCLUDE_VERSION_MISMATCH);
79
		#endif
80
	}
81-
						print("[SDiag: GM] The SA-MP includes version doesn't match with the server version. Please update them");
81+
82
	#if defined sdiag_OnFilterScriptInit
83
		return sdiag_OnFilterScriptInit();
84
	#else
85
		return 1;
86
	#endif
87
}
88
89-
				print("[SDiag: GM] The SA-MP includes version doesn't match with the server version. Please update them");
89+
90
	#undef OnFilterScriptInit
91
#else
92
	#define _ALS_OnFilterScriptInit
93
#endif
94-
		if(!fhandle) print("[SDiag: GM] Your scriptfiles folder isn't created or you don't have access to it (some scripts may not work correctly)");
94+
95
#if defined sdiag_OnFilterScriptInit
96
	forward sdiag_OnFilterScriptInit();
97
#endif
98
99
public OnGameModeInit()
100
{
101
	if(!sdiag_IsFilterscript)
102
	{
103
		if(GetTickCount() < 0) sdiag_SendWarning(NEGATIVE_TICK_COUNT);
104
105
		if(MAX_PLAYERS != GetMaxPlayers()) sdiag_SendWarning(WRONG_MAX_PLAYERS_DEFINE);
106
107
		new strtmp[10];
108
		GetServerVarAsString("version", strtmp, sizeof strtmp);
109
		if(strfind(strtmp, "0.3.7") != -1)
110
		{
111
			#if !defined OnVehicleSirenStateChange
112
				sdiag_SendWarning(INCLUDE_VERSION_MISMATCH);
113
			#else
114
				if(!strcmp(strtmp, "0.3.7-R2") || !strcmp(strtmp, "0.3.7-R3"))
115
				{
116-
#endif
116+
117
						sdiag_SendWarning(INCLUDE_VERSION_MISMATCH);
118
					#endif
119
				}
120
			#endif
121
		}
122
		else if(strfind(strtmp, "0.3.DL") != -1)
123
		{
124
			#if !defined GetPlayerCustomSkin
125
				sdiag_SendWarning(INCLUDE_VERSION_MISMATCH);
126
			#endif
127
		}
128
129
		new File:fhandle = fopen("sdiag_testfile.txt");
130
		if(!fhandle) sdiag_SendWarning(NO_SCRIPTFILES_FOLDER);
131
		else
132
		{
133
			fclose(fhandle);
134
			fremove("sdiag_testfile.txt");
135
		}
136
137
		if(GetServerVarAsInt("maxnpc") > GetMaxPlayers()) sdiag_SendWarning(WRONG_MAXNPC_VALUE);
138
139
		if(GetServerVarAsInt("sleep") < 5) sdiag_SendWarning(LOW_SLEEP_VALUE);
140
141
		if(GetServerVarAsBool("query") != 1) sdiag_SendWarning(QUERY_IS_DISABLED);
142
	}
143
	#if defined sdiag_OnGameModeInit
144
		return sdiag_OnGameModeInit();
145
	#else
146
		return 1;
147
	#endif
148
}
149
150
#if defined _ALS_OnGameModeInit
151
	#undef OnGameModeInit
152
#else
153
	#define _ALS_OnGameModeInit
154
#endif
155
#define OnGameModeInit sdiag_OnGameModeInit
156
#if defined sdiag_OnGameModeInit
157
	forward sdiag_OnGameModeInit();
158
#endif
159
160
static sdiag_SendWarning(wMessage:warnid)
161
{
162
	if(sdiag_IsFilterscript) printf("%s%s", WarningMode[WARNING_MODE_FS], WarningMessage[warnid]);
163
	else printf("%s%s", WarningMode[WARNING_MODE_GM], WarningMessage[warnid]);
164
	return 1;
165
}