· 6 years ago · Jul 27, 2019, 09:44 PM
1 new MaxClients;
2new NULL_STRING[1];
3new Float:NULL_VECTOR[3];
4new cvar_SqlHost;
5new xs__ITaskId;
6new xs__ITaskParam[1033] =
7{
8 0, 0, 0, 0, 98, 117, 116, 116, 111, 110, 115, 47, 98, 101, 108, 108, 49, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 99, 97, 115, 101, 111, 112, 101, 110, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 103, 114, 97, 102, 102, 105, 116, 105, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 20, 3, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 384, 512, 640, 768, 896, 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328, 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352, 4480, 4608, 4736, 4864, 4992, 5120, 5248, 5376, 5504, 5632, 5760, 5888, 6016, 6144, 6272, 6400, 6528, 6656, 6784, 6912, 7040, 7168, 7296, 7424, 7552, 7680, 7808, 7936, 8064, 8192, 8320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9};
10new xs__TaskFlags[5] =
11{
12 0, 0, 0, 0, 98
13};
14new xs__TaskFunc[48] =
15{
16 0, 0, 0, 0, 98, 117, 116, 116, 111, 110, 115, 47, 98, 101, 108, 108, 49, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 99, 97, 115, 101, 111, 112, 101, 110, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 103, 114, 97
17};
18new xs__TaskId;
19new Float:xs__TaskInterval;
20new xs__TaskParam[1033] =
21{
22 0, 0, 0, 0, 98, 117, 116, 116, 111, 110, 115, 47, 98, 101, 108, 108, 49, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 99, 97, 115, 101, 111, 112, 101, 110, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 103, 114, 97, 102, 102, 105, 116, 105, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 20, 3, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 384, 512, 640, 768, 896, 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328, 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352, 4480, 4608, 4736, 4864, 4992, 5120, 5248, 5376, 5504, 5632, 5760, 5888, 6016, 6144, 6272, 6400, 6528, 6656, 6784, 6912, 7040, 7168, 7296, 7424, 7552, 7680, 7808, 7936, 8064, 8192, 8320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
23};
24new xs__TaskRepeat;
25new xs__global_null;
26new xs__internalseed;
27new xs__logtypenames[6][0] =
28{
29 {
30 0, ...
31 },
32 {
33 0, ...
34 },
35 {
36 0, ...
37 },
38 {
39 0, ...
40 },
41 {
42 7536640, ...
43 },
44 {
45 771751936, ...
46 }
47};
48new xs__maxnum;
49new xs__replace_buf[3072] =
50{
51 0, 0, 0, 0, 98, 117, 116, 116, 111, 110, 115, 47, 98, 101, 108, 108, 49, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 99, 97, 115, 101, 111, 112, 101, 110, 46, 119, 97, 118, 0, 99, 115, 103, 111, 47, 103, 114, 97, 102, 102, 105, 116, 105, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 20, 3, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 384, 512, 640, 768, 896, 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328, 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352, 4480, 4608, 4736, 4864, 4992, 5120, 5248, 5376, 5504, 5632, 5760, 5888, 6016, 6144, 6272, 6400, 6528, 6656, 6784, 6912, 7040, 7168, 7296, 7424, 7552, 7680, 7808, 7936, 8064, 8192, 8320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
52};
53new cvar_SqlUser;
54new cvar_SqlPass;
55new cvar_SqlDb;
56new g_szSoundFile[18] =
57{
58 98, 117, 116, 116, 111, 110, 115, 47, 98, 101, 108, 108, 49, 46, 119, 97, 118, 0
59};
60new g_szSoundFileCO[18] =
61{
62 99, 115, 103, 111, 47, 99, 97, 115, 101, 111, 112, 101, 110, 46, 119, 97, 118, 0
63};
64new g_szSoundFileSpray[18] =
65{
66 99, 115, 103, 111, 47, 103, 114, 97, 102, 102, 105, 116, 105, 46, 119, 97, 118, 0
67};
68new Handle:g_SqlTuple;
69new g_Error[512];
70new COLCHAR[3][2] =
71{
72 {
73 3, 0
74 },
75 {
76 4, 0
77 },
78 {
79 1, 0
80 }
81};
82new g_iRank[33];
83new g_iCount;
84new flipBet[33];
85new bool:inFlip[33];
86new flipOpponent[33];
87new g_iEnemiesKilled[33];
88new g_iEnemiesHS[33];
89new g_iBombPlanter;
90new g_iBombDefuser;
91new bool:mvpShown;
92new bool:graffitiCooldown[33];
93new UserGraffiti[64][33];
94new GraffitiBox[33];
95new SelectedGraffiti[33];
96new bool:RoundStarted;
97new cvar_Advert;
98new cvar_LvlSkin;
99new cvar_MaxLvlCases;
100new cvar_MaxLvlKeys;
101new cvar_MaxLvlPoints;
102new cvar_LvlBonus;
103new cvar_MvpPlayers;
104new cvar_RestartRank;
105new cvar_RestartCost;
106new cvar_MvpRewardVIP;
107new cvar_MvpPointsAmount;
108new bool:g_bBombExploded;
109new Rounds;
110new cvar_RemoveGraffiti;
111new RankFile[48];
112new LevelFile[48];
113new SkinFile[48];
114new DefFile[48];
115new SoundFile[48];
116new FactionFile[48];
117new Folder[48];
118new cvar_ShowTips;
119new cvar_ChatRank;
120new cvar_VipChatColor;
121new cvar_ReviewTime;
122new cvar_CasePrice;
123new cvar_KeyPrice;
124new cvar_ShowPass;
125new cvar_TopUrl;
126new cvar_ClanUrl;
127new cvar_MinMVPPlayers;
128new cvar_ClanCost;
129new cvar_EnablePModels;
130new cvar_EnableWModels;
131new cvar_GraffitiCD;
132new cvar_LHStart;
133new cvar_LHEnd;
134new cvar_LHBonus;
135new cvar_LHEnabled;
136new cvar_InkPrice;
137new cvar_EnableRankSprites;
138new cvar_RankSpriteMode;
139new cvar_vipenablebonus;
140new cvar_vipkillbonus;
141new cvar_viphsbonus;
142new cvar_vipdefusebonus;
143new cvar_vipplantbonus;
144new cvar_vipdropchance;
145new cvar_adminenablebonus;
146new cvar_adminkillbonus;
147new cvar_adminhsbonus;
148new cvar_admindefusebonus;
149new cvar_adminplantbonus;
150new cvar_admindropchance;
151new cvar_killpts;
152new cvar_hspts;
153new cvar_defusepts;
154new cvar_plantpts;
155new cvar_DustKnife;
156new cvar_DustERare;
157new cvar_DustRare;
158new cvar_DustUncommon;
159new cvar_DustCommon;
160new cvar_MinDusts;
161new cvar_CalibrationKills;
162new cvar_DNPrice;
163new cvar_dropchance;
164new cvar_vipFlag;
165new cvar_adminFlag;
166new cvar_KillsRequired;
167new cvar_KeyForKills;
168new iDay[33];
169new g_iDay;
170new cvar_RewardMin;
171new cvar_RewardMax;
172new Rewarded[33];
173new ChatInk[33];
174new ChatTag[33][64];
175new Ranks[30][32];
176new Float:RankELO[30];
177new Rank[33];
178new g_bUsingGuns[33][32];
179new Keys[33][9];
180new Cases[33][9];
181new Levels[45][32];
182new KillsForLvl[45];
183new Level[33];
184new Float:Skill[33];
185new Points[33];
186new Kills[33];
187new Mvp[33];
188new UserSkins[300][33];
189new UserStattrak[300][33];
190new bool:isLogged[33];
191new Password[33][64];
192new bool:isRegistered[33];
193new isOnline[33];
194new sqlPassword[33][64];
195new cfgPassword[33][64];
196new DeathNote[33][128];
197new hasDeathNote[33];
198new passwordMatches[33];
199new ID[33];
200new HudEnabled[33];
201new MVPSound[33];
202new MVPSounds[50][128];
203new MVPSoundPath[50][128];
204new AllSounds;
205new MVPSoundVIP[50];
206new MVPEnabled[33];
207new Odds[5] =
208{
209 1, 4, 15, 35, 45
210};
211new skinID[300];
212new SkinNames[300][64];
213new WeaponMdls[300][128];
214new WeaponMdlsP[300][128];
215new WeaponMdlsW[300][128];
216new Weapons[300];
217new WeaponCase[300];
218new WeaponDrop[300];
219new Chance[300];
220new AllWeapon;
221new Price[300];
222new SkinRarity[300];
223new chestSkins[9][128];
224new DefaultSkin[33][300];
225new DefaultSkinP[33][300];
226new DefaultSkinW[33][300];
227new chestsList[9][128][512];
228new chestsChance[9][128];
229new chestChance[9][128];
230new cChance[9][300];
231new itemtype[33];
232new marketskinid[33];
233new marketwepid[33];
234new marketcases[1028];
235new marketkeys[1028];
236new marketquantity[1028];
237new marketckprice[1028];
238new marketseller[1028][64];
239new marketid[1028];
240new marketckcount;
241new marketwep[1028];
242new marketskin[1028];
243new marketskinprice[1028];
244new marketskinseller[1028][64];
245new marketidskin[1028];
246new SelectedType[33];
247new SelectedItem[33];
248new SelectedTypeMarket[33];
249new SelectedItemMarket[33];
250new ck_quantity[33];
251new ckm_quantity[33];
252new market_cost[33];
253new receiver_id[33];
254new skingift_id[33];
255new ckgift_item[33];
256new ckgift_type[33];
257new giftitemtype[33];
258new skingiftwep_id[33];
259new gift_quantity[33];
260new clan_name[64][33];
261new clan_playerpos[33];
262new clan_inclan[33];
263new clan_istaken[33];
264new clan_members[33][15][64];
265new clan_count[33];
266new Dusts[33];
267new tradetarget[33];
268new tradeskin[33];
269new tradeskin_wepid[33];
270new tradeskinget[33];
271new tradeskinget_wepid[33];
272new intrade[33];
273new tradesender[33];
274new FactionT[33];
275new FactionCT[33];
276new FactionLVL[33];
277new Factions[100][128];
278new FactionPath[100][128];
279new FactionTeam[33];
280new AllFactions;
281new FactionVIP[100];
282new cvar_RollMaxBet;
283new cvar_RollCooldown;
284new Float:rCounter[33];
285new Float:rSpeed[33];
286new rStartingNum[33];
287new Float:rSpinLen[33];
288new rSelection[33];
289new rInput[33];
290new rCooldown[33];
291new rNumbers[15] =
292{
293 1, 14, 2, 13, 3, 12, 4, 0, 11, 5, 10, 6, 9, 7, 8
294};
295new rOptions[3][0] =
296{
297 {
298 48, ...
299 },
300 {
301 49, ...
302 },
303 {
304 56, ...
305 }
306};
307new eWeapon[31][0] =
308{
309 {
310 0, ...
311 },
312 {
313 119, ...
314 },
315 {
316 0, ...
317 },
318 {
319 119, ...
320 },
321 {
322 119, ...
323 },
324 {
325 119, ...
326 },
327 {
328 119, ...
329 },
330 {
331 119, ...
332 },
333 {
334 119, ...
335 },
336 {
337 119, ...
338 },
339 {
340 119, ...
341 },
342 {
343 119, ...
344 },
345 {
346 119, ...
347 },
348 {
349 119, ...
350 },
351 {
352 119, ...
353 },
354 {
355 119, ...
356 },
357 {
358 119, ...
359 },
360 {
361 119, ...
362 },
363 {
364 119, ...
365 },
366 {
367 119, ...
368 },
369 {
370 119, ...
371 },
372 {
373 119, ...
374 },
375 {
376 119, ...
377 },
378 {
379 119, ...
380 },
381 {
382 119, ...
383 },
384 {
385 119, ...
386 },
387 {
388 119, ...
389 },
390 {
391 119, ...
392 },
393 {
394 119, ...
395 },
396 {
397 119, ...
398 },
399 {
400 119, ...
401 }
402};
403new V_MODELS[31][0] =
404{
405 {
406 110, ...
407 },
408 {
409 109, ...
410 },
411 {
412 109, ...
413 },
414 {
415 109, ...
416 },
417 {
418 109, ...
419 },
420 {
421 109, ...
422 },
423 {
424 109, ...
425 },
426 {
427 109, ...
428 },
429 {
430 109, ...
431 },
432 {
433 109, ...
434 },
435 {
436 109, ...
437 },
438 {
439 109, ...
440 },
441 {
442 109, ...
443 },
444 {
445 109, ...
446 },
447 {
448 109, ...
449 },
450 {
451 109, ...
452 },
453 {
454 109, ...
455 },
456 {
457 109, ...
458 },
459 {
460 109, ...
461 },
462 {
463 109, ...
464 },
465 {
466 109, ...
467 },
468 {
469 109, ...
470 },
471 {
472 109, ...
473 },
474 {
475 109, ...
476 },
477 {
478 109, ...
479 },
480 {
481 109, ...
482 },
483 {
484 109, ...
485 },
486 {
487 109, ...
488 },
489 {
490 109, ...
491 },
492 {
493 109, ...
494 },
495 {
496 109, ...
497 }
498};
499new Graffities[64][0] =
500{
501 {
502 0, ...
503 },
504 {
505 85, ...
506 },
507 {
508 86, ...
509 },
510 {
511 86, ...
512 },
513 {
514 86, ...
515 },
516 {
517 87, ...
518 },
519 {
520 87, ...
521 },
522 {
523 87, ...
524 },
525 {
526 65, ...
527 },
528 {
529 65, ...
530 },
531 {
532 66, ...
533 },
534 {
535 66, ...
536 },
537 {
538 66, ...
539 },
540 {
541 67, ...
542 },
543 {
544 67, ...
545 },
546 {
547 67, ...
548 },
549 {
550 68, ...
551 },
552 {
553 69, ...
554 },
555 {
556 69, ...
557 },
558 {
559 69, ...
560 },
561 {
562 70, ...
563 },
564 {
565 70, ...
566 },
567 {
568 70, ...
569 },
570 {
571 70, ...
572 },
573 {
574 70, ...
575 },
576 {
577 70, ...
578 },
579 {
580 70, ...
581 },
582 {
583 71, ...
584 },
585 {
586 71, ...
587 },
588 {
589 71, ...
590 },
591 {
592 71, ...
593 },
594 {
595 71, ...
596 },
597 {
598 72, ...
599 },
600 {
601 72, ...
602 },
603 {
604 73, ...
605 },
606 {
607 73, ...
608 },
609 {
610 75, ...
611 },
612 {
613 75, ...
614 },
615 {
616 75, ...
617 },
618 {
619 77, ...
620 },
621 {
622 109, ...
623 },
624 {
625 109, ...
626 },
627 {
628 78, ...
629 },
630 {
631 78, ...
632 },
633 {
634 78, ...
635 },
636 {
637 78, ...
638 },
639 {
640 78, ...
641 },
642 {
643 79, ...
644 },
645 {
646 79, ...
647 },
648 {
649 80, ...
650 },
651 {
652 80, ...
653 },
654 {
655 80, ...
656 },
657 {
658 80, ...
659 },
660 {
661 82, ...
662 },
663 {
664 82, ...
665 },
666 {
667 82, ...
668 },
669 {
670 82, ...
671 },
672 {
673 83, ...
674 },
675 {
676 83, ...
677 },
678 {
679 83, ...
680 },
681 {
682 83, ...
683 },
684 {
685 84, ...
686 },
687 {
688 84, ...
689 },
690 {
691 84, ...
692 }
693};
694new szWeaponNames[31][0] =
695{
696 {
697 0, ...
698 },
699 {
700 80, ...
701 },
702 {
703 0, ...
704 },
705 {
706 83, ...
707 },
708 {
709 72, ...
710 },
711 {
712 88, ...
713 },
714 {
715 67, ...
716 },
717 {
718 77, ...
719 },
720 {
721 65, ...
722 },
723 {
724 83, ...
725 },
726 {
727 68, ...
728 },
729 {
730 70, ...
731 },
732 {
733 85, ...
734 },
735 {
736 83, ...
737 },
738 {
739 71, ...
740 },
741 {
742 70, ...
743 },
744 {
745 85, ...
746 },
747 {
748 71, ...
749 },
750 {
751 65, ...
752 },
753 {
754 77, ...
755 },
756 {
757 77, ...
758 },
759 {
760 77, ...
761 },
762 {
763 77, ...
764 },
765 {
766 84, ...
767 },
768 {
769 71, ...
770 },
771 {
772 70, ...
773 },
774 {
775 68, ...
776 },
777 {
778 83, ...
779 },
780 {
781 65, ...
782 },
783 {
784 75, ...
785 },
786 {
787 80, ...
788 }
789};
790new szWepNames[31][0] =
791{
792 {
793 0, ...
794 },
795 {
796 80, ...
797 },
798 {
799 0, ...
800 },
801 {
802 83, ...
803 },
804 {
805 72, ...
806 },
807 {
808 88, ...
809 },
810 {
811 67, ...
812 },
813 {
814 77, ...
815 },
816 {
817 65, ...
818 },
819 {
820 83, ...
821 },
822 {
823 68, ...
824 },
825 {
826 70, ...
827 },
828 {
829 85, ...
830 },
831 {
832 83, ...
833 },
834 {
835 71, ...
836 },
837 {
838 70, ...
839 },
840 {
841 85, ...
842 },
843 {
844 71, ...
845 },
846 {
847 65, ...
848 },
849 {
850 77, ...
851 },
852 {
853 77, ...
854 },
855 {
856 77, ...
857 },
858 {
859 77, ...
860 },
861 {
862 84, ...
863 },
864 {
865 71, ...
866 },
867 {
868 70, ...
869 },
870 {
871 68, ...
872 },
873 {
874 83, ...
875 },
876 {
877 65, ...
878 },
879 {
880 75, ...
881 },
882 {
883 80, ...
884 }
885};
886new szWeaponId[32] =
887{
888 0, 1, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0
889};
890new SkinExists[32];
891new szCKNames[9][0] =
892{
893 {
894 0, ...
895 },
896 {
897 72, ...
898 },
899 {
900 70, ...
901 },
902 {
903 66, ...
904 },
905 {
906 67, ...
907 },
908 {
909 83, ...
910 },
911 {
912 71, ...
913 },
914 {
915 83, ...
916 },
917 {
918 67, ...
919 }
920};
921new p_allchat;
922new p_alltalk;
923new p_hidestat;
924new p_teamchat;
925new alv_sndr;
926new alv_str2[26];
927new alv_str4[101];
928new msg[513];
929Float:operator/(Float:,_:)(Float:oper1, oper2)
930{
931 return floatdiv(oper1, float(oper2));
932}
933
934bool:operator>=(Float:,Float:)(Float:oper1, Float:oper2)
935{
936 return 0 <= floatcmp(oper1, oper2);
937}
938
939bool:operator<(Float:,Float:)(Float:oper1, Float:oper2)
940{
941 return 0 > floatcmp(oper1, oper2);
942}
943
944bool:operator<=(Float:,Float:)(Float:oper1, Float:oper2)
945{
946 return 0 >= floatcmp(oper1, oper2);
947}
948
949replace_all(string[], len, what[], with[])
950{
951 new pos;
952 if ((pos = contain(string, what)) == -1)
953 {
954 return 0;
955 }
956 new total;
957 new with_len = strlen(with);
958 new diff = strlen(what) - with_len;
959 new total_len = strlen(string);
960 new temp_pos;
961 while (replace(string[pos], len - pos, what, with))
962 {
963 total++;
964 pos = with_len + pos;
965 total_len -= diff;
966 if (!(pos >= total_len))
967 {
968 temp_pos = contain(string[pos], what);
969 if (!(temp_pos == -1))
970 {
971 pos = temp_pos + pos;
972 }
973 return total;
974 }
975 return total;
976 }
977 return total;
978}
979
980get_configsdir(name[], len)
981{
982 return get_localinfo("amxx_configsdir", name, len);
983}
984
985has_all_flags(id, flags[])
986{
987 new FlagsNumber = read_flags(flags);
988 return FlagsNumber == FlagsNumber & get_user_flags(id, MaxClients);
989}
990
991public __fatal_ham_error(Ham:id, HamError:err, reason[])
992{
993 new func = get_func_id("HamFilter", -1);
994 new bool:fail = 1;
995 new var1;
996 if (func != -1 && callfunc_begin_i(func, -1) == 1)
997 {
998 callfunc_push_int(id);
999 callfunc_push_int(err);
1000 callfunc_push_str(reason, MaxClients);
1001 if (callfunc_end() == 1)
1002 {
1003 fail = false;
1004 }
1005 }
1006 if (fail)
1007 {
1008 set_fail_state(reason);
1009 }
1010 return 0;
1011}
1012
1013public Advert()
1014{
1015 if (get_pcvar_num(cvar_Advert))
1016 {
1017 client_print_color(MaxClients, MaxClients, "%L", -1, "MADE_BY", "CS:GO Legacy", "1.5", "Ark'xes");
1018 }
1019 return 0;
1020}
1021
1022public plugin_precache()
1023{
1024 new year;
1025 new month;
1026 date(year, month, g_iDay);
1027 set_task(1077936128, "Check_license", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
1028 set_task(1127481344, "Advert", MaxClients, 4109032, MaxClients, 4109068, MaxClients);
1029 new Line[512];
1030 new Data[10][128] = {
1031 {
1032 37, 115, 47, 99, 115, 103, 111, 47, 114, 97, 110, 107, 115, 46, 99, 102, 103, 0, 37, 115, 47, 99, 115, 103, 111, 47, 108, 101, 118, 101, 108, 115, 46, 99, 102, 103, 0, 37, 115, 47, 99, 115, 103, 111, 47, 115, 107, 105, 110, 115, 46, 99, 102, 103, 0, 37, 115, 47, 99, 115, 103, 111, 47, 100, 101, 102, 97, 117, 108, 116, 115, 46, 99, 102, 103, 0, 37, 115, 47, 99, 115, 103, 111, 47, 109, 118, 112, 115, 111, 117, 110, 100, 115, 46, 99, 102, 103, 0, 37, 115, 47, 99, 115, 103, 111, 47, 102, 97, 99, 116, 105, 111, 110, 115, 46, 99, 102, 103, 0, 115, 112, 114, 105, 116, 101, 115, 47, 99
1033 },
1034 {
1035 115, 103, 111, 95, 114, 97, 110, 107, 46, 115, 112, 114, 0, 109, 111, 100, 101, 108, 115, 47, 99, 115, 103, 111, 95, 103, 114, 97, 102, 102, 105, 116, 46, 109, 100, 108, 0, 103, 111, 95, 101, 110, 97, 98, 108, 101, 112, 0, 48, 0, 103, 111, 95, 101, 110, 97, 98, 108, 101, 119, 0, 48, 0, 71, 65, 77, 69, 0, 109, 111, 100, 101, 108, 115, 47, 112, 108, 97, 121, 101, 114, 47, 37, 115, 47, 37, 115, 46, 109, 100, 108, 0, 115, 111, 117, 110, 100, 47, 37, 115, 0, 83, 101, 114, 118, 101, 114, 32, 100, 111, 101, 115, 110, 39, 116, 32, 104, 97, 118, 101, 32, 108, 105, 99, 101, 110, 115, 101
1036 },
1037 {
1038 32, 102, 111, 114, 32, 116, 104, 105, 115, 32, 109, 111, 100, 33, 32, 84, 111, 32, 103, 101, 116, 32, 108, 105, 99, 101, 110, 115, 101, 32, 99, 111, 110, 116, 97, 99, 116, 32, 115, 116, 101, 97, 109, 58, 32, 104, 116, 116, 112, 58, 47, 47, 115, 116, 101, 97, 109, 99, 111, 109, 109, 117, 110, 105, 116, 121, 46, 99, 111, 109, 47, 105, 100, 47, 65, 108, 116, 101, 114, 110, 97, 116, 101, 68, 50, 47, 0, 83, 101, 114, 118, 101, 114, 32, 100, 111, 101, 115, 110, 39, 116, 32, 104, 97, 118, 101, 32, 108, 105, 99, 101, 110, 115, 101, 32, 102, 111, 114, 32, 116, 104, 105, 115, 32, 109, 111, 100, 33
1039 },
1040 {
1041 32, 84, 111, 32, 103, 101, 116, 32, 108, 105, 99, 101, 110, 115, 101, 32, 99, 111, 110, 116, 97, 99, 116, 32, 115, 116, 101, 97, 109, 58, 32, 104, 116, 116, 112, 58, 47, 47, 115, 116, 101, 97, 109, 99, 111, 109, 109, 117, 110, 105, 116, 121, 46, 99, 111, 109, 47, 105, 100, 47, 65, 108, 116, 101, 114, 110, 97, 116, 101, 68, 50, 47, 0, 67, 83, 58, 71, 79, 32, 76, 101, 103, 97, 99, 121, 0, 49, 46, 53, 0, 65, 114, 107, 39, 120, 101, 115, 0, 99, 115, 103, 111, 46, 116, 120, 116, 0, 68, 101, 97, 116, 104, 77, 115, 103, 0, 69, 118, 101, 110, 116, 95, 68, 101, 97, 116, 104, 77
1042 },
1043 {
1044 115, 103, 0, 97, 0, 0, 72, 76, 84, 86, 0, 69, 118, 101, 110, 116, 95, 78, 101, 119, 82, 111, 117, 110, 100, 0, 97, 0, 49, 61, 48, 0, 50, 61, 48, 0, 108, 111, 103, 101, 118, 101, 110, 116, 95, 114, 111, 117, 110, 100, 95, 115, 116, 97, 114, 116, 0, 49, 61, 82, 111, 117, 110, 100, 95, 83, 116, 97, 114, 116, 0, 83, 101, 110, 100, 65, 117, 100, 105, 111, 0, 69, 118, 101, 110, 116, 95, 82, 111, 117, 110, 100, 87, 111, 110, 95, 84, 0, 97, 0, 50, 38, 37, 33, 77, 82, 65, 68, 95, 116, 101, 114, 119, 105, 110, 0, 83, 101, 110, 100, 65, 117, 100, 105, 111, 0, 69, 118
1045 },
1046 {
1047 101, 110, 116, 95, 82, 111, 117, 110, 100, 87, 111, 110, 95, 67, 84, 0, 97, 0, 50, 38, 37, 33, 77, 82, 65, 68, 95, 99, 116, 119, 105, 110, 0, 83, 101, 116, 77, 111, 100, 101, 108, 0, 112, 108, 97, 121, 101, 114, 0, 102, 119, 72, 97, 109, 80, 108, 97, 121, 101, 114, 83, 112, 97, 119, 110, 80, 111, 115, 116, 0, 71, 114, 97, 102, 102, 105, 116, 105, 0, 102, 119, 95, 101, 109, 105, 116, 115, 111, 117, 110, 100, 0, 115, 97, 121, 32, 47, 115, 116, 111, 112, 0, 79, 102, 102, 83, 111, 117, 110, 100, 0, 0, 115, 97, 121, 32, 47, 109, 112, 51, 0, 79, 102, 102, 83, 111, 117, 110
1048 },
1049 {
1050 100, 0, 115, 97, 121, 32, 47, 111, 102, 102, 0, 79, 102, 102, 83, 111, 117, 110, 100, 0, 115, 97, 121, 32, 47, 114, 111, 117, 110, 100, 115, 111, 117, 110, 100, 0, 79, 102, 102, 83, 111, 117, 110, 100, 0, 115, 97, 121, 32, 47, 109, 101, 110, 117, 0, 77, 97, 105, 110, 77, 101, 110, 117, 0, 115, 97, 121, 95, 116, 101, 97, 109, 32, 47, 109, 101, 110, 117, 0, 77, 97, 105, 110, 77, 101, 110, 117, 0, 115, 97, 121, 32, 47, 100, 101, 98, 117, 103, 0, 68, 101, 98, 117, 103, 0, 114, 97, 100, 105, 111, 49, 0, 79, 112, 101, 110, 77, 101, 110, 117, 0, 84, 104, 105, 110, 107, 105, 110
1051 },
1052 {
1053 103, 69, 110, 116, 105, 116, 121, 0, 104, 97, 109, 95, 116, 104, 105, 110, 107, 0, 115, 97, 121, 32, 47, 114, 101, 103, 0, 82, 101, 103, 105, 115, 116, 101, 114, 77, 101, 110, 117, 0, 115, 97, 121, 32, 47, 116, 111, 112, 49, 53, 0, 84, 111, 112, 49, 53, 0, 115, 97, 121, 95, 116, 101, 97, 109, 32, 47, 116, 111, 112, 49, 53, 0, 84, 111, 112, 49, 53, 0, 115, 97, 121, 32, 47, 99, 108, 97, 110, 49, 53, 0, 67, 108, 97, 110, 49, 53, 0, 115, 97, 121, 95, 116, 101, 97, 109, 32, 47, 99, 108, 97, 110, 49, 53, 0, 67, 108, 97, 110, 49, 53, 0, 115, 97, 121, 32, 47, 114
1054 },
1055 {
1056 97, 110, 107, 0, 82, 97, 110, 107, 122, 0, 115, 97, 121, 95, 116, 101, 97, 109, 32, 47, 114, 97, 110, 107, 0, 82, 97, 110, 107, 122, 0, 115, 97, 121, 32, 47, 115, 97, 118, 101, 112, 97, 115, 115, 0, 83, 97, 118, 101, 80, 97, 115, 115, 0, 115, 97, 121, 95, 116, 101, 97, 109, 32, 47, 115, 97, 118, 101, 112, 97, 115, 115, 0, 83, 97, 118, 101, 80, 97, 115, 115, 0, 82, 111, 108, 108, 66, 101, 116, 0, 82, 82, 111, 108, 108, 66, 101, 116, 0, 81, 117, 97, 110, 116, 105, 116, 121, 0, 67, 75, 81, 117, 97, 110, 116, 105, 116, 121, 0, 81, 117, 97, 110, 116, 105, 116, 121, 0
1057 },
1058 {
1059 67, 75, 81, 117, 97, 110, 116, 105, 116, 121, 0, 81, 117, 97, 110, 116, 105, 116, 121, 77, 0, 77, 81, 117, 97, 110, 116, 105, 116, 121, 0, 81, 117, 97, 110, 116, 105, 116, 121, 71, 0, 71, 81, 117, 97, 110, 116, 105, 116, 121, 0, 67, 111, 115, 116, 0, 77, 67, 111, 115, 116, 0, 69, 110, 116, 101, 114, 80, 97, 115, 115, 119, 111, 114, 100, 0, 69, 110, 116, 101, 114, 80, 97, 115, 115, 0, 69, 110, 116, 101, 114, 80, 87, 0, 69, 110, 116, 101, 114, 76, 111, 103, 105, 110, 80, 97, 115, 115, 0, 67, 108, 97, 110, 78, 97, 109, 101, 0, 69, 110, 116, 101, 114, 67, 108, 97, 110, 78
1060 }
1061 };
1062 new Len;
1063 new sndpth[256];
1064 get_configsdir(Folder, 47);
1065 format(RankFile, 47, 4109116, Folder);
1066 format(LevelFile, 47, "%s/csgo/levels.cfg", Folder);
1067 format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
1068 format(DefFile, 47, "%s/csgo/defaults.cfg", Folder);
1069 format(SoundFile, 47, "%s/csgo/mvpsounds.cfg", Folder);
1070 format(FactionFile, 47, "%s/csgo/factions.cfg", Folder);
1071 precache_sound(g_szSoundFile);
1072 precache_sound(g_szSoundFileCO);
1073 precache_sound(g_szSoundFileSpray);
1074 precache_model("sprites/csgo_rank.spr");
1075 precache_model("models/csgo_graffit.mdl");
1076 cvar_EnablePModels = register_cvar("go_enablep", 4109820, MaxClients, MaxClients);
1077 cvar_EnableWModels = register_cvar("go_enablew", 4109872, MaxClients, MaxClients);
1078 if (file_exists(FactionFile, MaxClients))
1079 {
1080 new Path[128];
1081 new i = 1;
1082 while (file_size(FactionFile, 1, MaxClients, "GAME") > i)
1083 {
1084 if (!(i >= 100))
1085 {
1086 read_file(FactionFile, i, Line, 127, Len);
1087 parse(Line, Data[0][Data], 31, Data[1], 31, Data[2], 127, Data[3], 127, Data[4], 31);
1088 FactionTeam[i] = str_to_num(Data[0][Data]);
1089 FactionLVL[i] = str_to_num(Data[1]);
1090 copy(Factions[i], 99, Data[2]);
1091 copy(FactionPath[i], 99, Data[3]);
1092 FactionVIP[i] = str_to_num(Data[4]);
1093 formatex(Path, cvar_SqlUser, "models/player/%s/%s.mdl", FactionPath[i], FactionPath[i]);
1094 precache_model(Path);
1095 AllFactions += 1;
1096 i++;
1097 }
1098 }
1099 }
1100 if (file_exists(RankFile, MaxClients))
1101 {
1102 new i;
1103 while (file_size(RankFile, 1, MaxClients, "GAME") > i)
1104 {
1105 if (!(i >= 30))
1106 {
1107 read_file(RankFile, i, Line, 127, Len);
1108 parse(Line, Data[0][Data], 29, Data[1], 31);
1109 copy(Ranks[i], 29, Data[0][Data]);
1110 RankELO[i] = str_to_float(Data[1]);
1111 i++;
1112 }
1113 }
1114 }
1115 if (file_exists(SoundFile, MaxClients))
1116 {
1117 new i;
1118 while (file_size(SoundFile, 1, MaxClients, "GAME") > i)
1119 {
1120 if (!(i >= 50))
1121 {
1122 read_file(SoundFile, i, Line, 127, Len);
1123 parse(Line, Data[0][Data], 49, Data[1], 31, Data[2], 31);
1124 copy(MVPSounds[i], 49, Data[0][Data]);
1125 copy(MVPSoundPath[i], 49, Data[1]);
1126 MVPSoundVIP[i] = str_to_num(Data[2]);
1127 format(sndpth, 47, "sound/%s", MVPSoundPath[i]);
1128 precache_generic(sndpth);
1129 AllSounds += 1;
1130 i++;
1131 }
1132 }
1133 }
1134 if (file_exists(LevelFile, MaxClients))
1135 {
1136 new i;
1137 while (file_size(LevelFile, 1, MaxClients, "GAME") > i)
1138 {
1139 if (!(i >= 45))
1140 {
1141 read_file(LevelFile, i, Line, 127, Len);
1142 parse(Line, Data[0][Data], 44, Data[1], 31);
1143 copy(Levels[i], 44, Data[0][Data]);
1144 KillsForLvl[i] = str_to_num(Data[1]);
1145 i++;
1146 }
1147 }
1148 }
1149 if (file_exists(DefFile, MaxClients))
1150 {
1151 new i;
1152 while (file_size(DefFile, 1, MaxClients, "GAME") > i)
1153 {
1154 read_file(DefFile, i, Line, 127, Len);
1155 new var2;
1156 if (strlen(Line) < 5 || Line[0] == 59 || (Line[0] == 47 && Line[1] == 47))
1157 {
1158 }
1159 else
1160 {
1161 parse(Line, Data[0][Data], 31, Data[1], 128, Data[2], 128, Data[3], 128);
1162 if (ValidMdl(Data[1]))
1163 {
1164 precache_model(Data[1]);
1165 copy(DefaultSkin[str_to_num(Data[0][Data])], 47, Data[1]);
1166 new var3;
1167 if (file_exists(Data[2], MaxClients) && strlen(Data[2]) > 5)
1168 {
1169 precache_model(Data[2]);
1170 copy(DefaultSkinP[str_to_num(Data[0][Data])], 47, Data[2]);
1171 }
1172 new var4;
1173 if (file_exists(Data[3], MaxClients) && strlen(Data[3]) > 5)
1174 {
1175 precache_model(Data[3]);
1176 copy(DefaultSkinW[str_to_num(Data[0][Data])], 47, Data[3]);
1177 }
1178 }
1179 }
1180 i++;
1181 }
1182 }
1183 if (file_exists(SkinFile, MaxClients))
1184 {
1185 new penable = get_pcvar_num(cvar_EnablePModels);
1186 new wenable = get_pcvar_num(cvar_EnableWModels);
1187 new i;
1188 while (file_size(SkinFile, 1, MaxClients, "GAME") > i)
1189 {
1190 if (!(AllWeapon >= 300))
1191 {
1192 read_file(SkinFile, i, Line, 512, Len);
1193 new var6;
1194 if (strlen(Line) < 5 || Line[0] == 59 || (Line[0] == 47 && Line[1] == 47))
1195 {
1196 }
1197 else
1198 {
1199 parse(Line, Data[0][Data], 31, Data[1], 31, Data[2], 128, Data[3], 128, Data[4], 128, Data[5], 31, Data[6], 31, Data[7], 31, Data[8], 31);
1200 Weapons[AllWeapon] = str_to_num(Data[0][Data]);
1201 copy(SkinNames[AllWeapon], 63, Data[1]);
1202 if (ValidMdl(Data[2]))
1203 {
1204 precache_model(Data[2]);
1205 copy(WeaponMdls[AllWeapon], cvar_SqlUser, Data[2]);
1206 new var7;
1207 if (file_exists(Data[3], MaxClients) && strlen(Data[3]) > 5 && penable > 0)
1208 {
1209 precache_model(Data[3]);
1210 copy(WeaponMdlsP[AllWeapon], cvar_SqlUser, Data[3]);
1211 }
1212 new var8;
1213 if (file_exists(Data[4], MaxClients) && strlen(Data[4]) > 5 && wenable)
1214 {
1215 precache_model(Data[4]);
1216 copy(WeaponMdlsW[AllWeapon], cvar_SqlUser, Data[4]);
1217 }
1218 }
1219 WeaponCase[AllWeapon] = str_to_num(Data[5]);
1220 WeaponDrop[AllWeapon] = str_to_num(Data[5]);
1221 Chance[AllWeapon] = str_to_num(Data[6]);
1222 cChance[str_to_num(Data[5])][str_to_num(Data[7])] = Chance[AllWeapon];
1223 chestsChance[str_to_num(Data[5])][str_to_num(Data[6])] += 1;
1224 chestChance[str_to_num(Data[5])][str_to_num(Data[6])] = str_to_num(Data[6]);
1225 chestSkins[str_to_num(Data[5])][str_to_num(Data[6])] += 1;
1226 chestsList[str_to_num(Data[5])][str_to_num(Data[6])][str_to_num(Data[7])] = AllWeapon;
1227 SkinRarity[AllWeapon] = str_to_num(Data[6]);
1228 skinID[AllWeapon] = AllWeapon;
1229 Price[AllWeapon] = str_to_num(Data[8]);
1230 SkinExists[str_to_num(Data[0][Data])] = 1;
1231 AllWeapon += 1;
1232 }
1233 i++;
1234 }
1235 }
1236 }
1237 return 0;
1238}
1239
1240public Check_license()
1241{
1242 new szIP[40];
1243 get_user_ip(MaxClients, szIP, 39, 1);
1244 if (!e6117f86f7fcfc7465552067c8491139())
1245 {
1246 set_fail_state("Server doesn't have license for this mod! To get license contact steam: http://steamcommunity.com/id/AlternateD2/");
1247 log_amx("Server doesn't have license for this mod! To get license contact steam: http://steamcommunity.com/id/AlternateD2/");
1248 }
1249 return 0;
1250}
1251
1252public plugin_init()
1253{
1254 register_plugin("CS:GO Legacy", "1.5", "Ark'xes");
1255 register_dictionary("csgo.txt");
1256 register_event("DeathMsg", "Event_DeathMsg", 4111176, 4111184);
1257 register_event("HLTV", "Event_NewRound", 4111268, "1=0", "2=0");
1258 register_logevent("logevent_round_start", 2, "1=Round_Start");
1259 register_event("SendAudio", "Event_RoundWon_T", 4111556, "2&%!MRAD_terwin");
1260 register_event("SendAudio", "Event_RoundWon_CT", 4111740, "2&%!MRAD_ctwin");
1261 register_forward(3, "SetModel", MaxClients);
1262 RegisterHam(MaxClients, "player", "fwHamPlayerSpawnPost", 1, MaxClients);
1263 register_impulse(201, "Graffiti");
1264 register_forward(28, "fw_emitsound", MaxClients);
1265 register_clcmd("say /stop", "OffSound", -1, 4112120, -1, MaxClients);
1266 register_clcmd("say /mp3", "OffSound", -1, 4112120, -1, MaxClients);
1267 register_clcmd("say /off", "OffSound", -1, 4112120, -1, MaxClients);
1268 register_clcmd("say /roundsound", "OffSound", -1, 4112120, -1, MaxClients);
1269 register_clcmd("say /menu", "MainMenu", -1, 4112120, -1, MaxClients);
1270 register_clcmd("say_team /menu", "MainMenu", -1, 4112120, -1, MaxClients);
1271 register_clcmd("say /debug", "Debug", -1, 4112120, -1, MaxClients);
1272 register_clcmd("radio1", "OpenMenu", -1, 4112120, -1, MaxClients);
1273 register_think("ThinkingEntity", "ham_think");
1274 register_clcmd("say /reg", "RegisterMenu", -1, 4112120, -1, MaxClients);
1275 register_clcmd("say /top15", "Top15", -1, 4112120, -1, MaxClients);
1276 register_clcmd("say_team /top15", "Top15", -1, 4112120, -1, MaxClients);
1277 register_clcmd("say /clan15", "Clan15", -1, 4112120, -1, MaxClients);
1278 register_clcmd("say_team /clan15", "Clan15", -1, 4112120, -1, MaxClients);
1279 register_clcmd("say /rank", "Rankz", -1, 4112120, -1, MaxClients);
1280 register_clcmd("say_team /rank", "Rankz", -1, 4112120, -1, MaxClients);
1281 register_clcmd("say /savepass", "SavePass", -1, 4112120, -1, MaxClients);
1282 register_clcmd("say_team /savepass", "SavePass", -1, 4112120, -1, MaxClients);
1283 register_clcmd("RollBet", "RRollBet", -1, 4112120, -1, MaxClients);
1284 register_clcmd("Quantity", "CKQuantity", -1, 4112120, -1, MaxClients);
1285 register_clcmd("Quantity", "CKQuantity", -1, 4112120, -1, MaxClients);
1286 register_clcmd("QuantityM", "MQuantity", -1, 4112120, -1, MaxClients);
1287 register_clcmd("QuantityG", "GQuantity", -1, 4112120, -1, MaxClients);
1288 register_clcmd("Cost", "MCost", -1, 4112120, -1, MaxClients);
1289 register_clcmd("EnterPassword", "EnterPass", -1, 4112120, -1, MaxClients);
1290 register_clcmd("EnterPW", "EnterLoginPass", -1, 4112120, -1, MaxClients);
1291 register_clcmd("ClanName", "EnterClanName", -1, 4112120, -1, MaxClients);
1292 register_clcmd("Bet", "EnterBet", -1, 4112120, -1, MaxClients);
1293 register_clcmd("DeathNote", "DeathNoteMSG", -1, 4112120, -1, MaxClients);
1294 register_clcmd("ChatTag", "EnterTag", -1, 4112120, -1, MaxClients);
1295 cvar_KeyForKills = register_cvar("go_keyforkill", 4114520, MaxClients, MaxClients);
1296 cvar_KillsRequired = register_cvar("go_killsforkey", "150", MaxClients, MaxClients);
1297 cvar_Advert = register_cvar("go_ad", 4114628, MaxClients, MaxClients);
1298 cvar_LHEnabled = register_cvar("go_lhenabled", 4114688, MaxClients, MaxClients);
1299 cvar_LHBonus = register_cvar("go_lhbonus", 4114740, MaxClients, MaxClients);
1300 cvar_LHStart = register_cvar("go_lhstart", "23", MaxClients, MaxClients);
1301 cvar_LHEnd = register_cvar("go_lhend", 4114840, MaxClients, MaxClients);
1302 cvar_RollMaxBet = register_cvar("go_rollmax", "1000000", MaxClients, MaxClients);
1303 cvar_RollCooldown = register_cvar("go_rollcd", "30", MaxClients, MaxClients);
1304 cvar_RestartCost = register_cvar("go_rankcost", "2000", MaxClients, MaxClients);
1305 cvar_RestartRank = register_cvar("go_rankrr", 4115084, MaxClients, MaxClients);
1306 cvar_RemoveGraffiti = register_cvar("go_removegraffiti", 4115164, MaxClients, MaxClients);
1307 cvar_RewardMax = register_cvar("go_rewardmax", "2000", MaxClients, MaxClients);
1308 cvar_RewardMin = register_cvar("go_rewardmin", "200", MaxClients, MaxClients);
1309 cvar_InkPrice = register_cvar("go_inkprice", "1500", MaxClients, MaxClients);
1310 cvar_MvpPlayers = register_cvar("go_mvpplayers", 4115436, MaxClients, MaxClients);
1311 cvar_GraffitiCD = register_cvar("go_graffiticd", "30.0", MaxClients, MaxClients);
1312 cvar_EnableRankSprites = register_cvar("go_ranksprites", 4115580, MaxClients, MaxClients);
1313 cvar_RankSpriteMode = register_cvar("go_spritemode", 4115644, MaxClients, MaxClients);
1314 cvar_LvlSkin = register_cvar("go_lvlskin", 4115696, MaxClients, MaxClients);
1315 cvar_MaxLvlCases = register_cvar("go_maxlvlcases", "10", MaxClients, MaxClients);
1316 cvar_MaxLvlKeys = register_cvar("go_maxlvlkeys", 4115832, MaxClients, MaxClients);
1317 cvar_MaxLvlPoints = register_cvar("go_maxlvlpoints", "1000", MaxClients, MaxClients);
1318 cvar_LvlBonus = register_cvar("go_lvlbonus", 4115972, MaxClients, MaxClients);
1319 cvar_ClanCost = register_cvar("go_clancost", "10000", MaxClients, MaxClients);
1320 cvar_MinMVPPlayers = register_cvar("go_minmvp", 4116092, MaxClients, MaxClients);
1321 cvar_dropchance = register_cvar("go_dropchance", 4116156, MaxClients, MaxClients);
1322 cvar_vipdropchance = register_cvar("go_vipdropchance", 4116232, MaxClients, MaxClients);
1323 cvar_admindropchance = register_cvar("go_admindropchance", 4116316, MaxClients, MaxClients);
1324 cvar_DNPrice = register_cvar("go_dnprice", "1000", MaxClients, MaxClients);
1325 cvar_TopUrl = register_cvar("go_topurl", "http://firefly.lt/ranks", MaxClients, MaxClients);
1326 cvar_ClanUrl = register_cvar("go_clanurl", "http://firefly.lt/ranks/clan.php", MaxClients, MaxClients);
1327 cvar_ShowTips = register_cvar("go_showtips", 4116748, MaxClients, MaxClients);
1328 cvar_ChatRank = register_cvar("go_chatrank", 4116804, MaxClients, MaxClients);
1329 cvar_VipChatColor = register_cvar("go_vipchatcolor", 4116876, MaxClients, MaxClients);
1330 cvar_CasePrice = register_cvar("go_caseprice", "1500", MaxClients, MaxClients);
1331 cvar_KeyPrice = register_cvar("go_keyprice", "4500", MaxClients, MaxClients);
1332 cvar_ReviewTime = register_cvar("go_reviewtime", 4117080, MaxClients, MaxClients);
1333 cvar_ShowPass = register_cvar("go_showpass", 4117136, MaxClients, MaxClients);
1334 cvar_CalibrationKills = register_cvar("go_calibrationkills", "100", MaxClients, MaxClients);
1335 cvar_DustKnife = register_cvar("go_dusturare", "20", MaxClients, MaxClients);
1336 cvar_DustERare = register_cvar("go_dusterare", "10", MaxClients, MaxClients);
1337 cvar_DustRare = register_cvar("go_dustrare", 4117416, MaxClients, MaxClients);
1338 cvar_DustUncommon = register_cvar("go_dustuncommon", 4117488, MaxClients, MaxClients);
1339 cvar_DustCommon = register_cvar("go_dustcommon", 4117552, MaxClients, MaxClients);
1340 cvar_MinDusts = register_cvar("go_mindusts", "100", MaxClients, MaxClients);
1341 cvar_vipFlag = register_cvar("go_vipflag", 4117668, MaxClients, MaxClients);
1342 cvar_MvpRewardVIP = register_cvar("go_mvprewardvip", 4117740, MaxClients, MaxClients);
1343 cvar_MvpPointsAmount = register_cvar("go_mvppoints", "10", MaxClients, MaxClients);
1344 cvar_vipenablebonus = register_cvar("go_vipbonus", 4117860, MaxClients, MaxClients);
1345 cvar_vipplantbonus = register_cvar("go_vipplantbonus", 4117936, MaxClients, MaxClients);
1346 cvar_viphsbonus = register_cvar("go_viphsbonus", 4118000, MaxClients, MaxClients);
1347 cvar_vipkillbonus = register_cvar("go_vipkillbonus", 4118072, MaxClients, MaxClients);
1348 cvar_vipdefusebonus = register_cvar("go_vipdefusebonus", 4118152, MaxClients, MaxClients);
1349 cvar_adminFlag = register_cvar("go_adminflag", 4118212, MaxClients, MaxClients);
1350 cvar_adminenablebonus = register_cvar("go_adminbonus", 4118276, MaxClients, MaxClients);
1351 cvar_adminplantbonus = register_cvar("go_adminplantbonus", 4118360, MaxClients, MaxClients);
1352 cvar_adminkillbonus = register_cvar("go_adminkillbonus", 4118440, MaxClients, MaxClients);
1353 cvar_adminhsbonus = register_cvar("go_adminhsbonus", 4118512, MaxClients, MaxClients);
1354 cvar_admindefusebonus = register_cvar("go_adminplantbonus", 4118596, MaxClients, MaxClients);
1355 cvar_plantpts = register_cvar("go_plantpts", 4118652, MaxClients, MaxClients);
1356 cvar_killpts = register_cvar("go_killpts", 4118704, MaxClients, MaxClients);
1357 cvar_hspts = register_cvar("go_hspts", 4118748, MaxClients, MaxClients);
1358 cvar_defusepts = register_cvar("go_defusepts", 4118808, MaxClients, MaxClients);
1359 p_allchat = register_cvar("sv_allchat", 4118860, MaxClients, MaxClients);
1360 p_hidestat = register_cvar("ac_hidestatus", 4118924, MaxClients, MaxClients);
1361 p_teamchat = register_cvar("ac_teamchat", 4118980, MaxClients, MaxClients);
1362 p_alltalk = get_cvar_pointer("sv_alltalk");
1363 cvar_SqlHost = register_cvar("go_host", 4119064, MaxClients, MaxClients);
1364 cvar_SqlUser = register_cvar("go_user", 4119100, MaxClients, MaxClients);
1365 cvar_SqlPass = register_cvar("go_pass", 4119136, MaxClients, MaxClients);
1366 cvar_SqlDb = register_cvar("go_db", 4119164, MaxClients, MaxClients);
1367 register_message(get_user_msgid("SayText"), "col_changer");
1368 register_forward(122, "NameChange", MaxClients);
1369 set_task(1065353216, "MySql_Init", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
1370 new i;
1371 while (i < 31)
1372 {
1373 if (3 < strlen(eWeapon[i]))
1374 {
1375 RegisterHam(66, eWeapon[i], "WeaponSwitch", 1, MaxClients);
1376 }
1377 i++;
1378 }
1379 return 0;
1380}
1381
1382public OffSound(id)
1383{
1384 MVPEnabled[id] = 0;
1385 return 0;
1386}
1387
1388public RollMenu(id)
1389{
1390 new szText[256];
1391 formatex(szText, 256, "%L %L", id, "PREFIX_HUD", id, "MENU_ROLL");
1392 new menu = menu_create(szText, "rollmenu_handler", MaxClients);
1393 formatex(szText, 256, "%L", id, "ROLL_AMOUNT", rInput[id]);
1394 menu_additem(menu, szText, 4119624, MaxClients, -1);
1395 formatex(szText, 256, "%L\n\r-------------------", id, "ROLL_NUMBERS", rOptions[rSelection[id]]);
1396 menu_additem(menu, szText, 4119780, MaxClients, -1);
1397 formatex(szText, 256, "%L", id, "ROLL");
1398 menu_additem(menu, szText, 4119816, MaxClients, -1);
1399 menu_setprop(menu, 6, 1);
1400 menu_display(id, menu, MaxClients, -1);
1401 return 0;
1402}
1403
1404public rollmenu_handler(id, menu, item)
1405{
1406 if (item == -3)
1407 {
1408 MainMenu(id);
1409 menu_destroy(menu);
1410 return 1;
1411 }
1412 switch (item)
1413 {
1414 case 0:
1415 {
1416 client_cmd(id, "messagemode RollBet");
1417 }
1418 case 1:
1419 {
1420 if (rSelection[id])
1421 {
1422 if (rSelection[id] == 1)
1423 {
1424 rSelection[id] = 2;
1425 }
1426 if (rSelection[id] == 2)
1427 {
1428 rSelection[id] = 0;
1429 }
1430 }
1431 else
1432 {
1433 rSelection[id] = 1;
1434 }
1435 }
1436 case 2:
1437 {
1438 if (rInput[id] <= Points[id])
1439 {
1440 if (0 < rInput[id])
1441 {
1442 if (rCooldown[id] <= get_systime(MaxClients))
1443 {
1444 new cd = get_pcvar_num(cvar_RollCooldown);
1445 SetRoll(id);
1446 Points[id] -= rInput[id];
1447 rCooldown[id] = cd + get_systime(MaxClients);
1448 }
1449 else
1450 {
1451 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "ROLL_CD", rCooldown[id] - get_systime(MaxClients));
1452 }
1453 }
1454 else
1455 {
1456 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "ROLL_INPUTZERO");
1457 }
1458 }
1459 else
1460 {
1461 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", rInput[id] - Points[id]);
1462 }
1463 }
1464 default:
1465 {
1466 }
1467 }
1468 RollMenu(id);
1469 menu_destroy(menu);
1470 return 1;
1471}
1472
1473public SetRoll(id)
1474{
1475 rStartingNum[id] = rNumbers[random(14)];
1476 rSpeed[id] = random_float(1000593162, 1017370378);
1477 rSpinLen[id] = random_float(1046562734, 1050253722);
1478 set_task(rSpeed[id], "Roll", id, 4109032, MaxClients, 4109036, MaxClients);
1479 return 0;
1480}
1481
1482public Roll(id)
1483{
1484 new r;
1485 new g;
1486 new b;
1487 new var3 = rCounter[id];
1488 var3 = floatadd(var3, rSpeed[id]);
1489 rStartingNum[id]++;
1490 if (14 < rStartingNum[id])
1491 {
1492 rStartingNum[id] = 0;
1493 }
1494 switch (rNumbers[rStartingNum[id]])
1495 {
1496 case 0:
1497 {
1498 r = 0;
1499 g = 255;
1500 b = 0;
1501 }
1502 case 1, 2, 3, 4, 5, 6, 7:
1503 {
1504 r = 255;
1505 g = 0;
1506 b = 0;
1507 }
1508 case 8, 9, 10, 11, 12, 13, 14:
1509 {
1510 r = 170;
1511 g = 170;
1512 b = 170;
1513 }
1514 default:
1515 {
1516 }
1517 }
1518 set_dhudmessage(r, g, b, -1082130432, 1049247089, 1, 1086324736, floatsub(rCounter[id], 1036831949), rCounter[id] / 2, rCounter[id] / 2);
1519 new var1;
1520 if (rStartingNum[id] == 14)
1521 {
1522 var1 = 1;
1523 }
1524 else
1525 {
1526 var1 = rNumbers[rStartingNum[id][0]];
1527 }
1528 new var2;
1529 if (rStartingNum[id])
1530 {
1531 var2 = rNumbers[rStartingNum[id] - 1];
1532 }
1533 else
1534 {
1535 var2 = 8;
1536 }
1537 show_dhudmessage(id, "%L", id, "ROLLING", var2, rNumbers[rStartingNum[id]], var1);
1538 if (rCounter[id] < rSpinLen[id])
1539 {
1540 set_task(rCounter[id], "Roll", id, 4109032, MaxClients, 4109036, MaxClients);
1541 }
1542 else
1543 {
1544 rCounter[id] = 0;
1545 set_dhudmessage(r, g, b, -1082130432, 1049247089, 1, 1086324736, 1077936128, 1065353216, 1065353216);
1546 show_dhudmessage(id, "%L", id, "ROLLED_NUMBER", rNumbers[rStartingNum[id]]);
1547 switch (rNumbers[rStartingNum[id]])
1548 {
1549 case 0:
1550 {
1551 if (rSelection[id])
1552 {
1553 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "ROLL_LOST", rInput[id]);
1554 }
1555 else
1556 {
1557 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "ROLL_WON", rInput[id] * 14);
1558 user_name(id);
1559
1560/* ERROR! Can't print expression: Heap */
1561 function "Roll" (number 16)
1562public plugin_natives()
1563{
1564 register_native("get_usergo_id", "native_get_usergo_id", 1);
1565 register_native("get_user_points", "native_get_user_points", 1);
1566 register_native("set_user_points", "native_set_user_points", 1);
1567 register_native("set_user_ck", "native_set_user_ck", 1);
1568 register_native("is_user_logged", "native_is_user_logged", 1);
1569 return 0;
1570}
1571
1572public createEntity(id)
1573{
1574 new Float:sprFrame = 0.0;
1575 new Float:flOrigin[3] = 0.0;
1576 sprFrame = float(Rank[id]);
1577 pev(id, 118, flOrigin);
1578 new var1 = flOrigin[2];
1579 var1 = floatadd(1108082688, var1);
1580 new ent = create_entity("info_target");
1581 entity_set_model(ent, "sprites/csgo_rank.spr");
1582 entity_set_origin(ent, flOrigin);
1583 entity_set_int(ent, 14, NULL_VECTOR);
1584 entity_set_edict(ent, NULL_STRING, id);
1585 entity_set_string(ent, MaxClients, "ThinkingEntity");
1586 entity_set_float(ent, 28, 1036831949);
1587 entity_set_int(ent, 15, MaxClients);
1588 entity_set_float(ent, 12, 1099956224);
1589 entity_set_float(ent, 10, sprFrame);
1590 entity_set_float(ent, 7, 1008981770);
1591 return 0;
1592}
1593
1594public ham_think(ent)
1595{
1596 static Float:flOrigin[3];
1597 new owner = entity_get_edict(ent, NULL_STRING);
1598 pev(owner, 118, flOrigin);
1599 new var1 = flOrigin[2];
1600 var1 = floatadd(1108082688, var1);
1601 entity_set_origin(ent, flOrigin);
1602 entity_set_float(ent, 7, floatadd(1008981770, get_gametime()));
1603 return 0;
1604}
1605
1606public removeEntities()
1607{
1608 new ent = -1;
1609 while ((ent = find_ent_by_class(ent, "ThinkingEntity")))
1610 {
1611 remove_entity(ent);
1612 }
1613 return 0;
1614}
1615
1616public removeGraffiti()
1617{
1618 new ent = -1;
1619 while ((ent = find_ent_by_class(ent, "GraffitiEntity")))
1620 {
1621 remove_entity(ent);
1622 }
1623 return 0;
1624}
1625
1626public removeEntity(id)
1627{
1628 new ent = -1;
1629 while ((ent = find_ent_by_owner(ent, "ThinkingEntity", id, MaxClients)))
1630 {
1631 remove_entity(ent);
1632 }
1633 return 0;
1634}
1635
1636public SetModel(entity, model[])
1637{
1638 if (!pev_valid(entity))
1639 {
1640 return 1;
1641 }
1642 new var1;
1643 if (strlen(DefaultSkinW[6]) > 5 && equal(model, "models/w_c4.mdl", MaxClients))
1644 {
1645 entity_set_model(entity, DefaultSkinW[6]);
1646 return 4;
1647 }
1648 static Classname[32];
1649 pev(entity, 1, Classname, 32);
1650 static iOwner;
1651 iOwner = pev(entity, 18);
1652 new var2;
1653 if (iOwner < 1 || iOwner > 32)
1654 {
1655 return 1;
1656 }
1657 static iWeapon;
1658 iWeapon = get_user_weapon(iOwner, 0, 0);
1659 static weapon;
1660 weapon = find_ent_by_owner(-1, eWeapon[iWeapon], entity, MaxClients);
1661 new wenable = get_pcvar_num(cvar_EnableWModels);
1662 new var3;
1663 if (g_bUsingGuns[iOwner][iWeapon] && equal(Classname, "weaponbox", MaxClients) && wenable)
1664 {
1665 if (!pev_valid(weapon))
1666 {
1667 return 1;
1668 }
1669 set_pev(weapon, 82, g_bUsingGuns[iOwner][iWeapon]);
1670 set_pev(entity, 71, Price[g_bUsingGuns[iOwner][iWeapon]]);
1671 entity_set_model(entity, WeaponMdlsW[g_bUsingGuns[iOwner][iWeapon]]);
1672 return 4;
1673 }
1674 new var5;
1675 if (strlen(DefaultSkinW[iWeapon]) > 5 && (equal(Classname, "grenade", MaxClients) || equal(Classname, "weaponbox", MaxClients)))
1676 {
1677 entity_set_model(entity, DefaultSkinW[iWeapon]);
1678 return 4;
1679 }
1680 return 1;
1681}
1682
1683public client_impulse(id, impulse)
1684{
1685 if (impulse == 201)
1686 {
1687 return 1;
1688 }
1689 return 0;
1690}
1691
1692public fw_emitsound(Ent, Channel, Sound[], Float:Volume, Float:Attenuation, Flags, Pitch)
1693{
1694 new var1;
1695 if (Sound[7] == 115 && Sound[8] == 112)
1696 {
1697 return 1;
1698 }
1699 return 4;
1700}
1701
1702public Graffiti(id)
1703{
1704 new ent = create_entity("info_target");
1705 new Float:fAimOrigin[3] = 0.0;
1706 new Float:fPlayerOrigin[3] = 0.0;
1707 new Float:fAimVector[3] = 0.0;
1708 new Float:fNormalVector[3] = 0.0;
1709 new Float:fTextVector[3] = 0.0;
1710 new Float:fraction = 0.0;
1711 pev(id, 126, fAimVector);
1712 angle_vector(fAimVector, 1, fAimVector);
1713 pev(id, 118, fPlayerOrigin);
1714 fAimVector[0] = floatadd(floatmul(1176255488, fAimVector[0]), fPlayerOrigin[0]);
1715 fAimVector[1] = floatadd(floatmul(1176255488, fAimVector[1]), fPlayerOrigin[1]);
1716 fAimVector[2] = floatadd(1148846080, floatadd(floatmul(1176255488, fAimVector[2]), fPlayerOrigin[2]));
1717 new iTr = create_tr2();
1718 engfunc(29, fPlayerOrigin, fAimVector, 1, id, iTr);
1719 get_tr2(iTr, 5, fAimOrigin);
1720 get_tr2(iTr, 7, fNormalVector);
1721 get_tr2(iTr, NULL_STRING, fraction);
1722 free_tr2(iTr);
1723 new Float:mins[3] = {1.1776383E-38,8.167E-42,5.767E-41};
1724 new Float:maxs[3] = {7.987E-42,7.987E-42,5.7491E-41};
1725 new var1;
1726 if (fraction <= 0.01 && !graffitiCooldown[id])
1727 {
1728 if (SelectedGraffiti[id])
1729 {
1730 new Float:cooldown = get_pcvar_float(cvar_GraffitiCD);
1731 graffitiCooldown[id] = 1;
1732 set_task(cooldown, "RemoveCooldown", id, 4109032, MaxClients, 4109036, MaxClients);
1733 vector_to_angle(fNormalVector, fTextVector);
1734 entity_set_vector(ent, 6, fTextVector);
1735 entity_set_model(ent, "models/csgo_graffit.mdl");
1736 entity_set_size(ent, mins, maxs);
1737 entity_set_origin(ent, fAimOrigin);
1738 set_pev(ent, 133, 4122872);
1739 entity_set_int(ent, 14, MaxClients);
1740 entity_set_edict(ent, NULL_STRING, id);
1741 entity_set_string(ent, MaxClients, "GraffitiEntity");
1742 entity_set_int(ent, 15, MaxClients);
1743 set_pev(ent, 71, SelectedGraffiti[id] - 1);
1744 }
1745 client_print(id, NULL_STRING, "%L", id, "NO_GRAFFITI");
1746 }
1747 return 0;
1748}
1749
1750public RemoveCooldown(id)
1751{
1752 graffitiCooldown[id] = 0;
1753 return 0;
1754}
1755
1756public Inspect(id)
1757{
1758 if (!is_user_alive(id))
1759 {
1760 return 1;
1761 }
1762 new wid = get_user_weapon(id, 0, 0);
1763 new var1;
1764 if (wid == 29 && g_bUsingGuns[id][wid])
1765 {
1766 if (containi(SkinNames[g_bUsingGuns[id][wid]], "BUTTERFLY") != -1)
1767 {
1768 PlayAnimation(id, random_num(NULL_VECTOR, 10));
1769 }
1770 PlayAnimation(id, 8);
1771 }
1772 return 1;
1773}
1774
1775PlayAnimation(Player, Sequence)
1776{
1777 set_pev(Player, 90, Sequence);
1778 message_begin(NULL_VECTOR, 35, 4123056, Player);
1779 write_byte(Sequence);
1780 write_byte(pev(Player, 72));
1781 message_end();
1782 return 0;
1783}
1784
1785public OpenMenu(id)
1786{
1787 if (!isRegistered[id])
1788 {
1789 RegisterMenu(id);
1790 }
1791 else
1792 {
1793 if (!isLogged[id])
1794 {
1795 LoginMenu(id);
1796 }
1797 MainMenu(id);
1798 }
1799 return 1;
1800}
1801
1802public DeathNoteMSG(id)
1803{
1804 new szText[128];
1805 new szName[32];
1806 user_name_sql(szName, 32, id);
1807 read_args(szText, 127);
1808 remove_quotes(szText);
1809 replace_all(szText, 128, "!name", szName);
1810 DeathNoteMenu(id);
1811 UpdateStats(id);
1812 return 1;
1813}
1814
1815public EnterTag(id)
1816{
1817 new szText[64];
1818 read_args(szText, 63);
1819 remove_quotes(szText);
1820 replace_all(szText, 64, 4123092, 4123100);
1821 new var1;
1822 if (strlen(szText) > 2 && ChatInk[id] > 0)
1823 {
1824 ChatInk[id]--;
1825 TagMenu(id);
1826 UpdateMisc(id);
1827 }
1828 return 1;
1829}
1830
1831public EnterBet(id)
1832{
1833 new szText[32];
1834 new data;
1835 read_args(szText, 31);
1836 remove_quotes(szText);
1837 data = str_to_num(szText);
1838 new var1;
1839 if (data > 0 && data <= Points[id])
1840 {
1841 flipBet[id] = data;
1842 }
1843 else
1844 {
1845 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1846 }
1847 Flip(id);
1848 return 1;
1849}
1850
1851public RRollBet(id)
1852{
1853 new szText[32];
1854 new data;
1855 read_args(szText, 31);
1856 remove_quotes(szText);
1857 data = str_to_num(szText);
1858 new var1;
1859 if (data > 0 && data <= Points[id] && data <= get_pcvar_num(cvar_RollMaxBet))
1860 {
1861 rInput[id] = data;
1862 }
1863 else
1864 {
1865 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1866 }
1867 RollMenu(id);
1868 return 1;
1869}
1870
1871public CKQuantity(id)
1872{
1873 new szText[32];
1874 new data;
1875 read_args(szText, 31);
1876 remove_quotes(szText);
1877 data = str_to_num(szText);
1878 new var1;
1879 if (data > 0 && data < 1000)
1880 {
1881 ck_quantity[id] = data;
1882 }
1883 else
1884 {
1885 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1886 }
1887 ShopMenu(id);
1888 return 1;
1889}
1890
1891public MQuantity(id)
1892{
1893 new szText[32];
1894 new data;
1895 read_args(szText, 31);
1896 remove_quotes(szText);
1897 data = str_to_num(szText);
1898 new var1;
1899 if (data > 0 && data < 1000)
1900 {
1901 ckm_quantity[id] = data;
1902 }
1903 else
1904 {
1905 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1906 }
1907 MarketMenu(id);
1908 return 1;
1909}
1910
1911public GQuantity(id)
1912{
1913 new szText[32];
1914 new data;
1915 read_args(szText, 31);
1916 remove_quotes(szText);
1917 data = str_to_num(szText);
1918 new var1;
1919 if (data > 0 && data < 1000000)
1920 {
1921 gift_quantity[id] = data;
1922 }
1923 else
1924 {
1925 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1926 }
1927 GiftMenu(id);
1928 return 1;
1929}
1930
1931public EnterClanName(id)
1932{
1933 new szText[32];
1934 read_args(szText, 31);
1935 remove_quotes(szText);
1936 if (1 < strlen(szText))
1937 {
1938 CheckClanName(id);
1939 }
1940 else
1941 {
1942 client_print(id, NULL_STRING, "%L", id, "CLAN_MIN2");
1943 }
1944 ClanMenu(id);
1945 return 1;
1946}
1947
1948public MCost(id)
1949{
1950 new szText[32];
1951 new data;
1952 read_args(szText, 31);
1953 remove_quotes(szText);
1954 data = str_to_num(szText);
1955 if (0 < data)
1956 {
1957 market_cost[id] = data;
1958 }
1959 else
1960 {
1961 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1962 }
1963 MarketMenu(id);
1964 return 1;
1965}
1966
1967public EnterPass(id)
1968{
1969 new szText[32];
1970 read_args(szText, 31);
1971 remove_quotes(szText);
1972 if (3 > strlen(Password[id]))
1973 {
1974 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_SHORT");
1975 RegisterMenu(id);
1976 }
1977 else
1978 {
1979 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_SUCCESS");
1980 RegisterMenu(id);
1981 }
1982 return 1;
1983}
1984
1985public EnterLoginPass(id)
1986{
1987 new szText[32];
1988 read_args(szText, 31);
1989 remove_quotes(szText);
1990 if (equal(Password[id], sqlPassword[id], MaxClients))
1991 {
1992 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_GOOD");
1993 LoginMenu(id);
1994 }
1995 else
1996 {
1997 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_BAD");
1998 LoginMenu(id);
1999 }
2000 return 1;
2001}
2002
2003public WeaponSwitch(Weapon)
2004{
2005 new id = get_pdata_cbase(Weapon, 41, NULL_STRING, 5);
2006 new wid = cs_get_weapon_id(Weapon);
2007 new penable = get_pcvar_num(cvar_EnablePModels);
2008 new var1;
2009 if (id > 32 || id < 1)
2010 {
2011 return 4;
2012 }
2013 if (!is_user_connected(id))
2014 {
2015 return 4;
2016 }
2017 if (pev(Weapon, 82))
2018 {
2019 set_pev(id, 144, WeaponMdls[pev(Weapon, 82)]);
2020 new var2;
2021 if (strlen(WeaponMdlsP[pev(Weapon, 82)]) > 5 && penable)
2022 {
2023 set_pev(id, 71, Price[pev(Weapon, 82)]);
2024 set_pev(id, 143, WeaponMdlsP[pev(Weapon, 82)]);
2025 }
2026 }
2027 else
2028 {
2029 if (g_bUsingGuns[id][wid])
2030 {
2031 set_pev(id, 144, WeaponMdls[g_bUsingGuns[id][wid]]);
2032 new var3;
2033 if (strlen(WeaponMdlsP[g_bUsingGuns[id][wid]]) > 5 && penable)
2034 {
2035 set_pev(id, 71, Price[g_bUsingGuns[id][wid]]);
2036 set_pev(id, 143, WeaponMdlsP[g_bUsingGuns[id][wid]]);
2037 }
2038 }
2039 if (5 < strlen(DefaultSkin[wid]))
2040 {
2041 new var4;
2042 if (cs_get_user_team(id, 0) == 2 && wid == 29)
2043 {
2044 wid = 31;
2045 }
2046 set_pev(id, 144, DefaultSkin[wid]);
2047 if (5 < strlen(DefaultSkinP[wid]))
2048 {
2049 set_pev(id, 143, DefaultSkinP[wid]);
2050 }
2051 }
2052 }
2053 return 1;
2054}
2055
2056public client_putinserver(id)
2057{
2058 rInput[id] = 0;
2059 rCooldown[id] = 0;
2060 rCounter[id] = 0;
2061 rSelection[id] = 0;
2062 HudEnabled[id] = 1;
2063 MVPEnabled[id] = 1;
2064 MVPSound[id] = 0;
2065 isRegistered[id] = 0;
2066 isLogged[id] = 0;
2067 isOnline[id] = 0;
2068 Points[id] = 0;
2069 Kills[id] = 0;
2070 Level[id] = 0;
2071 Mvp[id] = 0;
2072 SelectedType[id] = 0;
2073 SelectedItem[id] = 0;
2074 SelectedTypeMarket[id] = 0;
2075 SelectedItemMarket[id] = 0;
2076 ck_quantity[id] = 0;
2077 ckm_quantity[id] = 0;
2078 market_cost[id] = 0;
2079 itemtype[id] = 0;
2080 marketskinid[id] = 0;
2081 marketwepid[id] = 0;
2082 iDay[id] = 0;
2083 Rewarded[id] = 0;
2084 ChatInk[id] = 0;
2085 clan_count[id] = 0;
2086 ID[id] = 0;
2087 new i;
2088 while (i < 5)
2089 {
2090 i++;
2091 }
2092 clan_inclan[id] = 0;
2093 clan_playerpos[id] = 0;
2094 new i;
2095 while (i < AllWeapon)
2096 {
2097 UserSkins[i][id] = 0;
2098 i++;
2099 }
2100 new i;
2101 while (i < 32)
2102 {
2103 g_bUsingGuns[id][i] = 0;
2104 i++;
2105 }
2106 new i;
2107 while (i <= 8)
2108 {
2109 Cases[id][i] = 0;
2110 i++;
2111 }
2112 new i;
2113 while (i <= 8)
2114 {
2115 Keys[id][i] = 0;
2116 i++;
2117 }
2118 new i;
2119 while (i < 64)
2120 {
2121 UserGraffiti[i][id] = 0;
2122 i++;
2123 }
2124 GraffitiBox[id] = 0;
2125 SelectedGraffiti[id] = 0;
2126 receiver_id[id] = 0;
2127 skingift_id[id] = 0;
2128 ckgift_item[id] = 0;
2129 ckgift_type[id] = 0;
2130 giftitemtype[id] = 0;
2131 skingiftwep_id[id] = 0;
2132 gift_quantity[id] = 0;
2133 tradetarget[id] = 0;
2134 tradeskin[id] = 0;
2135 tradeskin_wepid[id] = 0;
2136 tradeskinget[id] = 0;
2137 tradeskinget_wepid[id] = 0;
2138 intrade[id] = 0;
2139 tradesender[id] = 0;
2140 FactionT[id] = 0;
2141 FactionCT[id] = 0;
2142 sql_IsRegister(id);
2143 return 0;
2144}
2145
2146public client_disconnected(id)
2147{
2148 if (isLogged[id])
2149 {
2150 user_name(id);
2151
2152/* ERROR! Can't print expression: Heap */
2153 function "client_disconnected" (number 44)
2154public Call_Back(id, menu, item)
2155{
2156 return 2;
2157}
2158
2159public MainMenu(id)
2160{
2161 new var1;
2162 if (equal(cfgPassword[id], sqlPassword[id], MaxClients) && strlen(cfgPassword[id]) > 2)
2163 {
2164 isLogged[id] = 1;
2165 UpdatePlayer(id);
2166 }
2167 else
2168 {
2169 if (!isRegistered[id])
2170 {
2171 RegisterMenu(id);
2172 return 1;
2173 }
2174 if (!isLogged[id])
2175 {
2176 LoginMenu(id);
2177 return 1;
2178 }
2179 }
2180 new szText[256];
2181 new szKText[256];
2182 new call = menu_makecallback("Call_Back");
2183 formatex(szKText, 256, "\n%L", id, "KILL_COUNTER", Kills[id] % get_pcvar_num(cvar_KillsRequired), get_pcvar_num(cvar_KillsRequired));
2184 new var2;
2185 if (get_pcvar_num(cvar_KeyForKills))
2186 {
2187 var2 = szKText;
2188 }
2189 else
2190 {
2191 var2 = 4124540;
2192 }
2193 formatex(szText, 256, "%L %L%L \w| %L %s", id, "PREFIX_HUD", id, "MAIN_MENU", id, "MENU_POINTS", Points[id], id, "PLAYER_ID", ID[id], var2);
2194 new menu = menu_create(szText, "menu_handler", MaxClients);
2195 formatex(szText, 256, "%L", id, "MENU_INVENTORY");
2196 menu_additem(menu, szText, 4124668, MaxClients, -1);
2197 formatex(szText, 256, "%L\n\r-------------------", id, "MENU_PREVIEW");
2198 menu_additem(menu, szText, 4124824, MaxClients, -1);
2199 formatex(szText, 256, "%L", id, "MENU_SHOP");
2200 menu_additem(menu, szText, 4124880, MaxClients, -1);
2201 formatex(szText, 256, "%L", id, "MENU_MARKET");
2202 menu_additem(menu, szText, 4124944, MaxClients, -1);
2203 formatex(szText, 256, "%L", id, "MENU_GIFTS");
2204 menu_additem(menu, szText, 4125004, MaxClients, -1);
2205 formatex(szText, 256, "%L\n\r------------------", id, "MENU_TRADEOFFER");
2206 menu_additem(menu, szText, 4125168, MaxClients, -1);
2207 formatex(szText, 256, "%L", id, "MENU_CLAN");
2208 menu_additem(menu, szText, 4125224, MaxClients, -1);
2209 formatex(szText, 256, "%L", id, "MENU_CRAFTING");
2210 menu_additem(menu, szText, 4125296, MaxClients, -1);
2211 formatex(szText, 256, "%L", id, "MENU_JACKPOT");
2212 menu_additem(menu, szText, 4125364, MaxClients, -1);
2213 formatex(szText, 256, "%L", id, "MENU_COINFLIP");
2214 menu_additem(menu, szText, 4125436, MaxClients, -1);
2215 formatex(szText, 256, "%L\n\r------------------", id, "MENU_ROULETTE");
2216 menu_additem(menu, szText, 4125592, MaxClients, -1);
2217 formatex(szText, 256, "%L", id, "MENU_DEATHNOTE");
2218 menu_additem(menu, szText, 4125668, MaxClients, -1);
2219 formatex(szText, 256, "%L", id, "MENU_TAG1");
2220 menu_additem(menu, szText, 4125724, MaxClients, -1);
2221 formatex(szText, 256, "%L", id, "MENU_REWARD");
2222 new var3;
2223 if (Rewarded[id])
2224 {
2225 var3 = call;
2226 }
2227 else
2228 {
2229 var3 = 0;
2230 }
2231 menu_additem(menu, szText, 4125788, var3, -1);
2232 formatex(szText, 256, "%L", id, "MENU_FACTIONS");
2233 menu_additem(menu, szText, 4125860, MaxClients, -1);
2234 formatex(szText, 256, "%L", id, "MENU_SETTINGS");
2235 menu_additem(menu, szText, 4125932, MaxClients, -1);
2236 menu_setprop(menu, 6, 1);
2237 menu_display(id, menu, MaxClients, -1);
2238 return 1;
2239}
2240
2241public menu_handler(id, menu, item)
2242{
2243 if (item == -3)
2244 {
2245 menu_destroy(menu);
2246 return 1;
2247 }
2248 switch (item)
2249 {
2250 case 0:
2251 {
2252 InventoryMenu(id);
2253 }
2254 case 1:
2255 {
2256 PreviewMenu(id);
2257 }
2258 case 2:
2259 {
2260 ShopMenu(id);
2261 }
2262 case 3:
2263 {
2264 MarketMenu(id);
2265 }
2266 case 4:
2267 {
2268 GiftMenu(id);
2269 }
2270 case 5:
2271 {
2272 TradeMenu(id);
2273 }
2274 case 6:
2275 {
2276 ClanMenu(id);
2277 }
2278 case 7:
2279 {
2280 CraftingMenu(id);
2281 }
2282 case 8:
2283 {
2284 MainMenu(id);
2285 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "JACKPOT_TOJOIN");
2286 }
2287 case 9:
2288 {
2289 Flip(id);
2290 }
2291 case 10:
2292 {
2293 RollMenu(id);
2294 }
2295 case 11:
2296 {
2297 DeathNoteMenu(id);
2298 }
2299 case 12:
2300 {
2301 TagMenu(id);
2302 }
2303 case 13:
2304 {
2305 if (g_iDay != iDay[id])
2306 {
2307 new pmin;
2308 new pmax;
2309 pmin = get_pcvar_num(cvar_RewardMin);
2310 pmax = get_pcvar_num(cvar_RewardMax);
2311 new pts = random_num(pmin, pmax);
2312 new var1 = Points[id];
2313 var1 = var1[pts];
2314 UpdateStats(id);
2315 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "DAILY_REWARD", pts);
2316 iDay[id] = g_iDay;
2317 UpdateMisc(id);
2318 }
2319 else
2320 {
2321 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REWARD_TAKEN");
2322 }
2323 }
2324 case 14:
2325 {
2326 MenuFactions(id);
2327 }
2328 case 15:
2329 {
2330 SettingsMenu(id);
2331 }
2332 default:
2333 {
2334 }
2335 }
2336 menu_destroy(menu);
2337 return 1;
2338}
2339
2340public TagMenu(id)
2341{
2342 new szText[128];
2343 new InkPrice = get_pcvar_num(cvar_InkPrice);
2344 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_TAG", ChatInk[id]);
2345 new menu = menu_create(szText, "tag_handler", MaxClients);
2346 new var1;
2347 if (strlen(ChatTag[id]) > 2)
2348 {
2349 var1 = ChatTag[id];
2350 }
2351 else
2352 {
2353 var1 = 4126516;
2354 }
2355 formatex(szText, cvar_SqlUser, "%L", id, "TYPE_TAG", var1);
2356 menu_additem(menu, szText, 4126532, MaxClients, -1);
2357 formatex(szText, cvar_SqlUser, "%L", id, "BUY_INK", InkPrice);
2358 menu_additem(menu, szText, 4126580, MaxClients, -1);
2359 menu_setprop(menu, 6, 1);
2360 menu_display(id, menu, MaxClients, -1);
2361 return 0;
2362}
2363
2364public tag_handler(id, menu, item)
2365{
2366 if (item == -3)
2367 {
2368 MainMenu(id);
2369 menu_destroy(menu);
2370 return 1;
2371 }
2372 switch (item)
2373 {
2374 case 0:
2375 {
2376 if (0 >= ChatInk[id])
2377 {
2378 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "TAG_NOINK");
2379 }
2380 else
2381 {
2382 client_cmd(id, "messagemode ChatTag");
2383 }
2384 }
2385 case 1:
2386 {
2387 new InkPrice = get_pcvar_num(cvar_InkPrice);
2388 if (InkPrice >= Points[id])
2389 {
2390 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", InkPrice - Points[id]);
2391 }
2392 else
2393 {
2394 Points[id] -= InkPrice;
2395 ChatInk[id]++;
2396 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "INK_BOUGHT");
2397 }
2398 }
2399 default:
2400 {
2401 }
2402 }
2403 TagMenu(id);
2404 return 1;
2405}
2406
2407public MenuFactions(id)
2408{
2409 new szText[128];
2410 new var1;
2411 if (get_pcvar_num(cvar_ShowTips))
2412 {
2413 var1 = 4127168;
2414 }
2415 else
2416 {
2417 var1 = 4127220;
2418 }
2419 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_FACTIONS", id, var1);
2420 new menu = menu_create(szText, "factions_handler", MaxClients);
2421 new i = 1;
2422 while (i <= AllFactions)
2423 {
2424 if (FactionVIP[i])
2425 {
2426 new var2;
2427 if (i != FactionT[id] && i != FactionCT[id])
2428 {
2429 var3 = 4127584;
2430 }
2431 else
2432 {
2433 var3 = 4127632;
2434 }
2435 new var4;
2436 if (FactionTeam[i] == 1)
2437 {
2438 var4 = 4127520;
2439 }
2440 else
2441 {
2442 var4 = 4127528;
2443 }
2444 formatex(szText, cvar_SqlUser, "\r[\w%s\r] %L: \r[\w%d\r] \w| \y%s \y[\wVIP\y] %L", var4, id, "WORD_LEVEL", FactionLVL[i], Factions[i], id, var3);
2445 menu_additem(menu, szText, 4127656, MaxClients, -1);
2446 }
2447 else
2448 {
2449 new var5;
2450 if (i != FactionT[id] && i != FactionCT[id])
2451 {
2452 var6 = 4127876;
2453 }
2454 else
2455 {
2456 var6 = 4127924;
2457 }
2458 new var7;
2459 if (FactionTeam[i] == 1)
2460 {
2461 var7 = 4127812;
2462 }
2463 else
2464 {
2465 var7 = 4127820;
2466 }
2467 formatex(szText, cvar_SqlUser, "\r[\w%s\r] %L: \r[\w%d\r] \w| \y%s %L", var7, id, "WORD_LEVEL", FactionLVL[i], Factions[i], id, var6);
2468 menu_additem(menu, szText, 4127948, MaxClients, -1);
2469 }
2470 i++;
2471 }
2472 menu_setprop(menu, 6, 1);
2473 menu_display(id, menu, MaxClients, -1);
2474 return 0;
2475}
2476
2477public factions_handler(id, menu, item)
2478{
2479 if (item == -3)
2480 {
2481 MainMenu(id);
2482 menu_destroy(menu);
2483 return 1;
2484 }
2485 if (FactionLVL[item + 1] <= Level[id])
2486 {
2487 if (FactionVIP[item + 1])
2488 {
2489 new vipFlag[32];
2490 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
2491 if (has_all_flags(id, vipFlag))
2492 {
2493 new var1;
2494 if (FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients) && is_user_alive(id))
2495 {
2496 cs_set_player_model(id, FactionPath[item + 1]);
2497 }
2498 if (item + 1 == FactionCT[id])
2499 {
2500 new var2;
2501 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2502 {
2503 FactionCT[id] = 0;
2504 }
2505 else
2506 {
2507 FactionCT[id] = 0;
2508 }
2509 new var3;
2510 if (FactionTeam[item + 1] == 1)
2511 {
2512 var3 = 4128092;
2513 }
2514 else
2515 {
2516 var3 = 4128152;
2517 }
2518 new var4;
2519 if (FactionTeam[item + 1] == 1)
2520 {
2521 var4 = -2;
2522 }
2523 else
2524 {
2525 var4 = -3;
2526 }
2527 client_print_color(id, var4, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var3);
2528 cs_reset_player_model(id);
2529 }
2530 else
2531 {
2532 if (item + 1 == FactionT[id])
2533 {
2534 new var5;
2535 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2536 {
2537 FactionT[id] = 0;
2538 }
2539 else
2540 {
2541 FactionT[id] = 0;
2542 }
2543 new var6;
2544 if (FactionTeam[item + 1] == 1)
2545 {
2546 var6 = 4128320;
2547 }
2548 else
2549 {
2550 var6 = 4128380;
2551 }
2552 new var7;
2553 if (FactionTeam[item + 1] == 1)
2554 {
2555 var7 = -2;
2556 }
2557 else
2558 {
2559 var7 = -3;
2560 }
2561 client_print_color(id, var7, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var6);
2562 cs_reset_player_model(id);
2563 }
2564 switch (FactionTeam[item + 1])
2565 {
2566 case 1:
2567 {
2568 FactionT[id] = item + 1;
2569 }
2570 case 2:
2571 {
2572 FactionCT[id] = item + 1;
2573 }
2574 default:
2575 {
2576 }
2577 }
2578 new var8;
2579 if (FactionTeam[item + 1] == 1)
2580 {
2581 var8 = 4128548;
2582 }
2583 else
2584 {
2585 var8 = 4128608;
2586 }
2587 new var9;
2588 if (FactionTeam[item + 1] == 1)
2589 {
2590 var9 = -2;
2591 }
2592 else
2593 {
2594 var9 = -3;
2595 }
2596 client_print_color(id, var9, "%L %L", id, "PREFIX_CHAT", id, "FACTION_CHANGED", id, var8, Factions[item + 1]);
2597 }
2598 }
2599 else
2600 {
2601 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "FACTION_NOACCESS");
2602 }
2603 }
2604 else
2605 {
2606 new var10;
2607 if (FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients) && is_user_alive(id))
2608 {
2609 cs_set_player_model(id, FactionPath[item + 1]);
2610 }
2611 if (item + 1 == FactionCT[id])
2612 {
2613 new var11;
2614 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2615 {
2616 FactionCT[id] = 0;
2617 }
2618 else
2619 {
2620 FactionCT[id] = 0;
2621 }
2622 new var12;
2623 if (FactionTeam[item + 1] == 1)
2624 {
2625 var12 = 4128916;
2626 }
2627 else
2628 {
2629 var12 = 4128976;
2630 }
2631 new var13;
2632 if (FactionTeam[item + 1] == 1)
2633 {
2634 var13 = -2;
2635 }
2636 else
2637 {
2638 var13 = -3;
2639 }
2640 client_print_color(id, var13, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var12);
2641 cs_reset_player_model(id);
2642 }
2643 if (item + 1 == FactionT[id])
2644 {
2645 new var14;
2646 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2647 {
2648 FactionT[id] = 0;
2649 }
2650 else
2651 {
2652 FactionT[id] = 0;
2653 }
2654 new var15;
2655 if (FactionTeam[item + 1] == 1)
2656 {
2657 var15 = 4129144;
2658 }
2659 else
2660 {
2661 var15 = 4129204;
2662 }
2663 new var16;
2664 if (FactionTeam[item + 1] == 1)
2665 {
2666 var16 = -2;
2667 }
2668 else
2669 {
2670 var16 = -3;
2671 }
2672 client_print_color(id, var16, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var15);
2673 cs_reset_player_model(id);
2674 }
2675 switch (FactionTeam[item + 1])
2676 {
2677 case 1:
2678 {
2679 FactionT[id] = item + 1;
2680 }
2681 case 2:
2682 {
2683 FactionCT[id] = item + 1;
2684 }
2685 default:
2686 {
2687 }
2688 }
2689 new var17;
2690 if (FactionTeam[item + 1] == 1)
2691 {
2692 var17 = 4129372;
2693 }
2694 else
2695 {
2696 var17 = 4129432;
2697 }
2698 new var18;
2699 if (FactionTeam[item + 1] == 1)
2700 {
2701 var18 = -2;
2702 }
2703 else
2704 {
2705 var18 = -3;
2706 }
2707 client_print_color(id, var18, "%L %L", id, "PREFIX_CHAT", id, "FACTION_CHANGED", id, var17, Factions[item + 1]);
2708 }
2709 UpdateSettings(id);
2710 }
2711 else
2712 {
2713 new var19;
2714 if (FactionTeam[item + 1] == 1)
2715 {
2716 var19 = 4129592;
2717 }
2718 else
2719 {
2720 var19 = 4129652;
2721 }
2722 new var20;
2723 if (FactionTeam[item + 1] == 1)
2724 {
2725 var20 = -2;
2726 }
2727 else
2728 {
2729 var20 = -3;
2730 }
2731 client_print_color(id, var20, "%L %L", id, "PREFIX_CHAT", id, "FACTION_NOLVL", FactionLVL[item + 1], Factions[item + 1], id, var19);
2732 }
2733 MenuFactions(id);
2734 return 1;
2735}
2736
2737public fwHamPlayerSpawnPost(id)
2738{
2739 if (is_user_alive(id))
2740 {
2741 set_task(1036831949, "spawnStuff", id, 4109032, MaxClients, 4109036, MaxClients);
2742 }
2743 return 0;
2744}
2745
2746public spawnStuff(id)
2747{
2748 if (!isLogged[id])
2749 {
2750 Reminder(id);
2751 }
2752 new spritesEnabled = get_pcvar_num(cvar_EnableRankSprites);
2753 new var1;
2754 if (spritesEnabled && !RoundStarted)
2755 {
2756 removeEntity(id);
2757 createEntity(id);
2758 }
2759 if (isLogged[id])
2760 {
2761 if (get_user_team(id, {0}, MaxClients) == 1)
2762 {
2763 if (FactionT[id])
2764 {
2765 cs_reset_player_model(id);
2766 cs_set_player_model(id, FactionPath[FactionT[id]]);
2767 }
2768 }
2769 if (get_user_team(id, {0}, MaxClients) == 2)
2770 {
2771 if (FactionCT[id])
2772 {
2773 cs_reset_player_model(id);
2774 cs_set_player_model(id, FactionPath[FactionCT[id]]);
2775 }
2776 }
2777 }
2778 return 0;
2779}
2780
2781public TradePlayer(id)
2782{
2783 new szText[128];
2784 new String[32];
2785 new var1;
2786 if (get_pcvar_num(cvar_ShowTips))
2787 {
2788 var1 = 4129868;
2789 }
2790 else
2791 {
2792 var1 = 4129932;
2793 }
2794 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_TRADEOFFER", id, var1);
2795 new menu = menu_create(szText, "tradeplayer_handler", MaxClients);
2796 new players[32];
2797 new pnum;
2798 new tempid;
2799 new count;
2800 get_players(players, pnum, "ch", 4130056);
2801 new i;
2802 while (i < pnum)
2803 {
2804 tempid = players[i];
2805 new var2;
2806 if (!isLogged[tempid] || id != tempid || intrade[tempid])
2807 {
2808 }
2809 else
2810 {
2811 count++;
2812 formatex(String, 31, "%d", tempid);
2813 user_name(tempid);
2814
2815/* ERROR! Can't print expression: Heap */
2816 function "TradePlayer" (number 54)
2817public tradeplayer_handler(id, menu, item)
2818{
2819 if (item == -3)
2820 {
2821 MainMenu(id);
2822 menu_destroy(menu);
2823 return 1;
2824 }
2825 new data[9];
2826 new name[64];
2827 new Key;
2828 new access;
2829 new callback;
2830 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
2831 Key = str_to_num(data);
2832 tradetarget[id] = Key;
2833 TradeMenu(id);
2834 menu_destroy(menu);
2835 return 1;
2836}
2837
2838public TradeMenu(id)
2839{
2840 if (tradesender[id])
2841 {
2842 SendTrade(id, tradesender[id]);
2843 }
2844 else
2845 {
2846 if (!tradetarget[id])
2847 {
2848 TradePlayer(id);
2849 }
2850 new szText[150];
2851 new SkinName[64];
2852 user_name(tradetarget[id]);
2853
2854/* ERROR! Can't print expression: Heap */
2855 function "TradeMenu" (number 56)
2856public trade_handler(id, menu, item)
2857{
2858 if (item == -3)
2859 {
2860 MainMenu(id);
2861 menu_destroy(menu);
2862 return 1;
2863 }
2864 switch (item)
2865 {
2866 case 0:
2867 {
2868 TradeWeapon(id);
2869 }
2870 case 1:
2871 {
2872 TradeWeapon2(id);
2873 }
2874 case 2:
2875 {
2876 if (!intrade[tradetarget[id]])
2877 {
2878 new var1;
2879 if (tradeskin[id] && tradeskinget[id])
2880 {
2881 SendTrade(tradetarget[id], id);
2882 tradesender[tradetarget[id]] = id;
2883 user_name(tradetarget[id]);
2884
2885/* ERROR! Can't print expression: Heap */
2886 function "trade_handler" (number 57)
2887public SendTrade(id, senderid)
2888{
2889 new szText[256];
2890 new String[32];
2891 new SkinName[128];
2892 new call = menu_makecallback("Call_Back");
2893 user_name(senderid);
2894
2895/* ERROR! Can't print expression: Heap */
2896 function "SendTrade" (number 58)
2897public sendtrade_handler(id, menu, item)
2898{
2899 if (item == -3)
2900 {
2901 MainMenu(id);
2902 menu_destroy(menu);
2903 return 1;
2904 }
2905 new data[9];
2906 new name[64];
2907 new access;
2908 new callback;
2909 new left[4];
2910 new right[4];
2911 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
2912 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
2913 new receiverid = str_to_num(left);
2914 new senderid = str_to_num(right);
2915 switch (item)
2916 {
2917 case 2:
2918 {
2919 new var1;
2920 if (UserSkins[tradeskinget[senderid]][receiverid] > 0 && UserSkins[tradeskin[senderid]][senderid] > 0)
2921 {
2922 UserSkins[tradeskin[senderid]][receiverid]++;
2923 UserSkins[tradeskinget[senderid]][receiverid]--;
2924 UserSkins[tradeskinget[senderid]][senderid]++;
2925 UserSkins[tradeskin[senderid]][senderid]--;
2926 user_name(senderid);
2927
2928/* ERROR! Can't print expression: Heap */
2929 function "sendtrade_handler" (number 59)
2930public TradeWeapon(id)
2931{
2932 new szText[128];
2933 new String[32];
2934 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CRAFTINGCHOOSE");
2935 new menu = menu_create(szText, "tradeweapon_handler", MaxClients);
2936 new i = 1;
2937 while (i < 31)
2938 {
2939 if (SkinExists[i])
2940 {
2941 formatex(String, 31, "%d", szWeaponId[i]);
2942 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
2943 menu_additem(menu, szText, String, MaxClients, -1);
2944 }
2945 i++;
2946 }
2947 menu_setprop(menu, 6, 1);
2948 menu_display(id, menu, MaxClients, -1);
2949 return 0;
2950}
2951
2952public tradeweapon_handler(id, menu, item)
2953{
2954 if (item == -3)
2955 {
2956 TradeMenu(id);
2957 menu_destroy(menu);
2958 return 1;
2959 }
2960 new data[9];
2961 new name[64];
2962 new Key;
2963 new access;
2964 new callback;
2965 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
2966 Key = str_to_num(data);
2967 TradeSkin(id, Key);
2968 menu_destroy(menu);
2969 return 1;
2970}
2971
2972public TradeSkin(id, wepid)
2973{
2974 new szText[256];
2975 new String[32];
2976 new count;
2977 new SkinName[128];
2978 new var1;
2979 if (get_pcvar_num(cvar_ShowTips))
2980 {
2981 var1 = 4132800;
2982 }
2983 else
2984 {
2985 var1 = 4132880;
2986 }
2987 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
2988 new menu = menu_create(szText, "tradingskin_handler", MaxClients);
2989 new i;
2990 while (i < AllWeapon)
2991 {
2992 new var2;
2993 if (wepid == Weapons[i] && UserSkins[i][id])
2994 {
2995 }
2996 else
2997 {
2998 count++;
2999 format_skin_name(SkinName, 128, i, 3);
3000 formatex(String, 31, "%d|%d", i, wepid);
3001 formatex(szText, 256, "%s", SkinName, UserSkins[i][id]);
3002 menu_additem(menu, szText, String, MaxClients, -1);
3003 }
3004 i++;
3005 }
3006 if (!count)
3007 {
3008 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
3009 TradeWeapon(id);
3010 }
3011 else
3012 {
3013 menu_setprop(menu, 6, 1);
3014 menu_display(id, menu, MaxClients, -1);
3015 }
3016 return 0;
3017}
3018
3019public tradingskin_handler(id, menu, item)
3020{
3021 if (item == -3)
3022 {
3023 TradeWeapon(id);
3024 menu_destroy(menu);
3025 return 1;
3026 }
3027 new data[9];
3028 new name[64];
3029 new Key;
3030 new access;
3031 new callback;
3032 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3033 new left[4];
3034 new right[4];
3035 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
3036 Key = str_to_num(left);
3037 new wpid = str_to_num(right);
3038 tradeskin[id] = Key;
3039 tradeskin_wepid[id] = wpid;
3040 TradeMenu(id);
3041 menu_destroy(menu);
3042 return 1;
3043}
3044
3045public TradeWeapon2(id)
3046{
3047 new szText[128];
3048 new String[32];
3049 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CRAFTINGCHOOSE");
3050 new menu = menu_create(szText, "tradeweapon2_handler", MaxClients);
3051 new i = 1;
3052 while (i < 31)
3053 {
3054 if (SkinExists[i])
3055 {
3056 formatex(String, 31, "%d", szWeaponId[i]);
3057 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
3058 menu_additem(menu, szText, String, MaxClients, -1);
3059 }
3060 i++;
3061 }
3062 menu_setprop(menu, 6, 1);
3063 menu_display(id, menu, MaxClients, -1);
3064 return 0;
3065}
3066
3067public tradeweapon2_handler(id, menu, item)
3068{
3069 if (item == -3)
3070 {
3071 TradeMenu(id);
3072 menu_destroy(menu);
3073 return 1;
3074 }
3075 new data[9];
3076 new name[64];
3077 new Key;
3078 new access;
3079 new callback;
3080 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3081 Key = str_to_num(data);
3082 TradeSkin2(id, Key);
3083 menu_destroy(menu);
3084 return 1;
3085}
3086
3087public TradeSkin2(id, wepid)
3088{
3089 new szText[256];
3090 new String[32];
3091 new count;
3092 new SkinName[128];
3093 new var1;
3094 if (get_pcvar_num(cvar_ShowTips))
3095 {
3096 var1 = 4133612;
3097 }
3098 else
3099 {
3100 var1 = 4133692;
3101 }
3102 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
3103 new menu = menu_create(szText, "tradingskin2_handler", MaxClients);
3104 new i;
3105 while (i < AllWeapon)
3106 {
3107 new var2;
3108 if (wepid == Weapons[i] && UserSkins[i][tradetarget[id]])
3109 {
3110 }
3111 else
3112 {
3113 count++;
3114 format_skin_name(SkinName, 128, i, 3);
3115 formatex(String, 31, "%d|%d", i, wepid);
3116 formatex(szText, 256, "%s \r[\w%d\r]", SkinName, UserSkins[i][tradetarget[id]]);
3117 menu_additem(menu, szText, String, MaxClients, -1);
3118 }
3119 i++;
3120 }
3121 if (!count)
3122 {
3123 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
3124 TradeWeapon2(id);
3125 }
3126 else
3127 {
3128 menu_setprop(menu, 6, 1);
3129 menu_display(id, menu, MaxClients, -1);
3130 }
3131 return 0;
3132}
3133
3134public tradingskin2_handler(id, menu, item)
3135{
3136 if (item == -3)
3137 {
3138 TradeWeapon2(id);
3139 menu_destroy(menu);
3140 return 1;
3141 }
3142 new data[9];
3143 new name[64];
3144 new Key;
3145 new access;
3146 new callback;
3147 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3148 new left[4];
3149 new right[4];
3150 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
3151 Key = str_to_num(left);
3152 new wpid = str_to_num(right);
3153 tradeskinget[id] = Key;
3154 tradeskinget_wepid[id] = wpid;
3155 TradeMenu(id);
3156 menu_destroy(menu);
3157 return 1;
3158}
3159
3160public Flip(id)
3161{
3162 new szText[128];
3163 new szName[64];
3164 user_name(flipOpponent[id]);
3165 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_COINFLIP");
3166 new menu = menu_create(szText, "flip_handler", MaxClients);
3167 formatex(szText, cvar_SqlUser, "%L", id, "FLIP_BET", flipBet[id]);
3168 menu_additem(menu, szText, 4134220, MaxClients, -1);
3169 new var1;
3170 if (flipOpponent[id])
3171 {
3172 var1 = szName;
3173 }
3174 else
3175 {
3176 var1 = 4134376;
3177 }
3178 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "FLIP_OPPONENT", var1);
3179 menu_additem(menu, szText, 4134400, MaxClients, -1);
3180 new var2;
3181 if (flipOpponent[id] && flipBet[id])
3182 {
3183 var3 = 4134424;
3184 }
3185 else
3186 {
3187 var3 = 4134436;
3188 }
3189 formatex(szText, cvar_SqlUser, "%s%L", var3, id, "FLIP_START");
3190 menu_additem(menu, szText, 4134492, MaxClients, -1);
3191 menu_setprop(menu, 6, 1);
3192 menu_display(id, menu, MaxClients, -1);
3193 return 1;
3194}
3195
3196public flip_handler(id, menu, item)
3197{
3198 if (item == -3)
3199 {
3200 MainMenu(id);
3201 menu_destroy(menu);
3202 return 1;
3203 }
3204 switch (item)
3205 {
3206 case 0:
3207 {
3208 client_cmd(id, "messagemode Bet");
3209 Flip(id);
3210 }
3211 case 1:
3212 {
3213 if (flipBet[id])
3214 {
3215 ChooseOpponent(id);
3216 }
3217 else
3218 {
3219 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CHOOSE_BET");
3220 Flip(id);
3221 }
3222 }
3223 case 2:
3224 {
3225 if (!flipOpponent[id])
3226 {
3227 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CHOOSE_OPPONENT");
3228 Flip(id);
3229 }
3230 else
3231 {
3232 if (!flipBet[id])
3233 {
3234 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CHOOSE_BET");
3235 Flip(id);
3236 }
3237 user_name(flipOpponent[id]);
3238
3239/* ERROR! Can't print expression: Heap */
3240 function "flip_handler" (number 69)
3241public SendRequest(id, receiver)
3242{
3243 new szText[128];
3244 new szName[64];
3245 new String[32];
3246 user_name(id);
3247 formatex(szText, cvar_SqlUser, "%L %L", receiver, "PREFIX_HUD", receiver, "FLIP_REQUEST", szName, flipBet[id]);
3248 new menu = menu_create(szText, "fliprequest_handler", MaxClients);
3249 formatex(szText, cvar_SqlUser, "%L", receiver, "CLAN_ACCEPT");
3250 formatex(String, 31, "%d", id);
3251 menu_additem(menu, szText, String, MaxClients, -1);
3252 formatex(szText, cvar_SqlUser, "%L", receiver, "CLAN_DECLINE");
3253 formatex(String, 31, "%d", id);
3254 menu_additem(menu, szText, String, MaxClients, -1);
3255 menu_setprop(menu, 6, -1);
3256 menu_display(receiver, menu, MaxClients, -1);
3257 return 1;
3258}
3259
3260public fliprequest_handler(id, menu, item)
3261{
3262 new data[9];
3263 new name[64];
3264 new Key;
3265 new access;
3266 new callback;
3267 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3268 Key = str_to_num(data);
3269 switch (item)
3270 {
3271 case 0:
3272 {
3273 if (!inFlip[Key])
3274 {
3275 user_name(Key);
3276
3277/* ERROR! Can't print expression: Heap */
3278 function "fliprequest_handler" (number 71)
3279public fliptimer(Params[])
3280{
3281 new receiver = Params[0];
3282 new sender = Params[1];
3283 new winner = random_num(1, 2);
3284 switch (winner)
3285 {
3286 case 1:
3287 {
3288 user_name(receiver);
3289 user_name(sender);
3290
3291/* ERROR! Can't print expression: Heap */
3292 function "fliptimer" (number 72)
3293public ChooseOpponent(id)
3294{
3295 new szText[128];
3296 new String[32];
3297 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "FLIP_OPPONENT2");
3298 new menu = menu_create(szText, "opponent_handler", MaxClients);
3299 new players[32];
3300 new pnum;
3301 new tempid;
3302 new count;
3303 get_players(players, pnum, "ch", 4130056);
3304 new i;
3305 while (i < pnum)
3306 {
3307 tempid = players[i];
3308 new var1;
3309 if (!isLogged[tempid] || id != tempid || Points[tempid] < flipBet[id] || inFlip[tempid])
3310 {
3311 }
3312 else
3313 {
3314 count++;
3315 formatex(String, 31, "%d", tempid);
3316 user_name(tempid);
3317
3318/* ERROR! Can't print expression: Heap */
3319 function "ChooseOpponent" (number 73)
3320public opponent_handler(id, menu, item)
3321{
3322 if (item == -3)
3323 {
3324 Flip(id);
3325 menu_destroy(menu);
3326 return 1;
3327 }
3328 new data[9];
3329 new name[64];
3330 new Key;
3331 new access;
3332 new callback;
3333 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3334 Key = str_to_num(data);
3335 flipOpponent[id] = Key;
3336 Flip(id);
3337 menu_destroy(menu);
3338 return 1;
3339}
3340
3341public MissionsMenu(id)
3342{
3343 new szText[128];
3344 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_MISSIONS");
3345 new menu = menu_create(szText, "missionmenu_handler", MaxClients);
3346 formatex(szText, cvar_SqlUser, "Kill 15 Enemies \r[\wProgress: 5\r]");
3347 menu_additem(menu, szText, 4136940, MaxClients, -1);
3348 menu_setprop(menu, 6, 1);
3349 menu_display(id, menu, MaxClients, -1);
3350 return 1;
3351}
3352
3353public missionmenu_handler(id, menu, item)
3354{
3355 if (item == -3)
3356 {
3357 MainMenu(id);
3358 menu_destroy(menu);
3359 return 1;
3360 }
3361 MissionsMenu(id);
3362 menu_destroy(menu);
3363 return 1;
3364}
3365
3366public DeathNoteMenu(id)
3367{
3368 new szText[256];
3369 formatex(szText, 256, "%L %L", id, "PREFIX_HUD", id, "MENU_DEATHNOTE");
3370 new menu = menu_create(szText, "deathmenu_handler", MaxClients);
3371 if (hasDeathNote[id])
3372 {
3373 new var1;
3374 if (strlen(DeathNote[id]) > 2)
3375 {
3376 var1 = DeathNote[id];
3377 }
3378 else
3379 {
3380 var1 = 4137324;
3381 }
3382 formatex(szText, 256, "%L: %s\n\r------------------%L", id, "MENU_DEATHNOTE", var1, id, "DEATHNOTE_TIP");
3383 menu_additem(menu, szText, 4137396, MaxClients, -1);
3384 }
3385 else
3386 {
3387 formatex(szText, 256, "%L", id, "BUY_DEATHNOTE");
3388 menu_additem(menu, szText, 4137468, MaxClients, -1);
3389 }
3390 menu_setprop(menu, 6, 1);
3391 menu_display(id, menu, MaxClients, -1);
3392 return 1;
3393}
3394
3395public deathmenu_handler(id, menu, item)
3396{
3397 if (item == -3)
3398 {
3399 MainMenu(id);
3400 menu_destroy(menu);
3401 return 1;
3402 }
3403 new cost = get_pcvar_num(cvar_DNPrice);
3404 switch (item)
3405 {
3406 case 0:
3407 {
3408 if (hasDeathNote[id])
3409 {
3410 client_cmd(id, "messagemode DeathNote");
3411 }
3412 else
3413 {
3414 if (cost <= Points[id])
3415 {
3416 Points[id] -= cost;
3417 hasDeathNote[id] = 1;
3418 UpdateStats(id);
3419 }
3420 }
3421 }
3422 default:
3423 {
3424 }
3425 }
3426 DeathNoteMenu(id);
3427 menu_destroy(menu);
3428 return 1;
3429}
3430
3431public Top15(id)
3432{
3433 new szMotd[512];
3434 get_pcvar_string(cvar_TopUrl, szMotd, 511);
3435 show_motd(id, szMotd, "Top 15");
3436 return 0;
3437}
3438
3439public Clan15(id)
3440{
3441 new szMotd[512];
3442 get_pcvar_string(cvar_ClanUrl, szMotd, 511);
3443 show_motd(id, szMotd, "Clan 15");
3444 return 0;
3445}
3446
3447public CraftingMenu(id)
3448{
3449 new szText[128];
3450 new dusts = get_pcvar_num(cvar_MinDusts);
3451 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CRAFTING", id, "YOUR_DUSTS", Dusts[id]);
3452 new menu = menu_create(szText, "craftingmenu_handler", MaxClients);
3453 formatex(szText, cvar_SqlUser, "%L [%d %L]\n\r------------------", id, "CRAFT_SKIN", dusts, id, "WORD_DUSTS");
3454 menu_additem(menu, szText, 4138096, MaxClients, -1);
3455 formatex(szText, cvar_SqlUser, "%L", id, "CRAFT_GETDUSTS");
3456 menu_additem(menu, szText, 4138172, MaxClients, -1);
3457 menu_setprop(menu, 6, 1);
3458 menu_display(id, menu, MaxClients, -1);
3459 return 1;
3460}
3461
3462public craftingmenu_handler(id, menu, item)
3463{
3464 if (item == -3)
3465 {
3466 MainMenu(id);
3467 menu_destroy(menu);
3468 return 1;
3469 }
3470 new dusts = get_pcvar_num(cvar_MinDusts);
3471 new SkinName[128];
3472 switch (item)
3473 {
3474 case 0:
3475 {
3476 if (dusts <= Dusts[id])
3477 {
3478 new skind;
3479 new rand;
3480 new chanceItem = random_item("\x01\x04\x0F#-", 5);
3481 new var1 = chestSkins;
3482 rand = random_num(1, var1[0][var1][Odds[chanceItem]]);
3483 new var2 = chestsList;
3484 skind = var2[0][var2][Odds[chanceItem]][rand];
3485 format_skin_name(SkinName, 128, skind, 1);
3486 user_name(id);
3487
3488/* ERROR! Can't print expression: Heap */
3489 function "craftingmenu_handler" (number 82)
3490public CraftingWeapons(id)
3491{
3492 new szText[128];
3493 new String[32];
3494 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CRAFTINGCHOOSE");
3495 new menu = menu_create(szText, "craftingweapons_handler", MaxClients);
3496 new i = 1;
3497 while (i < 31)
3498 {
3499 if (SkinExists[i])
3500 {
3501 formatex(String, 31, "%d", szWeaponId[i]);
3502 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
3503 menu_additem(menu, szText, String, MaxClients, -1);
3504 }
3505 i++;
3506 }
3507 menu_setprop(menu, 6, 1);
3508 menu_display(id, menu, MaxClients, -1);
3509 return 0;
3510}
3511
3512public craftingweapons_handler(id, menu, item)
3513{
3514 if (item == -3)
3515 {
3516 CraftingMenu(id);
3517 menu_destroy(menu);
3518 return 1;
3519 }
3520 new data[9];
3521 new name[64];
3522 new Key;
3523 new access;
3524 new callback;
3525 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3526 Key = str_to_num(data);
3527 CraftingSkin(id, Key);
3528 menu_destroy(menu);
3529 return 1;
3530}
3531
3532public CraftingSkin(id, wepid)
3533{
3534 new szText[256];
3535 new String[32];
3536 new count;
3537 new SkinName[128];
3538 new var1;
3539 if (get_pcvar_num(cvar_ShowTips))
3540 {
3541 var1 = 4138928;
3542 }
3543 else
3544 {
3545 var1 = 4139020;
3546 }
3547 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
3548 new menu = menu_create(szText, "craftingskin_handler", MaxClients);
3549 new dustcount;
3550 new i;
3551 while (i < AllWeapon)
3552 {
3553 new var2;
3554 if (wepid == Weapons[i] && UserSkins[i][id])
3555 {
3556 }
3557 else
3558 {
3559 count++;
3560 switch (Chance[i])
3561 {
3562 case 1:
3563 {
3564 dustcount = get_pcvar_num(cvar_DustKnife);
3565 }
3566 case 4:
3567 {
3568 dustcount = get_pcvar_num(cvar_DustERare);
3569 }
3570 case 15:
3571 {
3572 dustcount = get_pcvar_num(cvar_DustRare);
3573 }
3574 case 35:
3575 {
3576 dustcount = get_pcvar_num(cvar_DustUncommon);
3577 }
3578 case 45:
3579 {
3580 dustcount = get_pcvar_num(cvar_DustCommon);
3581 }
3582 default:
3583 {
3584 }
3585 }
3586 format_skin_name(SkinName, 128, i, 3);
3587 formatex(String, 31, "%d|%d", i, wepid);
3588 formatex(szText, 256, "%s \r[\w%d\r] \w| [%d \w%L]", SkinName, UserSkins[i][id], dustcount, id, "WORD_DUSTS");
3589 menu_additem(menu, szText, String, MaxClients, -1);
3590 }
3591 i++;
3592 }
3593 if (!count)
3594 {
3595 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
3596 CraftingWeapons(id);
3597 }
3598 else
3599 {
3600 menu_setprop(menu, 6, 1);
3601 menu_display(id, menu, MaxClients, -1);
3602 }
3603 return 0;
3604}
3605
3606public craftingskin_handler(id, menu, item)
3607{
3608 if (item == -3)
3609 {
3610 CraftingWeapons(id);
3611 menu_destroy(menu);
3612 return 1;
3613 }
3614 new data[9];
3615 new name[64];
3616 new Key;
3617 new access;
3618 new callback;
3619 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3620 new left[4];
3621 new right[4];
3622 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
3623 Key = str_to_num(left);
3624 new dustcount;
3625 new SkinName[128];
3626 switch (Chance[Key])
3627 {
3628 case 1:
3629 {
3630 dustcount = get_pcvar_num(cvar_DustKnife);
3631 }
3632 case 4:
3633 {
3634 dustcount = get_pcvar_num(cvar_DustERare);
3635 }
3636 case 15:
3637 {
3638 dustcount = get_pcvar_num(cvar_DustRare);
3639 }
3640 case 35:
3641 {
3642 dustcount = get_pcvar_num(cvar_DustUncommon);
3643 }
3644 case 45:
3645 {
3646 dustcount = get_pcvar_num(cvar_DustCommon);
3647 }
3648 default:
3649 {
3650 }
3651 }
3652 new var1 = Dusts[id];
3653 var1 = var1[dustcount];
3654 UserSkins[Key][id]--;
3655 UpdateItems(id);
3656 UpdateStats(id);
3657 format_skin_name(SkinName, 128, Key, 1);
3658 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_DUSTED", SkinName, dustcount);
3659 CraftingMenu(id);
3660 menu_destroy(menu);
3661 return 1;
3662}
3663
3664public SettingsMenu(id)
3665{
3666 new szText[128];
3667 new rankRR;
3668 new rankCost;
3669 rankRR = get_pcvar_num(cvar_RestartRank);
3670 rankCost = get_pcvar_num(cvar_RestartCost);
3671 new var1;
3672 if (get_pcvar_num(cvar_ShowTips))
3673 {
3674 var1 = 4139676;
3675 }
3676 else
3677 {
3678 var1 = 4139728;
3679 }
3680 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "SETTINGS_MENU", id, var1);
3681 new menu = menu_create(szText, "settingsmenu_handler", MaxClients);
3682 new var2;
3683 if (HudEnabled[id])
3684 {
3685 var2 = 4139920;
3686 }
3687 else
3688 {
3689 var2 = 4139952;
3690 }
3691 formatex(szText, cvar_SqlUser, "%L %L", id, "SETTINGS_HUD", id, var2);
3692 menu_additem(menu, szText, 4139988, MaxClients, -1);
3693 new var3;
3694 if (MVPSoundVIP[MVPSound[id]])
3695 {
3696 var3 = 4140108;
3697 }
3698 else
3699 {
3700 var3 = 4140140;
3701 }
3702 formatex(szText, cvar_SqlUser, "%L \r%s %L", id, "SETTINGS_MVPSOUND", MVPSounds[MVPSound[id]], id, var3);
3703 menu_additem(menu, szText, 4140164, MaxClients, -1);
3704 new var4;
3705 if (MVPEnabled[id])
3706 {
3707 var4 = 4140380;
3708 }
3709 else
3710 {
3711 var4 = 4140408;
3712 }
3713 formatex(szText, cvar_SqlUser, "%L %L\n\r------------------------", id, "SETTINGS_MVPENABLED", id, var4);
3714 menu_additem(menu, szText, 4140440, MaxClients, -1);
3715 if (rankRR)
3716 {
3717 formatex(szText, cvar_SqlUser, "%L \w[\r%d\w %L]", id, "SETTINGS_RANKRR", rankCost, id, "WORD_POINTS");
3718 menu_additem(menu, szText, 4140624, MaxClients, -1);
3719 }
3720 menu_setprop(menu, 6, 1);
3721 menu_display(id, menu, MaxClients, -1);
3722 return 1;
3723}
3724
3725public settingsmenu_handler(id, menu, item)
3726{
3727 if (item == -3)
3728 {
3729 MainMenu(id);
3730 menu_destroy(menu);
3731 return 1;
3732 }
3733 switch (item)
3734 {
3735 case 0:
3736 {
3737 HudEnabled[id] = !HudEnabled[id];
3738 SettingsMenu(id);
3739 UpdateSettings(id);
3740 }
3741 case 1:
3742 {
3743 MVPSoundSelect(id);
3744 }
3745 case 2:
3746 {
3747 MVPEnabled[id] = !MVPEnabled[id];
3748 SettingsMenu(id);
3749 UpdateSettings(id);
3750 }
3751 case 3:
3752 {
3753 new rankCost = get_pcvar_num(cvar_RestartCost);
3754 if (rankCost <= Points[id])
3755 {
3756 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK_RESET");
3757 Rank[id] = 0;
3758 Kills[id] = 0;
3759 Mvp[id] = 0;
3760 Skill[id] = 1120403456;
3761 Points[id] -= rankCost;
3762 UpdateStats(id);
3763 }
3764 else
3765 {
3766 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", rankCost - Points[id]);
3767 }
3768 SettingsMenu(id);
3769 }
3770 default:
3771 {
3772 }
3773 }
3774 menu_destroy(menu);
3775 return 1;
3776}
3777
3778public GraffitiMenu(id)
3779{
3780 new szText[256];
3781 new String[32];
3782 formatex(szText, 256, "%L %L", id, "PREFIX_HUD", id, "MENU_GRAFFITI");
3783 new menu = menu_create(szText, "graffiti_handler", MaxClients);
3784 formatex(szText, 256, "%L\n\r------------------------", id, "OPEN_GRAFFITI", GraffitiBox[id]);
3785 menu_additem(menu, szText, "-1", MaxClients, -1);
3786 new i = 1;
3787 while (i < 64)
3788 {
3789 if (0 < UserGraffiti[i][id])
3790 {
3791 new var1;
3792 if (i == SelectedGraffiti[id])
3793 {
3794 var1 = 4141336;
3795 }
3796 else
3797 {
3798 var1 = 4141384;
3799 }
3800 formatex(szText, 256, "%s \w[\r%d\w] %L", Graffities[i], UserGraffiti[i][id], id, var1);
3801 formatex(String, 32, "%d", i);
3802 menu_additem(menu, szText, String, MaxClients, -1);
3803 }
3804 i++;
3805 }
3806 menu_setprop(menu, 6, 1);
3807 menu_display(id, menu, MaxClients, -1);
3808 return 1;
3809}
3810
3811public graffiti_handler(id, menu, item)
3812{
3813 if (item == -3)
3814 {
3815 MainMenu(id);
3816 menu_destroy(menu);
3817 return 1;
3818 }
3819 new data[9];
3820 new name[64];
3821 new Key;
3822 new access;
3823 new callback;
3824 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3825 Key = str_to_num(data);
3826 if (Key == -1)
3827 {
3828 if (0 < GraffitiBox[id])
3829 {
3830 new rNum = random_num(1, 63);
3831 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "OPENED_GBOX", Graffities[rNum]);
3832 UserGraffiti[rNum][id]++;
3833 GraffitiBox[id]--;
3834 }
3835 GraffitiMenu(id);
3836 UpdateMisc(id);
3837 return 1;
3838 }
3839 if (Key == SelectedGraffiti[id])
3840 {
3841 SelectedGraffiti[id] = 0;
3842 }
3843 else
3844 {
3845 SelectedGraffiti[id] = Key;
3846 }
3847 GraffitiMenu(id);
3848 UpdateMisc(id);
3849 return 1;
3850}
3851
3852public MVPSoundSelect(id)
3853{
3854 new szText[256];
3855 new vipFlag[32];
3856 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
3857 new var1;
3858 if (get_pcvar_num(cvar_ShowTips))
3859 {
3860 var1 = 4141672;
3861 }
3862 else
3863 {
3864 var1 = 4141724;
3865 }
3866 formatex(szText, 256, "%L %L%L", id, "PREFIX_HUD", id, "SETTINGS_MENU", id, var1);
3867 new menu = menu_create(szText, "mvpselect_handler", MaxClients);
3868 new i;
3869 while (AllSounds + -1 > i)
3870 {
3871 new var2;
3872 if (MVPSoundVIP[i])
3873 {
3874 var2 = 4141884;
3875 }
3876 else
3877 {
3878 var2 = 4141916;
3879 }
3880 new var3;
3881 if (MVPSoundVIP[i] && !has_all_flags(id, vipFlag))
3882 {
3883 var4 = 4141860;
3884 }
3885 else
3886 {
3887 var4 = 4141872;
3888 }
3889 formatex(szText, 256, "%s%s %L", var4, MVPSounds[i], id, var2);
3890 menu_additem(menu, szText, 4141940, MaxClients, -1);
3891 i++;
3892 }
3893 menu_setprop(menu, 6, 1);
3894 menu_display(id, menu, MaxClients, -1);
3895 return 1;
3896}
3897
3898public mvpselect_handler(id, menu, item)
3899{
3900 if (item == -3)
3901 {
3902 SettingsMenu(id);
3903 menu_destroy(menu);
3904 return 1;
3905 }
3906 new vipFlag[32];
3907 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
3908 new isWav = equali(MVPSoundPath[item][strlen(MVPSoundPath[item]) - 4], ".wav", MaxClients);
3909 if (MVPSoundVIP[item])
3910 {
3911 if (has_all_flags(id, vipFlag))
3912 {
3913 MVPSound[id] = item;
3914 if (isWav)
3915 {
3916 client_cmd(id, "spk %s", MVPSoundPath[MVPSound[id]]);
3917 }
3918 else
3919 {
3920 client_cmd(id, "mp3 play sound/%s", MVPSoundPath[MVPSound[id]]);
3921 }
3922 SettingsMenu(id);
3923 UpdateSettings(id);
3924 }
3925 else
3926 {
3927 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "VIP_TRACK", MVPSounds[item]);
3928 MVPSoundSelect(id);
3929 }
3930 }
3931 else
3932 {
3933 MVPSound[id] = item;
3934 if (!isWav)
3935 {
3936 }
3937 SettingsMenu(id);
3938 UpdateSettings(id);
3939 }
3940 menu_destroy(menu);
3941 return 1;
3942}
3943
3944public GiftMenu(id)
3945{
3946 new szText[128];
3947 new szName[64];
3948 new SkinName[128];
3949 user_name(receiver_id[id]);
3950 format_skin_name(SkinName, 128, skingift_id[id], 3);
3951 new var1;
3952 if (get_pcvar_num(cvar_ShowTips))
3953 {
3954 var1 = 4142300;
3955 }
3956 else
3957 {
3958 var1 = 4142340;
3959 }
3960 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_GIFTS", id, var1);
3961 new menu = menu_create(szText, "giftmenu_handler", MaxClients);
3962 new var2;
3963 if (receiver_id[id])
3964 {
3965 var2 = szName;
3966 }
3967 else
3968 {
3969 var2 = 4142528;
3970 }
3971 formatex(szText, cvar_SqlUser, "%L \r%s", id, "GIFT_RECEIVER", var2);
3972 menu_additem(menu, szText, 4142552, MaxClients, -1);
3973 if (giftitemtype[id])
3974 {
3975 if (skingift_id[id])
3976 {
3977 formatex(szText, cvar_SqlUser, "%L %s", id, "GIFT_GIFT", SkinName);
3978 menu_additem(menu, szText, 4142620, MaxClients, -1);
3979 }
3980 else
3981 {
3982 formatex(szText, cvar_SqlUser, "%L \r%L", id, "GIFT_GIFT", id, "GIFT_POINTS");
3983 menu_additem(menu, szText, 4142744, MaxClients, -1);
3984 }
3985 }
3986 else
3987 {
3988 formatex(szText, cvar_SqlUser, "%L \r%s", id, "GIFT_GIFT", szCKNames[ckgift_item[id]]);
3989 menu_additem(menu, szText, 4142820, MaxClients, -1);
3990 }
3991 new var3;
3992 if (!giftitemtype[id] && ckgift_item[id])
3993 {
3994 new var4;
3995 if (ckgift_type[id])
3996 {
3997 var4 = 4142908;
3998 }
3999 else
4000 {
4001 var4 = 4142944;
4002 }
4003 formatex(szText, cvar_SqlUser, "%L: \r%L", id, "GIFT_CKTYPE", id, var4);
4004 menu_additem(menu, szText, 4142984, MaxClients, -1);
4005 }
4006 formatex(szText, cvar_SqlUser, "%L: \r%d\n\r------------------", id, "SHOP_QUANTITY", gift_quantity[id]);
4007 menu_additem(menu, szText, 4143164, MaxClients, -1);
4008 formatex(szText, cvar_SqlUser, "%L", id, "GIFT_SENDGIFT");
4009 menu_additem(menu, szText, 4143236, MaxClients, -1);
4010 menu_setprop(menu, 6, 1);
4011 menu_display(id, menu, MaxClients, -1);
4012 return 1;
4013}
4014
4015public giftmenu_handler(id, menu, item)
4016{
4017 if (item == -3)
4018 {
4019 MainMenu(id);
4020 menu_destroy(menu);
4021 return 1;
4022 }
4023 new SkinName[128];
4024 switch (item)
4025 {
4026 case 0:
4027 {
4028 PlayerList(id);
4029 }
4030 case 1:
4031 {
4032 GiftItems(id);
4033 }
4034 case 2:
4035 {
4036 new var4;
4037 if (!giftitemtype[id] && ckgift_item[id])
4038 {
4039 ckgift_type[id] = !ckgift_type[id];
4040 }
4041 else
4042 {
4043 client_cmd(id, "messagemode QuantityG");
4044 }
4045 GiftMenu(id);
4046 }
4047 case 3:
4048 {
4049 new var3;
4050 if (!giftitemtype[id] && ckgift_item[id])
4051 {
4052 client_cmd(id, "messagemode QuantityG");
4053 }
4054 else
4055 {
4056 if (skingift_id[id])
4057 {
4058 if (gift_quantity[id] <= UserSkins[skingift_id[id]][id])
4059 {
4060 if (receiver_id[id])
4061 {
4062 UserSkins[skingift_id[id]][id] -= gift_quantity[id];
4063 new var7 = UserSkins[skingift_id[id]][receiver_id[id]];
4064 var7 = gift_quantity[id][var7];
4065 UpdateItems(id);
4066 UpdateItems(receiver_id[id]);
4067 format_skin_name(SkinName, 128, skingift_id[id], 1);
4068 user_name(receiver_id[id]);
4069
4070/* ERROR! Can't print expression: Heap */
4071 function "giftmenu_handler" (number 94)
4072public PlayerList(id)
4073{
4074 new szText[128];
4075 new String[32];
4076 new var1;
4077 if (get_pcvar_num(cvar_ShowTips))
4078 {
4079 var1 = 4145756;
4080 }
4081 else
4082 {
4083 var1 = 4145800;
4084 }
4085 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_GIFTSR", id, var1);
4086 new menu = menu_create(szText, "playerlist_handler", MaxClients);
4087 new players[32];
4088 new pnum;
4089 new tempid;
4090 new count;
4091 get_players(players, pnum, "ch", 4130056);
4092 new i;
4093 while (i < pnum)
4094 {
4095 tempid = players[i];
4096 new var2;
4097 if (!isLogged[tempid] || tempid != id)
4098 {
4099 }
4100 else
4101 {
4102 count++;
4103 formatex(String, 31, "%d", tempid);
4104 user_name(tempid);
4105
4106/* ERROR! Can't print expression: Heap */
4107 function "PlayerList" (number 95)
4108public playerlist_handler(id, menu, item)
4109{
4110 if (item == -3)
4111 {
4112 GiftMenu(id);
4113 menu_destroy(menu);
4114 return 1;
4115 }
4116 new data[9];
4117 new name[64];
4118 new Key;
4119 new access;
4120 new callback;
4121 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4122 Key = str_to_num(data);
4123 receiver_id[id] = Key;
4124 GiftMenu(id);
4125 menu_destroy(menu);
4126 return 1;
4127}
4128
4129public ClanMenu(id)
4130{
4131 new szText[128];
4132 new menu;
4133 new clancost = get_pcvar_num(cvar_ClanCost);
4134 switch (clan_inclan[id])
4135 {
4136 case 0:
4137 {
4138 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLANCREATE", clancost);
4139 menu = menu_create(szText, "clanmenu_handler", MaxClients);
4140 new var1;
4141 if (strlen(clan_name[id]) > 1)
4142 {
4143 var1 = clan_name[id];
4144 }
4145 else
4146 {
4147 var1 = 4146284;
4148 }
4149 formatex(szText, cvar_SqlUser, "%L\n\r-------------------", id, "CLAN_NAME", var1);
4150 menu_additem(menu, szText, 4146308, MaxClients, -1);
4151 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_CREATE");
4152 menu_additem(menu, szText, 4146372, MaxClients, -1);
4153 }
4154 case 1:
4155 {
4156 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLANM");
4157 menu = menu_create(szText, "clanmenu_handler", MaxClients);
4158 if (clan_playerpos[id])
4159 {
4160 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_INVITE");
4161 menu_additem(menu, szText, 4146616, MaxClients, -1);
4162 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_MEMBERS", clan_count[id]);
4163 menu_additem(menu, szText, 4146684, MaxClients, -1);
4164 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "CLAN_KICK");
4165 menu_additem(menu, szText, 4146824, MaxClients, -1);
4166 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_DELETE");
4167 menu_additem(menu, szText, 4146888, MaxClients, -1);
4168 }
4169 else
4170 {
4171 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "CLAN_MEMBERS", clan_count[id]);
4172 menu_additem(menu, szText, 4147040, MaxClients, -1);
4173 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_LEAVE");
4174 menu_additem(menu, szText, 4147100, MaxClients, -1);
4175 }
4176 }
4177 default:
4178 {
4179 }
4180 }
4181 menu_setprop(menu, 6, 1);
4182 menu_display(id, menu, MaxClients, -1);
4183 return 1;
4184}
4185
4186public clanmenu_handler(id, menu, item)
4187{
4188 if (item == -3)
4189 {
4190 MainMenu(id);
4191 menu_destroy(menu);
4192 return 1;
4193 }
4194 new clancost = get_pcvar_num(cvar_ClanCost);
4195 switch (item)
4196 {
4197 case 0:
4198 {
4199 if (!clan_inclan[id])
4200 {
4201 if (clancost <= Points[id])
4202 {
4203 client_cmd(id, "messagemode ClanName");
4204 ClanMenu(id);
4205 }
4206 else
4207 {
4208 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", clancost - Points[id]);
4209 ClanMenu(id);
4210 }
4211 }
4212 else
4213 {
4214 new var2;
4215 if (clan_inclan[id] && clan_playerpos[id])
4216 {
4217 PlayerListClan(id);
4218 }
4219 if (clan_inclan[id])
4220 {
4221 ClanMembers(id);
4222 }
4223 }
4224 }
4225 case 1:
4226 {
4227 if (!clan_inclan[id])
4228 {
4229 if (!clan_istaken[id])
4230 {
4231 if (1 < strlen(clan_name[id]))
4232 {
4233 AddClan(id);
4234 clan_inclan[id] = 1;
4235 clan_playerpos[id] = 1;
4236 Points[id] -= clancost;
4237 UpdateStats(id);
4238 ClanMenu(id);
4239 }
4240 else
4241 {
4242 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "ENTER_CLANNAME");
4243 ClanMenu(id);
4244 }
4245 }
4246 else
4247 {
4248 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CLAN_TAKEN", clan_name[id]);
4249 ClanMenu(id);
4250 }
4251 }
4252 else
4253 {
4254 new var1;
4255 if (clan_inclan[id] && clan_playerpos[id])
4256 {
4257 ClanMembers(id);
4258 }
4259 if (clan_inclan[id])
4260 {
4261 new szTemp[1024];
4262 new szName[32];
4263 user_name_sql(szName, 32, id);
4264 format(szTemp, 1023, "UPDATE `csgo_stats` SET `clan_name` = '' WHERE `username` = '%s';", szName);
4265 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
4266 clan_inclan[id] = 0;
4267 new i;
4268 while (i < 5)
4269 {
4270 if (!(1 > strlen(clan_members[id][i])))
4271 {
4272 }
4273 i++;
4274 }
4275 ClanMenu(id);
4276 }
4277 }
4278 }
4279 case 2:
4280 {
4281 KickMembers(id);
4282 }
4283 case 3:
4284 {
4285 new szTemp[1024];
4286 format(szTemp, 1023, "UPDATE `csgo_stats` SET `clan_name` = '', `clan_pos` = '0' WHERE `clan_name` = '%s';", clan_name[id]);
4287 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
4288 format(szTemp, 1023, "DELETE FROM `csgo_clan` WHERE `clan_name` = '%s';", clan_name[id]);
4289 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
4290 new i;
4291 while (i < 5)
4292 {
4293 if (!(1 > strlen(clan_members[id][i])))
4294 {
4295 new userid = find_player(4148552, clan_members[id][i]);
4296 if (userid)
4297 {
4298 clan_inclan[userid] = 0;
4299 clan_playerpos[userid] = 0;
4300 }
4301 }
4302 i++;
4303 }
4304 ClanMenu(id);
4305 }
4306 default:
4307 {
4308 }
4309 }
4310 menu_destroy(menu);
4311 return 1;
4312}
4313
4314public ClanMembers(id)
4315{
4316 new szText[128];
4317 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLANMEMBERS", clan_name[id]);
4318 new menu = menu_create(szText, "clanmembers_handler", MaxClients);
4319 new i;
4320 while (i < 5)
4321 {
4322 if (!(1 > strlen(clan_members[id][i])))
4323 {
4324 formatex(szText, cvar_SqlUser, "%s", clan_members[id][i]);
4325 menu_additem(menu, szText, 4148796, MaxClients, -1);
4326 }
4327 i++;
4328 }
4329 menu_setprop(menu, 6, 1);
4330 menu_display(id, menu, MaxClients, -1);
4331 return 0;
4332}
4333
4334public clanmembers_handler(id, menu, item)
4335{
4336 if (item == -3)
4337 {
4338 ClanMenu(id);
4339 menu_destroy(menu);
4340 return 1;
4341 }
4342 ClanMenu(id);
4343 menu_destroy(menu);
4344 return 1;
4345}
4346
4347public KickMembers(id)
4348{
4349 new szText[128];
4350 new String[32];
4351 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_KICKMEMBERS", clan_name[id]);
4352 new menu = menu_create(szText, "kickmembers_handler", MaxClients);
4353 new i;
4354 while (i < 5)
4355 {
4356 new var1;
4357 if (strlen(clan_members[id][i]) < 1 || i != id)
4358 {
4359 }
4360 else
4361 {
4362 formatex(String, 31, "%s|%d", clan_members[id][i], i);
4363 formatex(szText, cvar_SqlUser, "%s", clan_members[id][i]);
4364 menu_additem(menu, szText, String, MaxClients, -1);
4365 }
4366 i++;
4367 }
4368 menu_setprop(menu, 6, 1);
4369 menu_display(id, menu, MaxClients, -1);
4370 return 0;
4371}
4372
4373public kickmembers_handler(id, menu, item)
4374{
4375 if (item == -3)
4376 {
4377 ClanMenu(id);
4378 menu_destroy(menu);
4379 return 1;
4380 }
4381 new data[9];
4382 new name[64];
4383 new access;
4384 new callback;
4385 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4386 new left[64];
4387 new right[4];
4388 strtok2(data, left, 63, right, 3, cvar_SqlHost, MaxClients);
4389 replace_all(left, 63, 4149052, "\'");
4390 replace_all(left, 63, 4149072, "\\"");
4391 new xd = str_to_num(right);
4392 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CLAN_KICKED", left);
4393 clan_count[id]--;
4394 new player = find_player(4149216, left);
4395 if (player)
4396 {
4397 clan_inclan[player] = 0;
4398 }
4399 new szTemp[1024];
4400 format(szTemp, 1023, "UPDATE `csgo_stats` SET `clan_name` = '' WHERE `username` = '%s';", left);
4401 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
4402 GetClanData(id);
4403 ClanMenu(id);
4404 menu_destroy(menu);
4405 return 1;
4406}
4407
4408public PlayerListClan(id)
4409{
4410 new szText[128];
4411 new String[32];
4412 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLAN");
4413 new menu = menu_create(szText, "playerlistclan_handler", MaxClients);
4414 new players[32];
4415 new pnum;
4416 new tempid;
4417 new count;
4418 get_players(players, pnum, "ch", 4130056);
4419 new i;
4420 while (i < pnum)
4421 {
4422 tempid = players[i];
4423 new var1;
4424 if (!isLogged[tempid] || clan_inclan[tempid] || i != tempid)
4425 {
4426 }
4427 else
4428 {
4429 count++;
4430 formatex(String, 31, "%d", tempid);
4431 user_name(tempid);
4432
4433/* ERROR! Can't print expression: Heap */
4434 function "PlayerListClan" (number 103)
4435public playerlistclan_handler(id, menu, item)
4436{
4437 if (item == -3)
4438 {
4439 ClanMenu(id);
4440 menu_destroy(menu);
4441 return 1;
4442 }
4443 new data[9];
4444 new name[64];
4445 new Key;
4446 new access;
4447 new callback;
4448 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4449 Key = str_to_num(data);
4450 user_name(Key);
4451
4452/* ERROR! Can't print expression: Heap */
4453 function "playerlistclan_handler" (number 104)
4454public Invitation(id, inviter)
4455{
4456 new szText[128];
4457 new String[32];
4458 user_name(inviter);
4459
4460/* ERROR! Can't print expression: Heap */
4461 function "Invitation" (number 105)
4462public invitation_handler(id, menu, item)
4463{
4464 if (item == -3)
4465 {
4466 GiftMenu(id);
4467 menu_destroy(menu);
4468 return 1;
4469 }
4470 new data[9];
4471 new name[64];
4472 new Key;
4473 new access;
4474 new callback;
4475 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4476 Key = str_to_num(data);
4477 switch (item)
4478 {
4479 case 0:
4480 {
4481 if (5 > clan_count[Key])
4482 {
4483 user_name(id);
4484
4485/* ERROR! Can't print expression: Heap */
4486 function "invitation_handler" (number 106)
4487public GiftItems(id)
4488{
4489 new szText[128];
4490 new String[32];
4491 new var1;
4492 if (get_pcvar_num(cvar_ShowTips))
4493 {
4494 var1 = 4150780;
4495 }
4496 else
4497 {
4498 var1 = 4150840;
4499 }
4500 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_GIFTCHOOSE", id, var1);
4501 new menu = menu_create(szText, "giftitems_handler", MaxClients);
4502 formatex(szText, cvar_SqlUser, "%L", id, "MENU_CHESTNKEYS");
4503 menu_additem(menu, szText, "-1", MaxClients, -1);
4504 formatex(szText, cvar_SqlUser, "%L\n\r------------------------", id, "GIFT_POINTS");
4505 menu_additem(menu, szText, "-2", MaxClients, -1);
4506 new i = 1;
4507 while (i < 31)
4508 {
4509 if (SkinExists[i])
4510 {
4511 formatex(String, 31, "%d", szWeaponId[i]);
4512 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
4513 menu_additem(menu, szText, String, MaxClients, -1);
4514 }
4515 i++;
4516 }
4517 menu_setprop(menu, 6, 1);
4518 menu_display(id, menu, MaxClients, -1);
4519 return 0;
4520}
4521
4522public giftitems_handler(id, menu, item)
4523{
4524 if (item == -3)
4525 {
4526 GiftMenu(id);
4527 menu_destroy(menu);
4528 return 1;
4529 }
4530 new data[9];
4531 new name[64];
4532 new Key;
4533 new access;
4534 new callback;
4535 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4536 Key = str_to_num(data);
4537 if (Key == -1)
4538 {
4539 CKList_Gift(id);
4540 menu_destroy(menu);
4541 return 1;
4542 }
4543 if (Key == -2)
4544 {
4545 giftitemtype[id] = 1;
4546 GiftMenu(id);
4547 menu_destroy(menu);
4548 return 1;
4549 }
4550 GiftSkin(id, Key);
4551 menu_destroy(menu);
4552 return 1;
4553}
4554
4555public CKList_Gift(id)
4556{
4557 new szText[128];
4558 new String[32];
4559 new var1;
4560 if (get_pcvar_num(cvar_ShowTips))
4561 {
4562 var1 = 4151432;
4563 }
4564 else
4565 {
4566 var1 = 4151476;
4567 }
4568 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CKLIST", id, var1);
4569 new menu = menu_create(szText, "cklistgift_handler", MaxClients);
4570 new i = 1;
4571 while (i <= 8)
4572 {
4573 formatex(String, 31, "%d", i);
4574 formatex(szText, cvar_SqlUser, "\w%s", szCKNames[i]);
4575 menu_additem(menu, szText, String, MaxClients, -1);
4576 i++;
4577 }
4578 menu_setprop(menu, 6, 1);
4579 menu_display(id, menu, MaxClients, -1);
4580 return 0;
4581}
4582
4583public cklistgift_handler(id, menu, item)
4584{
4585 if (item == -3)
4586 {
4587 GiftItems(id);
4588 menu_destroy(menu);
4589 return 1;
4590 }
4591 new data[9];
4592 new name[64];
4593 new Key;
4594 new access;
4595 new callback;
4596 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4597 Key = str_to_num(data);
4598 ckgift_item[id] = Key;
4599 giftitemtype[id] = 0;
4600 GiftMenu(id);
4601 menu_destroy(menu);
4602 return 1;
4603}
4604
4605public GiftSkin(id, wepid)
4606{
4607 new szText[256];
4608 new String[32];
4609 new count;
4610 new SkinName[128];
4611 new var1;
4612 if (get_pcvar_num(cvar_ShowTips))
4613 {
4614 var1 = 4151764;
4615 }
4616 else
4617 {
4618 var1 = 4151828;
4619 }
4620 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
4621 new menu = menu_create(szText, "giftskinmenu_handler", MaxClients);
4622 new i;
4623 while (i < AllWeapon)
4624 {
4625 new var2;
4626 if (wepid == Weapons[i] && UserSkins[i][id])
4627 {
4628 }
4629 else
4630 {
4631 count++;
4632 format_skin_name(SkinName, 128, i, 3);
4633 formatex(String, 31, "%d|%d", i, wepid);
4634 formatex(szText, 256, "%s \r[\w%d\r]", SkinName, UserSkins[i][id]);
4635 menu_additem(menu, szText, String, MaxClients, -1);
4636 }
4637 i++;
4638 }
4639 if (!count)
4640 {
4641 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
4642 GiftItems(id);
4643 }
4644 else
4645 {
4646 menu_setprop(menu, 6, 1);
4647 menu_display(id, menu, MaxClients, -1);
4648 }
4649 return 0;
4650}
4651
4652public giftskinmenu_handler(id, menu, item)
4653{
4654 if (item == -3)
4655 {
4656 GiftItems(id);
4657 menu_destroy(menu);
4658 return 1;
4659 }
4660 new data[9];
4661 new name[64];
4662 new Key;
4663 new access;
4664 new callback;
4665 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4666 new left[4];
4667 new right[4];
4668 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
4669 Key = str_to_num(left);
4670 new wpid = str_to_num(right);
4671 skingiftwep_id[id] = wpid;
4672 skingift_id[id] = Key;
4673 giftitemtype[id] = 1;
4674 gift_quantity[id] = 1;
4675 GiftMenu(id);
4676 menu_destroy(menu);
4677 return 1;
4678}
4679
4680public MarketMenu(id)
4681{
4682 new szText[128];
4683 new SkinName[128];
4684 new var1;
4685 if (get_pcvar_num(cvar_ShowTips))
4686 {
4687 var1 = 4152256;
4688 }
4689 else
4690 {
4691 var1 = 4152300;
4692 }
4693 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKET", id, var1);
4694 new menu = menu_create(szText, "marketmenu_handler", MaxClients);
4695 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "MARKET_GOTO");
4696 menu_additem(menu, szText, 4152552, MaxClients, -1);
4697 if (itemtype[id])
4698 {
4699 new var2;
4700 if (SelectedItemMarket[id])
4701 {
4702 var2 = szCKNames[SelectedItemMarket[id]];
4703 }
4704 else
4705 {
4706 var2 = 4152732;
4707 }
4708 new var3;
4709 if (SelectedItemMarket[id])
4710 {
4711 var3 = 4152588;
4712 }
4713 else
4714 {
4715 var3 = 4152668;
4716 }
4717 formatex(szText, cvar_SqlUser, "%L \r%s", id, var3, var2);
4718 menu_additem(menu, szText, 4152736, MaxClients, -1);
4719 }
4720 else
4721 {
4722 format_skin_name(SkinName, 128, marketskinid[id], 3);
4723 new var4;
4724 if (marketskinid[id])
4725 {
4726 var4 = SkinName;
4727 }
4728 else
4729 {
4730 var4 = 4152908;
4731 }
4732 new var5;
4733 if (marketskinid[id])
4734 {
4735 var5 = 4152764;
4736 }
4737 else
4738 {
4739 var5 = 4152844;
4740 }
4741 formatex(szText, cvar_SqlUser, "%L %s", id, var5, var4);
4742 menu_additem(menu, szText, 4152912, MaxClients, -1);
4743 }
4744 if (itemtype[id])
4745 {
4746 new var6;
4747 if (SelectedTypeMarket[id])
4748 {
4749 var6 = 4152992;
4750 }
4751 else
4752 {
4753 var6 = 4153032;
4754 }
4755 formatex(szText, cvar_SqlUser, "%L: \r%L", id, "SHOP_TYPE", id, var6);
4756 menu_additem(menu, szText, 4153068, MaxClients, -1);
4757 formatex(szText, cvar_SqlUser, "%L: \r%d", id, "SHOP_QUANTITY", ckm_quantity[id]);
4758 menu_additem(menu, szText, 4153164, MaxClients, -1);
4759 formatex(szText, cvar_SqlUser, "%L: \r%d\n", id, "SHOP_PRICE", market_cost[id]);
4760 menu_additem(menu, szText, 4153252, MaxClients, -1);
4761 formatex(szText, cvar_SqlUser, "\y%L", id, "WORD_SELL");
4762 menu_additem(menu, szText, 4153316, MaxClients, -1);
4763 }
4764 else
4765 {
4766 if (marketskinid[id])
4767 {
4768 formatex(szText, cvar_SqlUser, "%L: \r%d\n", id, "SHOP_PRICE", market_cost[id]);
4769 menu_additem(menu, szText, 4153404, MaxClients, -1);
4770 formatex(szText, cvar_SqlUser, "\y%L", id, "WORD_SELL");
4771 menu_additem(menu, szText, 4153468, MaxClients, -1);
4772 }
4773 }
4774 menu_setprop(menu, 6, 1);
4775 menu_display(id, menu, MaxClients, -1);
4776 return 0;
4777}
4778
4779public marketmenu_handler(id, menu, item)
4780{
4781 if (item == -3)
4782 {
4783 MainMenu(id);
4784 menu_destroy(menu);
4785 return 1;
4786 }
4787 new SkinName[128];
4788 switch (item)
4789 {
4790 case 0:
4791 {
4792 Market(id);
4793 }
4794 case 1:
4795 {
4796 SellOnMarket(id);
4797 }
4798 case 2:
4799 {
4800 if (itemtype[id])
4801 {
4802 SelectedTypeMarket[id] = !SelectedTypeMarket[id];
4803 }
4804 else
4805 {
4806 client_cmd(id, "messagemode Cost");
4807 }
4808 MarketMenu(id);
4809 }
4810 case 3:
4811 {
4812 if (itemtype[id])
4813 {
4814 client_cmd(id, "messagemode QuantityM");
4815 }
4816 else
4817 {
4818 AddSkinToMarket(id);
4819 GetSkinData();
4820 UserSkins[marketskinid[id]][id]--;
4821 format_skin_name(SkinName, 128, marketskinid[id], 1);
4822 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "MARKET_PLACED", SkinName, market_cost[id]);
4823 user_name(id);
4824
4825/* ERROR! Can't print expression: Heap */
4826 function "marketmenu_handler" (number 114)
4827public SellOnMarket(id)
4828{
4829 new szText[128];
4830 new String[32];
4831 new var1;
4832 if (get_pcvar_num(cvar_ShowTips))
4833 {
4834 var1 = 4154372;
4835 }
4836 else
4837 {
4838 var1 = 4154432;
4839 }
4840 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKETCHOOSE", id, var1);
4841 new menu = menu_create(szText, "sellmarketmenu_handler", MaxClients);
4842 formatex(szText, cvar_SqlUser, "%L\n\r------------------------", id, "MENU_CHESTNKEYS");
4843 menu_additem(menu, szText, "-1", MaxClients, -1);
4844 new i = 1;
4845 while (i < 31)
4846 {
4847 if (SkinExists[i])
4848 {
4849 formatex(String, 31, "%d", szWeaponId[i]);
4850 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
4851 menu_additem(menu, szText, String, MaxClients, -1);
4852 }
4853 i++;
4854 }
4855 menu_setprop(menu, 6, 1);
4856 menu_display(id, menu, MaxClients, -1);
4857 return 0;
4858}
4859
4860public sellmarketmenu_handler(id, menu, item)
4861{
4862 if (item == -3)
4863 {
4864 MarketMenu(id);
4865 menu_destroy(menu);
4866 return 1;
4867 }
4868 new data[9];
4869 new name[64];
4870 new Key;
4871 new access;
4872 new callback;
4873 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4874 Key = str_to_num(data);
4875 if (Key == -1)
4876 {
4877 CKList_Market(id);
4878 menu_destroy(menu);
4879 return 1;
4880 }
4881 itemtype[id] = 0;
4882 MarketSkin(id, Key);
4883 menu_destroy(menu);
4884 return 1;
4885}
4886
4887public RegisterMenu(id)
4888{
4889 if (isLogged[id])
4890 {
4891 MainMenu(id);
4892 return 1;
4893 }
4894 new szText[128];
4895 new var1;
4896 if (get_pcvar_num(cvar_ShowTips))
4897 {
4898 var1 = 4154980;
4899 }
4900 else
4901 {
4902 var1 = 4155032;
4903 }
4904 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "REGISTER_MENU", id, var1);
4905 new menu = menu_create(szText, "registermenu_handler", MaxClients);
4906 user_name(id);
4907
4908/* ERROR! Can't print expression: Heap */
4909 function "RegisterMenu" (number 117)
4910public registermenu_handler(id, menu, item)
4911{
4912 if (item == -3)
4913 {
4914 menu_destroy(menu);
4915 return 1;
4916 }
4917 switch (item)
4918 {
4919 case 0:
4920 {
4921 RegisterMenu(id);
4922 }
4923 case 1:
4924 {
4925 client_cmd(id, "messagemode EnterPassword");
4926 RegisterMenu(id);
4927 }
4928 case 2:
4929 {
4930 new name[33];
4931 get_user_name(id, name, 32);
4932 new var1;
4933 if (strlen(Password[id]) >= 2 && strlen(name) >= 2)
4934 {
4935 set_user_info(id, "gopw", Password[id]);
4936 client_cmd(id, "setinfo gopw %s", Password[id]);
4937 Skill[id] = 1120403456;
4938 isLogged[id] = 1;
4939 isRegistered[id] = 1;
4940 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REGISTER_SUCCESS");
4941 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4155888, MaxClients);
4942 sql_RegisterUser(id);
4943 set_task(1072064102, "UpdatePlayer", id, 4109032, MaxClients, 4109036, MaxClients);
4944 set_task(1069547520, "sql_RetrieveUserStats", id, 4109032, MaxClients, 4109036, MaxClients);
4945 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
4946 }
4947 else
4948 {
4949 if (2 > strlen(name))
4950 {
4951 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REGISTER_SHORTNAME");
4952 RegisterMenu(id);
4953 }
4954 if (2 > strlen(Password[id]))
4955 {
4956 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REGISTER_SHORTPW");
4957 RegisterMenu(id);
4958 }
4959 }
4960 }
4961 default:
4962 {
4963 }
4964 }
4965 menu_destroy(menu);
4966 return 1;
4967}
4968
4969public LoginMenu(id)
4970{
4971 new szText[128];
4972 new TempPassword[64];
4973 if (get_pcvar_num(cvar_ShowPass))
4974 {
4975 new var2 = Password[id];
4976 TempPassword = var2;
4977 }
4978 else
4979 {
4980 new len = strlen(Password[id]);
4981 new i;
4982 while (i < len)
4983 {
4984 format(TempPassword, 63, "%s*", TempPassword);
4985 i++;
4986 }
4987 }
4988 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "LOGIN_MENU");
4989 new menu = menu_create(szText, "loginmenu_handler", MaxClients);
4990 user_name(id);
4991
4992/* ERROR! Can't print expression: Heap */
4993 function "LoginMenu" (number 119)
4994public loginmenu_handler(id, menu, item)
4995{
4996 if (item == -3)
4997 {
4998 menu_destroy(menu);
4999 return 1;
5000 }
5001 switch (item)
5002 {
5003 case 0:
5004 {
5005 LoginMenu(id);
5006 }
5007 case 1:
5008 {
5009 client_cmd(id, "messagemode EnterPW");
5010 LoginMenu(id);
5011 }
5012 case 2:
5013 {
5014 if (equal(Password[id], sqlPassword[id], MaxClients))
5015 {
5016 isLogged[id] = 1;
5017 UpdatePlayer(id);
5018 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4157040, MaxClients);
5019 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_SUCCESS");
5020 sql_RetrieveUserItems(id);
5021 sql_RetrieveUserStats(id);
5022 sql_RetrieveUserSettings(id);
5023 sql_RetrieveUserMisc(id);
5024 set_task(1072064102, "GetClanData", id, 4109032, MaxClients, 4109036, MaxClients);
5025 set_task(1072064102, "SetSkin", id, 4109032, MaxClients, 4109036, MaxClients);
5026 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
5027 client_print(id, NULL_STRING, "%L", id, "DATA_LOADING");
5028 }
5029 else
5030 {
5031 LoginMenu(id);
5032 }
5033 }
5034 default:
5035 {
5036 }
5037 }
5038 menu_destroy(menu);
5039 return 1;
5040}
5041
5042public SetSkin(id)
5043{
5044 screenfade_grey(id);
5045 user_name(id);
5046
5047/* ERROR! Can't print expression: Heap */
5048 function "SetSkin" (number 121)
5049public ShopMenu(id)
5050{
5051 new szText[128];
5052 new String[32];
5053 new var1;
5054 if (get_pcvar_num(cvar_ShowTips))
5055 {
5056 var1 = 4157600;
5057 }
5058 else
5059 {
5060 var1 = 4157636;
5061 }
5062 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_SHOP", id, var1);
5063 new menu = menu_create(szText, "shopmenu_handler", MaxClients);
5064 new var2;
5065 if (SelectedItem[id])
5066 {
5067 var2 = szCKNames[SelectedItem[id]];
5068 }
5069 else
5070 {
5071 var2 = 4157812;
5072 }
5073 formatex(szText, cvar_SqlUser, "%L: \r%s", id, "SHOP_ITEM", var2);
5074 menu_additem(menu, szText, String, MaxClients, -1);
5075 new var3;
5076 if (!SelectedType[id])
5077 {
5078 var3 = 4157908;
5079 }
5080 else
5081 {
5082 var3 = 4157948;
5083 }
5084 formatex(szText, cvar_SqlUser, "%L: \r%L ", id, "SHOP_TYPE", id, var3);
5085 menu_additem(menu, szText, String, MaxClients, -1);
5086 formatex(szText, cvar_SqlUser, "%L: \r%d", id, "SHOP_QUANTITY", ck_quantity[id]);
5087 menu_additem(menu, szText, String, MaxClients, -1);
5088 new price;
5089 new totalprice;
5090 if (!SelectedType[id])
5091 {
5092 price = get_pcvar_num(cvar_CasePrice);
5093 totalprice = ck_quantity[id] * price;
5094 }
5095 else
5096 {
5097 price = get_pcvar_num(cvar_KeyPrice);
5098 totalprice = ck_quantity[id] * price;
5099 }
5100 formatex(szText, cvar_SqlUser, "%L: \r%d\n\r------------------", id, "SHOP_TOTALPRICE", totalprice);
5101 menu_additem(menu, szText, String, MaxClients, -1);
5102 formatex(szText, cvar_SqlUser, "%L", id, "SHOP_BUY");
5103 menu_additem(menu, szText, String, MaxClients, -1);
5104 menu_setprop(menu, 6, 1);
5105 menu_display(id, menu, MaxClients, -1);
5106 return 0;
5107}
5108
5109public shopmenu_handler(id, menu, item)
5110{
5111 if (item == -3)
5112 {
5113 MainMenu(id);
5114 menu_destroy(menu);
5115 return 1;
5116 }
5117 switch (item)
5118 {
5119 case 0:
5120 {
5121 CKList(id);
5122 }
5123 case 1:
5124 {
5125 SelectedType[id] = !SelectedType[id];
5126 ShopMenu(id);
5127 }
5128 case 2:
5129 {
5130 client_cmd(id, "messagemode Quantity");
5131 ShopMenu(id);
5132 }
5133 case 3:
5134 {
5135 ShopMenu(id);
5136 }
5137 case 4:
5138 {
5139 new price;
5140 new totalprice;
5141 if (!SelectedType[id])
5142 {
5143 price = get_pcvar_num(cvar_CasePrice);
5144 totalprice = ck_quantity[id] * price;
5145 }
5146 else
5147 {
5148 price = get_pcvar_num(cvar_KeyPrice);
5149 totalprice = ck_quantity[id] * price;
5150 }
5151 new var1;
5152 if (Points[id] >= totalprice && SelectedItem[id])
5153 {
5154 new var2;
5155 if (SelectedType[id])
5156 {
5157 var2 = 4158532;
5158 }
5159 else
5160 {
5161 var2 = 4158572;
5162 }
5163 client_print_color(id, MaxClients, "%L %L \x01%L.", id, "PREFIX_CHAT", id, "SHOP_BOUGHT", ck_quantity[id], szCKNames[SelectedItem[id]], id, var2);
5164 switch (SelectedType[id])
5165 {
5166 case 0:
5167 {
5168 new var4 = Cases[id][SelectedItem[id]];
5169 var4 = ck_quantity[id][var4];
5170 }
5171 case 1:
5172 {
5173 new var3 = Keys[id][SelectedItem[id]];
5174 var3 = ck_quantity[id][var3];
5175 }
5176 default:
5177 {
5178 }
5179 }
5180 Points[id] -= totalprice;
5181 UpdateStats(id);
5182 UpdateItems(id);
5183 }
5184 else
5185 {
5186 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", totalprice - Points[id]);
5187 }
5188 ShopMenu(id);
5189 }
5190 default:
5191 {
5192 }
5193 }
5194 menu_destroy(menu);
5195 return 1;
5196}
5197
5198public CKList(id)
5199{
5200 new szText[128];
5201 new String[32];
5202 new var1;
5203 if (get_pcvar_num(cvar_ShowTips))
5204 {
5205 var1 = 4158884;
5206 }
5207 else
5208 {
5209 var1 = 4158928;
5210 }
5211 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CKLIST", id, var1);
5212 new menu = menu_create(szText, "cklist_handler", MaxClients);
5213 new i = 1;
5214 while (i <= 8)
5215 {
5216 formatex(String, 31, "%d", i);
5217 formatex(szText, cvar_SqlUser, "\w%s", szCKNames[i]);
5218 menu_additem(menu, szText, String, MaxClients, -1);
5219 i++;
5220 }
5221 menu_setprop(menu, 6, 1);
5222 menu_display(id, menu, MaxClients, -1);
5223 return 0;
5224}
5225
5226public cklist_handler(id, menu, item)
5227{
5228 if (item == -3)
5229 {
5230 ShopMenu(id);
5231 menu_destroy(menu);
5232 return 1;
5233 }
5234 new data[9];
5235 new name[64];
5236 new Key;
5237 new access;
5238 new callback;
5239 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5240 Key = str_to_num(data);
5241 SelectedItem[id] = Key;
5242 ShopMenu(id);
5243 menu_destroy(menu);
5244 return 1;
5245}
5246
5247public CKList_Market(id)
5248{
5249 new szText[128];
5250 new String[32];
5251 new var1;
5252 if (get_pcvar_num(cvar_ShowTips))
5253 {
5254 var1 = 4159176;
5255 }
5256 else
5257 {
5258 var1 = 4159220;
5259 }
5260 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CKLIST", id, var1);
5261 new menu = menu_create(szText, "cklistmarket_handler", MaxClients);
5262 new i = 1;
5263 while (i <= 8)
5264 {
5265 formatex(String, 31, "%d", i);
5266 formatex(szText, cvar_SqlUser, "\w%s", szCKNames[i]);
5267 menu_additem(menu, szText, String, MaxClients, -1);
5268 i++;
5269 }
5270 menu_setprop(menu, 6, 1);
5271 menu_display(id, menu, MaxClients, -1);
5272 return 0;
5273}
5274
5275public cklistmarket_handler(id, menu, item)
5276{
5277 if (item == -3)
5278 {
5279 SellOnMarket(id);
5280 menu_destroy(menu);
5281 return 1;
5282 }
5283 new data[9];
5284 new name[64];
5285 new Key;
5286 new access;
5287 new callback;
5288 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5289 Key = str_to_num(data);
5290 SelectedItemMarket[id] = Key;
5291 itemtype[id] = 1;
5292 MarketMenu(id);
5293 menu_destroy(menu);
5294 return 1;
5295}
5296
5297public InventoryMenu(id)
5298{
5299 new szText[128];
5300 new String[32];
5301 new var1;
5302 if (get_pcvar_num(cvar_ShowTips))
5303 {
5304 var1 = 4159504;
5305 }
5306 else
5307 {
5308 var1 = 4159560;
5309 }
5310 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_INVENTORY", id, var1);
5311 new menu = menu_create(szText, "inventorymenu_handler", MaxClients);
5312 formatex(szText, cvar_SqlUser, "%L", -1, "MENU_CHESTNKEYS");
5313 menu_additem(menu, szText, "-1", MaxClients, -1);
5314 formatex(szText, cvar_SqlUser, "%L\n\r------------------------", id, "MENU_GRAFFITI");
5315 menu_additem(menu, szText, "-2", MaxClients, -1);
5316 new i = 1;
5317 while (i < 31)
5318 {
5319 if (SkinExists[i])
5320 {
5321 formatex(String, 31, "%d", szWeaponId[i]);
5322 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
5323 menu_additem(menu, szText, String, MaxClients, -1);
5324 }
5325 i++;
5326 }
5327 menu_setprop(menu, 6, 1);
5328 menu_display(id, menu, MaxClients, -1);
5329 return 0;
5330}
5331
5332public inventorymenu_handler(id, menu, item)
5333{
5334 if (item == -3)
5335 {
5336 MainMenu(id);
5337 menu_destroy(menu);
5338 return 1;
5339 }
5340 new data[9];
5341 new name[64];
5342 new Key;
5343 new access;
5344 new callback;
5345 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5346 Key = str_to_num(data);
5347 if (Key == -1)
5348 {
5349 OpenCase(id);
5350 menu_destroy(menu);
5351 return 1;
5352 }
5353 if (Key == -2)
5354 {
5355 GraffitiMenu(id);
5356 menu_destroy(menu);
5357 return 1;
5358 }
5359 CertainSkinMenu(id, item, Key);
5360 menu_destroy(menu);
5361 return 1;
5362}
5363
5364public Market(id)
5365{
5366 new szText[128];
5367 new String[32];
5368 new var1;
5369 if (get_pcvar_num(cvar_ShowTips))
5370 {
5371 var1 = 4160176;
5372 }
5373 else
5374 {
5375 var1 = 4160228;
5376 }
5377 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKET", id, var1);
5378 new menu = menu_create(szText, "gomarketmenu_handler", MaxClients);
5379 formatex(szText, cvar_SqlUser, "%L [%d]\n\r------------------------", id, "MENU_CHESTNKEYS", marketckcount);
5380 menu_additem(menu, szText, "-1", MaxClients, -1);
5381 new i = 1;
5382 while (i < 31)
5383 {
5384 if (SkinExists[i])
5385 {
5386 formatex(String, 31, "%d", szWeaponId[i]);
5387 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
5388 menu_additem(menu, szText, String, MaxClients, -1);
5389 }
5390 i++;
5391 }
5392 menu_setprop(menu, 6, 1);
5393 menu_display(id, menu, MaxClients, -1);
5394 return 0;
5395}
5396
5397public gomarketmenu_handler(id, menu, item)
5398{
5399 if (item == -3)
5400 {
5401 MarketMenu(id);
5402 menu_destroy(menu);
5403 return 1;
5404 }
5405 new data[9];
5406 new name[64];
5407 new Key;
5408 new access;
5409 new callback;
5410 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5411 Key = str_to_num(data);
5412 if (Key == -1)
5413 {
5414 if (marketckcount)
5415 {
5416 MarketCKMenu(id);
5417 }
5418 else
5419 {
5420 Market(id);
5421 }
5422 menu_destroy(menu);
5423 return 1;
5424 }
5425 MarketCertainSkin(id, Key);
5426 menu_destroy(menu);
5427 return 1;
5428}
5429
5430public MarketCKMenu(id)
5431{
5432 new szText[128];
5433 new String[32];
5434 new var1;
5435 if (get_pcvar_num(cvar_ShowTips))
5436 {
5437 var1 = 4160780;
5438 }
5439 else
5440 {
5441 var1 = 4160832;
5442 }
5443 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKET", id, var1);
5444 new menu = menu_create(szText, "gockmarketmenu_handler", MaxClients);
5445 new i = 1;
5446 while (i < 1028)
5447 {
5448 new var2;
5449 if (marketcases[i] > 0 && marketquantity[i] > 0)
5450 {
5451 formatex(String, 31, "%d|1*%d", i, marketcases[i]);
5452 formatex(szText, cvar_SqlUser, "\r%s \w%L \r[\w%d\r] - \y%s | [%d ea.]", szCKNames[marketcases[i]], id, "WORD_CASE", marketquantity[i], marketseller[i], marketckprice[i]);
5453 menu_additem(menu, szText, String, MaxClients, -1);
5454 }
5455 else
5456 {
5457 new var3;
5458 if (marketkeys[i] > 0 && marketquantity[i] > 0)
5459 {
5460 formatex(String, 31, "%d|0*%d", i, marketkeys[i]);
5461 formatex(szText, cvar_SqlUser, "\r%s \w%L \r[\w%d\r] - \y%s | [%d ea.]", szCKNames[marketkeys[i]], id, "WORD_KEY", marketquantity[i], marketseller[i], marketckprice[i]);
5462 menu_additem(menu, szText, String, MaxClients, -1);
5463 }
5464 }
5465 i++;
5466 }
5467 menu_setprop(menu, 6, 1);
5468 menu_display(id, menu, MaxClients, -1);
5469 return 0;
5470}
5471
5472public gockmarketmenu_handler(id, menu, item)
5473{
5474 if (item == -3)
5475 {
5476 Market(id);
5477 menu_destroy(menu);
5478 return 1;
5479 }
5480 new data[9];
5481 new name[64];
5482 new Key;
5483 new access;
5484 new callback;
5485 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5486 new left[4];
5487 new right[4];
5488 new left2[4];
5489 new right2[4];
5490 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
5491 strtok2(right, left2, 3, right2, 3, 42, MaxClients);
5492 Key = str_to_num(left);
5493 new type = str_to_num(left2);
5494 new ckid = str_to_num(right2);
5495 if (marketckprice[Key] <= Points[id])
5496 {
5497 marketckcount -= 1;
5498 Points[id] -= marketckprice[Key];
5499 new var1;
5500 if (type)
5501 {
5502 var1 = 4161520;
5503 }
5504 else
5505 {
5506 var1 = 4161560;
5507 }
5508 new var2;
5509 if (type)
5510 {
5511 var2 = szCKNames[marketcases[Key]];
5512 }
5513 else
5514 {
5515 var2 = szCKNames[marketkeys[Key]];
5516 }
5517 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "BOUGHT_CK", var2, id, var1, marketckprice[Key]);
5518 marketquantity[Key]--;
5519 switch (type)
5520 {
5521 case 0:
5522 {
5523 Keys[id][ckid]++;
5524 }
5525 case 1:
5526 {
5527 Cases[id][ckid]++;
5528 }
5529 default:
5530 {
5531 }
5532 }
5533 new seller = find_player(4161596, marketseller[Key]);
5534 if (seller)
5535 {
5536 new var3;
5537 if (type)
5538 {
5539 var3 = 4161748;
5540 }
5541 else
5542 {
5543 var3 = 4161796;
5544 }
5545 new var4;
5546 if (type)
5547 {
5548 var4 = szCKNames[marketcases[Key]];
5549 }
5550 else
5551 {
5552 var4 = szCKNames[marketkeys[Key]];
5553 }
5554 user_name(id);
5555
5556/* ERROR! Can't print expression: Heap */
5557 function "gockmarketmenu_handler" (number 133)
5558public OpenCase(id)
5559{
5560 new szText[128];
5561 new String[32];
5562 new var1;
5563 if (get_pcvar_num(cvar_ShowTips))
5564 {
5565 var1 = 4162124;
5566 }
5567 else
5568 {
5569 var1 = 4162176;
5570 }
5571 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CHESTNKEYS", id, var1);
5572 new menu = menu_create(szText, "opencase_handler", MaxClients);
5573 new i = 1;
5574 while (i <= 8)
5575 {
5576 formatex(String, 31, "%d", i);
5577 formatex(szText, cvar_SqlUser, "\w%s \y[\w%L: \r%d \y| \w%L: \r%d\y]", szCKNames[i], id, "WORD_CASES", Cases[id][i], id, "WORD_KEYS", Keys[id][i]);
5578 menu_additem(menu, szText, String, MaxClients, -1);
5579 i++;
5580 }
5581 menu_setprop(menu, 6, 1);
5582 menu_display(id, menu, MaxClients, -1);
5583 return 0;
5584}
5585
5586public opencase_handler(id, menu, item)
5587{
5588 if (item == -3)
5589 {
5590 InventoryMenu(id);
5591 menu_destroy(menu);
5592 return 1;
5593 }
5594 new data[9];
5595 new name[64];
5596 new Key;
5597 new access;
5598 new callback;
5599 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5600 Key = str_to_num(data);
5601 new SkinName[128];
5602 new SkinName2[128];
5603 new var1;
5604 if (Cases[id][Key] > 0 && Keys[id][Key] > 0)
5605 {
5606 new skind;
5607 new rand;
5608 new chanceItem = random_item("\x01\x04\x0F#-", 5);
5609 rand = random_num(1, chestSkins[Key][Odds[chanceItem]]);
5610 skind = chestsList[Key][Odds[chanceItem]][rand];
5611 Cases[id][Key]--;
5612 Keys[id][Key]--;
5613 format_skin_name(SkinName, 128, skind, 1);
5614 format_skin_name(SkinName2, 128, skind, 2);
5615 switch (chanceItem)
5616 {
5617 case 0:
5618 {
5619 set_dhudmessage(255, 215, MaxClients, -1082130432, 1058642330, 1, 1086324736, 1065353216, 1036831949, 1069547520);
5620 show_dhudmessage(id, "%s", SkinName2);
5621 screenfade(id, 255, 215, 0);
5622 user_name(id);
5623
5624/* ERROR! Can't print expression: Heap */
5625 function "opencase_handler" (number 135)
5626public PreviewMenu(id)
5627{
5628 new szText[128];
5629 new String[32];
5630 new var1;
5631 if (get_pcvar_num(cvar_ShowTips))
5632 {
5633 var1 = 4163276;
5634 }
5635 else
5636 {
5637 var1 = 4163332;
5638 }
5639 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_PREVIEW", id, var1);
5640 new menu = menu_create(szText, "previewmenu_handler", MaxClients);
5641 new i = 1;
5642 while (i < 31)
5643 {
5644 if (SkinExists[i])
5645 {
5646 formatex(String, 31, "%d", szWeaponId[i]);
5647 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
5648 menu_additem(menu, szText, String, MaxClients, -1);
5649 }
5650 i++;
5651 }
5652 menu_setprop(menu, 6, 1);
5653 menu_display(id, menu, MaxClients, -1);
5654 return 0;
5655}
5656
5657public previewmenu_handler(id, menu, item)
5658{
5659 if (item == -3)
5660 {
5661 MainMenu(id);
5662 menu_destroy(menu);
5663 return 1;
5664 }
5665 new data[9];
5666 new name[64];
5667 new Key;
5668 new access;
5669 new callback;
5670 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5671 Key = str_to_num(data);
5672 CertainSkinPreview(id, item, Key);
5673 menu_destroy(menu);
5674 return 1;
5675}
5676
5677public MarketSkin(id, wepid)
5678{
5679 new szText[256];
5680 new String[32];
5681 new count;
5682 new SkinName[128];
5683 new var1;
5684 if (get_pcvar_num(cvar_ShowTips))
5685 {
5686 var1 = 4163688;
5687 }
5688 else
5689 {
5690 var1 = 4163748;
5691 }
5692 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
5693 new menu = menu_create(szText, "marketskinmenu_handler", MaxClients);
5694 new i;
5695 while (i < AllWeapon)
5696 {
5697 new var2;
5698 if (wepid == Weapons[i] && UserSkins[i][id])
5699 {
5700 }
5701 else
5702 {
5703 count++;
5704 format_skin_name(SkinName, 128, i, 3);
5705 formatex(String, 31, "%d|%d", i, wepid);
5706 formatex(szText, 256, "%s \r[\w%d\r]", SkinName, UserSkins[i][id]);
5707 menu_additem(menu, szText, String, MaxClients, -1);
5708 }
5709 i++;
5710 }
5711 if (!count)
5712 {
5713 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
5714 SellOnMarket(id);
5715 }
5716 else
5717 {
5718 menu_setprop(menu, 6, 1);
5719 menu_display(id, menu, MaxClients, -1);
5720 }
5721 return 0;
5722}
5723
5724public marketskinmenu_handler(id, menu, item)
5725{
5726 if (item == -3)
5727 {
5728 SellOnMarket(id);
5729 menu_destroy(menu);
5730 return 1;
5731 }
5732 new data[9];
5733 new name[64];
5734 new Key;
5735 new access;
5736 new callback;
5737 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5738 new left[4];
5739 new right[4];
5740 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
5741 Key = str_to_num(left);
5742 new wpid = str_to_num(right);
5743 marketwepid[id] = wpid;
5744 marketskinid[id] = Key;
5745 MarketMenu(id);
5746 menu_destroy(menu);
5747 return 1;
5748}
5749
5750public MarketCertainSkin(id, wepid)
5751{
5752 new szText[256];
5753 new String[32];
5754 new szName[64];
5755 new count;
5756 new SkinName[128];
5757 user_name(id);
5758 new var1;
5759 if (get_pcvar_num(cvar_ShowTips))
5760 {
5761 var1 = 4164208;
5762 }
5763 else
5764 {
5765 var1 = 4164256;
5766 }
5767 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
5768 new menu = menu_create(szText, "marketcskinmenu_handler", MaxClients);
5769 new i;
5770 while (i < 1028)
5771 {
5772 new var2;
5773 if (wepid == marketwep[i] && !marketskin[i])
5774 {
5775 }
5776 else
5777 {
5778 count++;
5779 format_skin_name(SkinName, 128, marketskin[i], 3);
5780 formatex(String, 31, "%d", i);
5781 if (equal(szName, marketskinseller[i], MaxClients))
5782 {
5783 formatex(szText, 256, "%s - %d %L", SkinName, marketskinprice[i], id, "MARKET_WITHDRAW");
5784 }
5785 else
5786 {
5787 formatex(szText, 256, "%s - %d \y| \r%s", SkinName, marketskinprice[i], marketskinseller[i]);
5788 }
5789 menu_additem(menu, szText, String, MaxClients, -1);
5790 }
5791 i++;
5792 }
5793 if (!count)
5794 {
5795 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINSINMARKET", szWepNames[wepid]);
5796 Market(id);
5797 }
5798 else
5799 {
5800 menu_setprop(menu, 6, 1);
5801 menu_display(id, menu, MaxClients, -1);
5802 }
5803 return 0;
5804}
5805
5806public marketcskinmenu_handler(id, menu, item)
5807{
5808 if (item == -3)
5809 {
5810 Market(id);
5811 menu_destroy(menu);
5812 return 1;
5813 }
5814 new data[9];
5815 new name[64];
5816 new Key;
5817 new access;
5818 new callback;
5819 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5820 Key = str_to_num(data);
5821 new szName[64];
5822 user_name(id);
5823 new SkinName[128];
5824 format_skin_name(SkinName, 128, marketskin[Key], 1);
5825 if (equal(szName, marketskinseller[Key], MaxClients))
5826 {
5827 UserSkins[marketskin[Key]][id]++;
5828 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_WITHDRAW", SkinName);
5829 DeleteFromMarket(marketidskin[Key]);
5830 UpdateItems(id);
5831 GetSkinData();
5832 MarketMenu(id);
5833 marketskin[Key] = 0;
5834 }
5835 else
5836 {
5837 if (marketskinprice[Key] <= Points[id])
5838 {
5839 UserSkins[marketskin[Key]][id]++;
5840 Points[id] -= marketskinprice[Key];
5841 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "BOUGHT_SKIN", SkinName, marketskinprice[Key]);
5842 UpdateItems(id);
5843 UpdateStats(id);
5844 MarketMenu(id);
5845 new seller = find_player(4164960, marketskinseller[Key]);
5846 if (seller)
5847 {
5848 user_name(id);
5849
5850/* ERROR! Can't print expression: Heap */
5851 function "marketcskinmenu_handler" (number 141)
5852public CertainSkinPreview(id, weaponid, wepid)
5853{
5854 new szText[512];
5855 new String[32];
5856 new SkinName[128];
5857 new var1;
5858 if (get_pcvar_num(cvar_ShowTips))
5859 {
5860 var1 = 4165384;
5861 }
5862 else
5863 {
5864 var1 = 4165432;
5865 }
5866 formatex(szText, 512, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_PREVIEW", id, var1);
5867 new menu = menu_create(szText, "certainpreviewmenu_handler", MaxClients);
5868 new i;
5869 while (i < AllWeapon)
5870 {
5871 if (!(wepid != Weapons[i]))
5872 {
5873 format_skin_name(SkinName, 128, i, 3);
5874 formatex(String, 31, "%d*%d|%d*%d", weaponid, i, wepid, wepid);
5875 if (WeaponCase[i])
5876 {
5877 formatex(szText, 512, "%s \y[\r%s \w%L\y]", SkinName, szCKNames[WeaponCase[i]], id, "WORD_CASE");
5878 }
5879 else
5880 {
5881 formatex(szText, 512, "%s \y[\r%L\y]", SkinName, id, "WORD_CRAFT");
5882 }
5883 menu_additem(menu, szText, String, MaxClients, -1);
5884 }
5885 i++;
5886 }
5887 menu_setprop(menu, 6, 1);
5888 menu_display(id, menu, MaxClients, -1);
5889 return 0;
5890}
5891
5892public certainpreviewmenu_handler(id, menu, item)
5893{
5894 if (item == -3)
5895 {
5896 PreviewMenu(id);
5897 menu_destroy(menu);
5898 return 1;
5899 }
5900 new data[9];
5901 new name[64];
5902 new Key;
5903 new access;
5904 new callback;
5905 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5906 new left[9];
5907 new right[9];
5908 new left2[9];
5909 new right2[9];
5910 new left3[9];
5911 new right3[9];
5912 strtok2(data, left, NULL_VECTOR, right, NULL_VECTOR, cvar_SqlHost, MaxClients);
5913 strtok2(left, left2, NULL_VECTOR, right2, NULL_VECTOR, 42, MaxClients);
5914 strtok2(right, left3, NULL_VECTOR, right3, NULL_VECTOR, 42, MaxClients);
5915 Key = str_to_num(right2);
5916 new wpnid = str_to_num(left3);
5917 new wp = str_to_num(left2);
5918 set_pev(id, 144, WeaponMdls[Key]);
5919 new Float:timer = get_pcvar_float(cvar_ReviewTime);
5920 replace_all(SkinNames[Key], 300, "\r", 4165848);
5921 replace_all(SkinNames[Key], 300, "\w", 4165864);
5922 client_print(id, NULL_STRING, "%L", id, "SKIN_REVIEWING", SkinNames[Key], timer);
5923 set_task(timer, "reset_hand_skin", id, 4109032, MaxClients, 4109036, MaxClients);
5924 CertainSkinPreview(id, wp, wpnid);
5925 menu_destroy(menu);
5926 return 1;
5927}
5928
5929public reset_hand_skin(id)
5930{
5931 new wpid = get_user_weapon(id, 0, 0);
5932 new var1;
5933 if (is_user_alive(id) && !g_bUsingGuns[id][Weapons[wpid]])
5934 {
5935 set_pev(id, 144, V_MODELS[wpid]);
5936 }
5937 else
5938 {
5939 if (g_bUsingGuns[id][Weapons[wpid]])
5940 {
5941 set_pev(id, 144, WeaponMdls[g_bUsingGuns[id][wpid]]);
5942 }
5943 }
5944 return 0;
5945}
5946
5947public CertainSkinMenu(id, weaponid, wepid)
5948{
5949 new szText[128];
5950 new String[32];
5951 new count;
5952 new SkinName[128];
5953 new OddsName[32];
5954 new var1;
5955 if (get_pcvar_num(cvar_ShowTips))
5956 {
5957 var1 = 4166152;
5958 }
5959 else
5960 {
5961 var1 = 4166192;
5962 }
5963 formatex(szText, cvar_SqlUser, "%L \r%s \w%L%L", id, "PREFIX_HUD", szWeaponNames[wepid], id, "WORD_SKINS", id, var1);
5964 new menu = menu_create(szText, "certainskinmenu_handler", MaxClients);
5965 new i;
5966 while (i <= AllWeapon)
5967 {
5968 new var2;
5969 if (wepid == Weapons[i] && UserSkins[i][id] < 1)
5970 {
5971 }
5972 else
5973 {
5974 count++;
5975 switch (SkinRarity[i])
5976 {
5977 case 1:
5978 {
5979 OddsName = {91,65,43,93,0};
5980 }
5981 case 4:
5982 {
5983 OddsName = {91,65,93,0};
5984 }
5985 case 15:
5986 {
5987 OddsName = {91,66,43,93,0};
5988 }
5989 case 35:
5990 {
5991 OddsName = {91,66,93,0};
5992 }
5993 case 45:
5994 {
5995 OddsName = {91,67,93,0};
5996 }
5997 default:
5998 {
5999 }
6000 }
6001 format_skin_name(SkinName, 128, i, 3);
6002 formatex(String, 31, "%d|%d/%d", weaponid, i, wepid);
6003 new var3;
6004 if (i == g_bUsingGuns[id][Weapons[i]])
6005 {
6006 var3 = 4166524;
6007 }
6008 else
6009 {
6010 var3 = 4166572;
6011 }
6012 formatex(szText, cvar_SqlUser, "%s [\r%d\w] \y%s %L", SkinName, UserSkins[i][id], OddsName, id, var3);
6013 menu_additem(menu, szText, String, MaxClients, -1);
6014 }
6015 i++;
6016 }
6017 if (!count)
6018 {
6019 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
6020 InventoryMenu(id);
6021 }
6022 else
6023 {
6024 menu_setprop(menu, 6, 1);
6025 menu_display(id, menu, MaxClients, -1);
6026 }
6027 return 0;
6028}
6029
6030public certainskinmenu_handler(id, menu, item)
6031{
6032 if (item == -3)
6033 {
6034 InventoryMenu(id);
6035 menu_destroy(menu);
6036 return 1;
6037 }
6038 new data[11];
6039 new name[64];
6040 new Key;
6041 new access;
6042 new callback;
6043 menu_item_getinfo(menu, item, access, data, 10, name, 63, callback);
6044 new left[4];
6045 new right[10];
6046 new left2[6];
6047 new right2[6];
6048 strtok2(data, left, 3, right, 9, cvar_SqlHost, MaxClients);
6049 strtok2(right, left2, 5, right2, 5, 47, MaxClients);
6050 new wp = str_to_num(left);
6051 Key = str_to_num(left2);
6052 new wpnid = str_to_num(right2);
6053 if (Key != g_bUsingGuns[id][wpnid])
6054 {
6055 g_bUsingGuns[id][wpnid] = Key;
6056 if (wpnid == get_user_weapon(id, 0, 0))
6057 {
6058 set_pev(id, 144, WeaponMdls[Key]);
6059 if (5 < strlen(WeaponMdlsP[g_bUsingGuns[id][wpnid]]))
6060 {
6061 set_pev(id, 71, Price[g_bUsingGuns[id][wpnid]]);
6062 set_pev(id, 143, WeaponMdlsP[g_bUsingGuns[id][wpnid]]);
6063 }
6064 }
6065 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_EQUIPED", SkinNames[g_bUsingGuns[id][wpnid]], szWepNames[Weapons[g_bUsingGuns[id][wpnid]]]);
6066 }
6067 else
6068 {
6069 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_UNEQUIPED", SkinNames[g_bUsingGuns[id][wpnid]], szWepNames[Weapons[g_bUsingGuns[id][wpnid]]]);
6070 g_bUsingGuns[id][wpnid] = 0;
6071 if (wpnid == get_user_weapon(id, 0, 0))
6072 {
6073 set_pev(id, 144, V_MODELS[wpnid]);
6074 new p_skin[128];
6075 formatex(p_skin, cvar_SqlUser, "%s", V_MODELS[wpnid]);
6076 replace_all(p_skin, 127, "v_", "p_");
6077 set_pev(id, 143, p_skin);
6078 }
6079 }
6080 UpdateItems(id);
6081 CertainSkinMenu(id, wp, wpnid);
6082 menu_destroy(menu);
6083 return 1;
6084}
6085
6086public col_changer(msg_id, msg_dest, rcvr)
6087{
6088 new str2[26];
6089 get_msg_arg_string(2, str2, 25);
6090 if (equal(str2, "#Cstrike_Chat", 13))
6091 {
6092 new str3[22];
6093 get_msg_arg_string(3, str3, 21);
6094 if (!strlen(str3))
6095 {
6096 new str4[101];
6097 get_msg_arg_string(NULL_STRING, str4, 100);
6098 new sndr = get_msg_arg_int(1);
6099 decl bool:is_team_msg;
6100 is_team_msg = !equal(str2, "#Cstrike_Chat_All", 17);
6101 new sndr_team = get_user_team(sndr, {0}, MaxClients);
6102 decl bool:is_sndr_spec;
6103 is_sndr_spec = !0 < sndr_team < 3;
6104 decl bool:same_as_last;
6105 new var1;
6106 same_as_last = sndr == alv_sndr && equal(alv_str2, str2, MaxClients) && equal(alv_str4, str4, MaxClients);
6107 if (!same_as_last)
6108 {
6109 new allchat = clamp(get_pcvar_num(p_allchat), MaxClients, 2);
6110 new var3;
6111 if (allchat == 2 || (allchat == 1 && clamp(get_pcvar_num(p_alltalk), MaxClients, 1) == 1))
6112 {
6113 new var6;
6114 if (is_team_msg && (is_sndr_spec || (is_team_msg && get_pcvar_num(p_teamchat))))
6115 {
6116 new flags[5];
6117 new team[10];
6118 if (is_user_alive(sndr))
6119 {
6120 flags = {98,99,104,0};
6121 }
6122 else
6123 {
6124 flags = {97,99,104,0};
6125 }
6126 if (is_team_msg)
6127 {
6128 add(flags[strlen(flags)], NULL_STRING, 4167156, MaxClients);
6129 if (sndr_team == 1)
6130 {
6131 team = {84,69,82,82,79,82,73,83,84,0};
6132 }
6133 team = {67,84,0};
6134 }
6135 new players[32];
6136 new num;
6137 get_players(players, num, flags, team);
6138 buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
6139 new i;
6140 while (i < num)
6141 {
6142 message_begin(1, get_user_msgid("SayText"), 4123056, players[i]);
6143 write_byte(sndr);
6144 write_string(msg);
6145 message_end();
6146 i++;
6147 }
6148 }
6149 alv_sndr = sndr;
6150 if (task_exists(411, MaxClients))
6151 {
6152 remove_task(411, MaxClients);
6153 }
6154 set_task(1036831949, "task_clear_antiloop_vars", 411, 4109032, MaxClients, 4109036, MaxClients);
6155 }
6156 }
6157 if (is_user_connected(sndr))
6158 {
6159 if (!same_as_last)
6160 {
6161 buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
6162 }
6163 set_msg_arg_string(2, msg);
6164 set_msg_arg_string(NULL_STRING, 4167348);
6165 }
6166 }
6167 }
6168 return 0;
6169}
6170
6171public buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[])
6172{
6173 new sndr_name[33];
6174 new szMsg[128];
6175 get_user_name(sndr, sndr_name, 32);
6176 new chatrank = get_pcvar_num(cvar_ChatRank);
6177 new vipFlag[32];
6178 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6179 decl hasTag;
6180 new var1;
6181 if (strlen(ChatTag[sndr]) > 2)
6182 {
6183 var1 = 1;
6184 }
6185 else
6186 {
6187 var1 = 0;
6188 }
6189 hasTag = var1;
6190 decl hasClan;
6191 new var2;
6192 if (strlen(clan_name[sndr]) > 1)
6193 {
6194 var2 = 1;
6195 }
6196 else
6197 {
6198 var2 = 0;
6199 }
6200 hasClan = var2;
6201 new prefix[256] = {1,0};
6202 if (!(get_pcvar_num(p_hidestat)))
6203 {
6204 if (is_sndr_spec)
6205 {
6206 prefix = {1,42,83,80,69,67,42,32,0};
6207 }
6208 if (!is_user_alive(sndr))
6209 {
6210 prefix = {1,42,68,69,65,68,42,32,0};
6211 }
6212 }
6213 if (is_team_msg)
6214 {
6215 if (is_sndr_spec)
6216 {
6217 prefix = {1,40,83,112,101,99,116,97,116,111,114,41,32,0};
6218 }
6219 if (sndr_team == 1)
6220 {
6221 add(prefix[strlen(prefix) - 1], 29, "\x01(Terrorist) ", MaxClients);
6222 }
6223 if (sndr_team == 2)
6224 {
6225 add(prefix[strlen(prefix) - 1], 29, "\x01(Counter-Terrorist) ", MaxClients);
6226 }
6227 }
6228 if (isLogged[sndr])
6229 {
6230 if (hasTag)
6231 {
6232 new var3;
6233 if (hasClan)
6234 {
6235 var3 = clan_name[sndr];
6236 }
6237 else
6238 {
6239 var3 = 4167728;
6240 }
6241 new var4;
6242 if (hasClan)
6243 {
6244 var4 = 4167716;
6245 }
6246 else
6247 {
6248 var4 = 4167724;
6249 }
6250 format(szMsg, 127, "\x01[\x04%s\x01] [\x03%s\x01]%s\x01%s ", Ranks[Rank[sndr]], ChatTag[sndr], var4, var3);
6251 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6252 }
6253 else
6254 {
6255 new var5;
6256 if (hasClan)
6257 {
6258 var5 = clan_name[sndr];
6259 }
6260 else
6261 {
6262 var5 = 4167800;
6263 }
6264 new var6;
6265 if (hasClan)
6266 {
6267 var6 = 4167788;
6268 }
6269 else
6270 {
6271 var6 = 4167796;
6272 }
6273 format(szMsg, 127, "\x01[\x04%s\x01]%s\x01%s ", Ranks[Rank[sndr]], var6, var5);
6274 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6275 }
6276 }
6277 else
6278 {
6279 format(szMsg, 127, "\x01[\x04%L\x01] ", -1, "NOT_LOGGED");
6280 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6281 }
6282 new var7;
6283 if (has_all_flags(sndr, vipFlag) && get_pcvar_num(cvar_VipChatColor))
6284 {
6285 new var8;
6286 if (strlen(prefix) > 1)
6287 {
6288 var8 = prefix;
6289 }
6290 else
6291 {
6292 var8 = 4167940;
6293 }
6294 format(msg, 512, "%s%s%s \x01: \x04%s", var8, COLCHAR[namecol], sndr_name, str4);
6295 }
6296 else
6297 {
6298 new var9;
6299 if (strlen(prefix) > 1)
6300 {
6301 var9 = prefix;
6302 }
6303 else
6304 {
6305 var9 = 4168000;
6306 }
6307 format(msg, 512, "%s%s%s \x01: \x01%s", var9, COLCHAR[namecol], sndr_name, str4);
6308 }
6309 return 1;
6310}
6311
6312public task_clear_antiloop_vars()
6313{
6314 alv_sndr = 0;
6315 return 1;
6316}
6317
6318public Debug(id)
6319{
6320 new szKText[256];
6321 formatex(szKText, 256, "\n%L", id, "KILL_COUNTER", Kills[id] % get_pcvar_num(cvar_KillsRequired), get_pcvar_num(cvar_KillsRequired));
6322 client_print_color(id, MaxClients, "%s", szKText);
6323 return 1;
6324}
6325
6326public Reminder(id)
6327{
6328 client_print_color(id, -2, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_REMINDER");
6329 return 0;
6330}
6331
6332public Event_DeathMsg()
6333{
6334 new iKiller = read_data(1);
6335 new iVictim = read_data(2);
6336 removeEntity(iVictim);
6337 new var1;
6338 if (iVictim != iKiller && !isLogged[iKiller])
6339 {
6340 return 1;
6341 }
6342 g_iEnemiesKilled[iKiller]++;
6343 Kills[iKiller]++;
6344 new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
6345 if (get_pcvar_num(cvar_KeyForKills))
6346 {
6347 new kfk = get_pcvar_num(cvar_KillsRequired);
6348 if (Kills[iKiller] % kfk)
6349 {
6350 }
6351 else
6352 {
6353 new rkey = random_num(1, NULL_VECTOR);
6354 Keys[iKiller][rkey]++;
6355 client_print_color(iKiller, MaxClients, "%L %L", iKiller, "PREFIX_CHAT", iKiller, "KEY_FOR_KILLS", szCKNames[rkey]);
6356 }
6357 }
6358 if (1 < strlen(DeathNote[iKiller]))
6359 {
6360 set_dhudmessage(255, 255, 255, -1082130432, 1049247089, 1, 1086324736, 1077936128, 1036831949, 1069547520);
6361 show_dhudmessage(iVictim, "%s", DeathNote[iKiller]);
6362 }
6363 if (CalibrationKills > Kills[iKiller])
6364 {
6365 Rank[iKiller] = 0;
6366 }
6367 new Float:diff = 0.0;
6368 new Float:total = 0.0;
6369 if (!isLogged[iVictim])
6370 {
6371 diff = 100.0;
6372 }
6373 else
6374 {
6375 diff = Skill[iVictim];
6376 }
6377 new Float:delta = floatdiv(1065353216, floatadd(1065353216, floatpower(1092616192, floatdiv(floatsub(Skill[iKiller], diff), 1120403456))));
6378 new Float:koeff = 0.0;
6379 if (CalibrationKills > Kills[iKiller])
6380 {
6381 koeff = 2.0;
6382 total = floatmul(koeff, delta);
6383 new var7 = Skill[iKiller];
6384 var7 = floatadd(var7, total);
6385 new var8 = Skill[iVictim];
6386 var8 = floatsub(var8, total);
6387 user_name(iVictim);
6388
6389/* ERROR! Can't print expression: Heap */
6390 function "Event_DeathMsg" (number 152)
6391public Event_NewRound()
6392{
6393 RoundStarted = false;
6394 Rounds += 1;
6395 new counter = get_pcvar_num(cvar_RemoveGraffiti);
6396 mvpShown = false;
6397 g_iBombPlanter = 9191;
6398 g_iBombDefuser = 1919;
6399 g_bBombExploded = false;
6400 arrayset(g_iEnemiesHS, MaxClients, 33);
6401 arrayset(g_iEnemiesKilled, MaxClients, 33);
6402 arrayset(graffitiCooldown, MaxClients, 33);
6403 if (!(Rounds % counter))
6404 {
6405 removeGraffiti();
6406 }
6407 return 0;
6408}
6409
6410public logevent_round_start()
6411{
6412 RoundStarted = true;
6413 new spritesEnabled = get_pcvar_num(cvar_EnableRankSprites);
6414 if (spritesEnabled)
6415 {
6416 new spritesMode = get_pcvar_num(cvar_RankSpriteMode);
6417 if (!spritesMode)
6418 {
6419 removeEntities();
6420 }
6421 }
6422 return 0;
6423}
6424
6425public Event_RoundWon_T()
6426{
6427 set_task(1056964608, "CheckTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
6428 return 0;
6429}
6430
6431public CheckTConditions()
6432{
6433 new var1;
6434 if (g_iBombPlanter != 9191 && g_bBombExploded == true)
6435 {
6436 ShowMVPMessage(g_iBombPlanter, 3);
6437 }
6438 else
6439 {
6440 new iTopKiller = GetTopKiller(1);
6441 ShowMVPMessage(iTopKiller, 1);
6442 }
6443 return 0;
6444}
6445
6446public Event_RoundWon_CT()
6447{
6448 set_task(1056964608, "CheckCTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
6449 return 0;
6450}
6451
6452public CheckCTConditions()
6453{
6454 if (g_iBombDefuser != 1919)
6455 {
6456 ShowMVPMessage(g_iBombDefuser, 2);
6457 }
6458 else
6459 {
6460 new iTopKiller = GetTopKiller(2);
6461 ShowMVPMessage(iTopKiller, 1);
6462 }
6463 return 0;
6464}
6465
6466public bomb_planted(iPlanter)
6467{
6468 new flags = user_flags(iPlanter);
6469 new ptsplant = get_pcvar_num(cvar_plantpts);
6470 new vptsplant = get_pcvar_num(cvar_vipplantbonus);
6471 new aptsplant = get_pcvar_num(cvar_adminplantbonus);
6472 new vipenabled = get_pcvar_num(cvar_vipenablebonus);
6473 new adminenabled = get_pcvar_num(cvar_adminenablebonus);
6474 set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
6475 new var1;
6476 if (flags == 2 && !adminenabled)
6477 {
6478 if (vipenabled)
6479 {
6480 flags = 1;
6481 }
6482 flags = 0;
6483 }
6484 new var2;
6485 if (flags == 1 && !vipenabled)
6486 {
6487 flags = 0;
6488 }
6489 switch (flags)
6490 {
6491 case 0:
6492 {
6493 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_KILL", ptsplant);
6494 AddPoints(iPlanter, ptsplant);
6495 }
6496 case 1:
6497 {
6498 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_VIPKILL", ptsplant, vptsplant);
6499 AddPoints(iPlanter, vptsplant + ptsplant);
6500 }
6501 case 2:
6502 {
6503 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_ADMINKILL", ptsplant, aptsplant);
6504 AddPoints(iPlanter, aptsplant + ptsplant);
6505 }
6506 default:
6507 {
6508 }
6509 }
6510 UpdateStats(iPlanter);
6511 g_iBombPlanter = iPlanter;
6512 return 0;
6513}
6514
6515public bomb_explode(iPlanter, iDefuser)
6516{
6517 g_bBombExploded = true;
6518 return 0;
6519}
6520
6521public bomb_defused(iDefuser)
6522{
6523 new flags = user_flags(iDefuser);
6524 new ptsplant = get_pcvar_num(cvar_defusepts);
6525 new vptsplant = get_pcvar_num(cvar_vipdefusebonus);
6526 new aptsplant = get_pcvar_num(cvar_admindefusebonus);
6527 new vipenabled = get_pcvar_num(cvar_vipenablebonus);
6528 new adminenabled = get_pcvar_num(cvar_adminenablebonus);
6529 set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
6530 new var1;
6531 if (flags == 2 && !adminenabled)
6532 {
6533 if (vipenabled)
6534 {
6535 flags = 1;
6536 }
6537 flags = 0;
6538 }
6539 new var2;
6540 if (flags == 1 && !vipenabled)
6541 {
6542 flags = 0;
6543 }
6544 switch (flags)
6545 {
6546 case 0:
6547 {
6548 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_KILL", ptsplant);
6549 AddPoints(iDefuser, ptsplant);
6550 }
6551 case 1:
6552 {
6553 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_VIPKILL", ptsplant, vptsplant);
6554 AddPoints(iDefuser, vptsplant + ptsplant);
6555 }
6556 case 2:
6557 {
6558 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_ADMINKILL", ptsplant, aptsplant);
6559 AddPoints(iDefuser, aptsplant + ptsplant);
6560 }
6561 default:
6562 {
6563 }
6564 }
6565 UpdateStats(iDefuser);
6566 g_iBombDefuser = iDefuser;
6567 return 0;
6568}
6569
6570ShowMVPMessage(iMVP, iReason)
6571{
6572 new playerCount = get_pcvar_num(cvar_MvpPlayers);
6573 if (playerCount > get_playersnum(MaxClients))
6574 {
6575 return 1;
6576 }
6577 new red = random_num(1, 255);
6578 new green = random_num(1, 255);
6579 new blue = random_num(1, 255);
6580 new players[32];
6581 new pnum;
6582 new tempid;
6583 get_players(players, pnum, "ch", 4130056);
6584 new szMVPName[32];
6585 new pointsamount = get_pcvar_num(cvar_MvpPointsAmount);
6586 new minmvp = get_pcvar_num(cvar_MinMVPPlayers);
6587 get_user_name(iMVP, szMVPName, 31);
6588 set_dhudmessage(red, green, blue, -1082130432, 1059481190, 1, 1086324736, 1077936128, 1036831949, 1069547520);
6589 new isWav = equali(MVPSoundPath[MVPSound[iMVP]][strlen(MVPSoundPath[MVPSound[iMVP]]) - 4], ".wav", MaxClients);
6590 new var1;
6591 if (isLogged[iMVP] && !mvpShown)
6592 {
6593 mvpShown = true;
6594 switch (iReason)
6595 {
6596 case 1:
6597 {
6598 if (1 > g_iEnemiesKilled[iMVP])
6599 {
6600 return 1;
6601 }
6602 show_dhudmessage(MaxClients, "%L", -1, "MVP_KILLS", szMVPName, g_iEnemiesKilled[iMVP], g_iEnemiesHS[iMVP], MVPSounds[MVPSound[iMVP]]);
6603 }
6604 case 2:
6605 {
6606 show_dhudmessage(MaxClients, "%L", -1, "MVP_DEFUSE", szMVPName, MVPSounds[MVPSound[iMVP]]);
6607 }
6608 case 3:
6609 {
6610 show_dhudmessage(MaxClients, "%L", -1, "MVP_PLANT", szMVPName, MVPSounds[MVPSound[iMVP]]);
6611 }
6612 default:
6613 {
6614 }
6615 }
6616 new i;
6617 while (i < pnum)
6618 {
6619 tempid = players[i];
6620 if (MVPEnabled[tempid])
6621 {
6622 if (isWav)
6623 {
6624 }
6625 }
6626 i++;
6627 }
6628 Mvp[iMVP]++;
6629 new vipFlag[32];
6630 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6631 new var2;
6632 if (get_pcvar_num(cvar_MvpRewardVIP) && get_playersnum(MaxClients) >= minmvp)
6633 {
6634 if (has_all_flags(iMVP, vipFlag))
6635 {
6636 new var3 = Points[iMVP];
6637 var3 = var3[pointsamount];
6638 client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS_VIP", pointsamount);
6639 }
6640 }
6641 else
6642 {
6643 if (minmvp <= get_playersnum(MaxClients))
6644 {
6645 new var4 = Points[iMVP];
6646 var4 = var4[pointsamount];
6647 client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS", pointsamount);
6648 }
6649 }
6650 }
6651 UpdateStats(iMVP);
6652 return 1;
6653}
6654
6655GetTopKiller(iTeam)
6656{
6657 new iPlayers[32];
6658 new iPlayersnum;
6659 new var1;
6660 if (iTeam == 1)
6661 {
6662 var1 = 4170932;
6663 }
6664 else
6665 {
6666 var1 = 4170972;
6667 }
6668 get_players(iPlayers, iPlayersnum, 4170924, var1);
6669 SortCustom1D(iPlayers, iPlayersnum, "SortByKills", {0}, MaxClients);
6670 return iPlayers[0];
6671}
6672
6673public SortByKills(elem1, elem2)
6674{
6675 if (g_iEnemiesKilled[elem2] < g_iEnemiesKilled[elem1])
6676 {
6677 return -1;
6678 }
6679 return 1;
6680}
6681
6682public PlayerData(id)
6683{
6684 new var1;
6685 if (isLogged[id] && HudEnabled[id])
6686 {
6687 new szText[256];
6688 new wId = get_user_weapon(id, 0, 0);
6689 new iSpecPlayer = pev(id, 101);
6690 new SkinName[128];
6691 set_hudmessage(64, 64, 64, 1028443341, 1041865114, MaxClients, MaxClients, floatadd(1065353216, 1036831949), MaxClients, MaxClients, -1);
6692 new var2;
6693 if (is_user_alive(iSpecPlayer) && !is_user_alive(id))
6694 {
6695 if (g_bUsingGuns[iSpecPlayer][wId])
6696 {
6697 format_skin_name(SkinName, 128, g_bUsingGuns[iSpecPlayer][wId], 2);
6698 new var3;
6699 if (clan_inclan[iSpecPlayer])
6700 {
6701 var3 = clan_name[iSpecPlayer];
6702 }
6703 else
6704 {
6705 var3 = 4171288;
6706 }
6707 user_name(iSpecPlayer);
6708
6709/* ERROR! Can't print expression: Heap */
6710 function "PlayerData" (number 165)
6711user_flags(id)
6712{
6713 new vipFlag[32];
6714 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6715 new adminFlag[32];
6716 get_pcvar_string(cvar_adminFlag, adminFlag, 32);
6717 if (has_all_flags(id, adminFlag))
6718 {
6719 return 2;
6720 }
6721 if (has_all_flags(id, vipFlag))
6722 {
6723 return 1;
6724 }
6725 return 0;
6726}
6727
6728public NameChange(id)
6729{
6730 new var1;
6731 if (!is_user_connected(id) || is_user_bot(id))
6732 {
6733 return 1;
6734 }
6735 new OldName[32];
6736 new NewName[32];
6737 new Name[32];
6738 get_user_name(id, Name, 31);
6739 pev(id, 6, OldName, 31);
6740 if (OldName[0])
6741 {
6742 get_user_info(id, "name", NewName, 31);
6743 if (!equal(OldName, NewName, MaxClients))
6744 {
6745 set_user_info(id, "name", OldName);
6746 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NAMECHANGE_DISABLED");
6747 return 2;
6748 }
6749 }
6750 return 1;
6751}
6752
6753public native_set_user_points(id, amount)
6754{
6755 Points[id] = amount;
6756 UpdateStats(id);
6757 return 0;
6758}
6759
6760public native_get_user_points(id)
6761{
6762 return Points[id];
6763}
6764
6765public native_get_usergo_id(id)
6766{
6767 return ID[id];
6768}
6769
6770public native_set_user_ck(id, ck, num, amount)
6771{
6772 if (ck)
6773 {
6774 new var1 = Keys[id][num];
6775 var1 = var1[amount];
6776 }
6777 else
6778 {
6779 new var2 = Cases[id][num];
6780 var2 = var2[amount];
6781 }
6782 UpdateItems(id);
6783 return 0;
6784}
6785
6786public native_is_user_logged(id)
6787{
6788 if (isLogged[id])
6789 {
6790 return 1;
6791 }
6792 return 0;
6793}
6794
6795public SavePass(id)
6796{
6797 set_user_info(id, "gopw", Password[id]);
6798 client_cmd(id, "setinfo gopw %s", Password[id]);
6799 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASS_SAVED");
6800 return 1;
6801}
6802
6803public Rankz(id)
6804{
6805 new Data[1];
6806 Data[0] = id;
6807 new szTemp[512];
6808 format(szTemp, 511, "SELECT COUNT(*) FROM csgo_stats WHERE `skill` >= '%.2f'", Skill[id]);
6809 SQL_ThreadQuery(g_SqlTuple, "Rank_QueryHandler", szTemp, Data, 1);
6810 return 0;
6811}
6812
6813public Rank_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6814{
6815 if (FailState == -2)
6816 {
6817 return 1;
6818 }
6819 new id = Data[0];
6820 g_iRank[id] = SQL_ReadResult(Query, MaxClients);
6821 TotalRows(id);
6822 return 1;
6823}
6824
6825public TotalRows(id)
6826{
6827 new Data[1];
6828 Data[0] = id;
6829 new szTemp[128];
6830 format(szTemp, 127, "SELECT COUNT(*) FROM csgo_stats");
6831 SQL_ThreadQuery(g_SqlTuple, "TotalRows_QueryHandler", szTemp, Data, 1);
6832 return 0;
6833}
6834
6835public TotalRows_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6836{
6837 if (FailState == -2)
6838 {
6839 return 1;
6840 }
6841 new id = Data[0];
6842 g_iCount = SQL_ReadResult(Query, MaxClients);
6843 new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
6844 if (CalibrationKills <= Kills[id])
6845 {
6846 if (!g_iRank[id])
6847 {
6848 g_iRank[id] = 1;
6849 }
6850 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK", g_iRank[id], g_iCount, Kills[id], Skill[id]);
6851 }
6852 else
6853 {
6854 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK_UNRANKED", CalibrationKills - Kills[id]);
6855 }
6856 return 1;
6857}
6858
6859public MySql_Init()
6860{
6861 new host[128];
6862 new user[128];
6863 new pass[128];
6864 new db[128];
6865 get_pcvar_string(cvar_SqlHost, host, cvar_SqlUser);
6866 get_pcvar_string(cvar_SqlUser, user, cvar_SqlUser);
6867 get_pcvar_string(cvar_SqlPass, pass, cvar_SqlUser);
6868 get_pcvar_string(cvar_SqlDb, db, cvar_SqlUser);
6869 g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db, MaxClients);
6870 SQL_SetCharset(g_SqlTuple, "utf8");
6871 new ErrorCode;
6872 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, g_Error, 511);
6873 if (!SqlConnection)
6874 {
6875 set_fail_state(g_Error);
6876 }
6877 new Handle:Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_player (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE, password varchar(255) COLLATE utf8_lithuanian_ci, ip varchar(255), steamid varchar(255), created_at date, is_online INT(1));");
6878 SQL_Execute(Queries);
6879 Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_stats (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE, points INT(11), kills INT(11), rank INT(11), level INT(11), mvp INT(11), clan_name varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, clan_pos INT(1), dusts INT(11), deathnote INT(1), deathnote_msg varchar(128) COLLATE utf8_lithuanian_ci, skill FLOAT(5,2));");
6880 SQL_Execute(Queries);
6881 Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_items (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE, cases varchar(255), keyz varchar(255), skins varchar(1024), skins_used varchar(255), stattrak varchar(1024));");
6882 SQL_Execute(Queries);
6883 Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_market (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, weapon_id INT(3), skin_id INT(3), key_id INT(2), case_id INT(2), quantity INT(11), price INT(11));");
6884 SQL_Execute(Queries);
6885 Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_settings (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, hud_enabled INT(1), mvp_trackid INT(3), mvp_enabled INT(1), faction_t INT(1), faction_ct INT(1));");
6886 SQL_Execute(Queries);
6887 Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_clan (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, clan_name varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE);");
6888 SQL_Execute(Queries);
6889 Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_misc (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, chat_ink INT(11), chat_tag varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, graffiti INT(2), graffities varchar(255), graffiti_box INT(11), day INT(2));");
6890 SQL_Execute(Queries);
6891 if (!SQL_Execute(Queries))
6892 {
6893 SQL_QueryError(Queries, g_Error, 511);
6894 set_fail_state(g_Error);
6895 }
6896 SQL_FreeHandle(Queries);
6897 SQL_FreeHandle(SqlConnection);
6898 GetCKData();
6899 GetSkinData();
6900 return 0;
6901}
6902
6903public plugin_end()
6904{
6905 SQL_FreeHandle(g_SqlTuple);
6906 return 0;
6907}
6908
6909public sql_IsRegister(id)
6910{
6911 new szTemp[1024];
6912 new Data[1];
6913 Data[0] = id;
6914 new szName[32];
6915 user_name_sql(szName, 32, id);
6916 format(szTemp, 1023, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
6917 SQL_ThreadQuery(g_SqlTuple, "check_client", szTemp, Data, 1);
6918 return 0;
6919}
6920
6921public check_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6922{
6923 new id = Data[0];
6924 if (1 > SQL_NumResults(Query))
6925 {
6926 isRegistered[id] = 0;
6927 }
6928 else
6929 {
6930 isRegistered[id] = 1;
6931 get_user_info(id, "gopw", cfgPassword[id], 32);
6932 ID[id] = SQL_ReadResult(Query, MaxClients);
6933 SQL_ReadResult(Query, 2, sqlPassword[id], 32);
6934 if (equal(cfgPassword[id], sqlPassword[id], MaxClients))
6935 {
6936 passwordMatches[id] = 1;
6937 isLogged[id] = 1;
6938 UpdatePlayer(id);
6939 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4181108, MaxClients);
6940 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_SUCCESS");
6941 sql_RetrieveUserItems(id);
6942 sql_RetrieveUserStats(id);
6943 sql_RetrieveUserSettings(id);
6944 sql_RetrieveUserMisc(id);
6945 set_task(1072064102, "GetClanData", id, 4109032, MaxClients, 4109036, MaxClients);
6946 set_task(1072064102, "SetSkin", id, 4109032, MaxClients, 4109036, MaxClients);
6947 if (is_user_alive(id))
6948 {
6949 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
6950 }
6951 client_print(id, NULL_STRING, "%L", id, "DATA_LOADING");
6952 }
6953 }
6954 return 1;
6955}
6956
6957public sql_RegisterUser(id)
6958{
6959 new szTemp[2048];
6960 new Data[1];
6961 Data[0] = id;
6962 new szName[32];
6963 user_name_sql(szName, 32, id);
6964 format(szTemp, 2047, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
6965 SQL_ThreadQuery(g_SqlTuple, "register_client", szTemp, Data, 1);
6966 return 0;
6967}
6968
6969public register_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6970{
6971 if (FailState == -2)
6972 {
6973 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
6974 }
6975 else
6976 {
6977 if (FailState == -1)
6978 {
6979 log_amx("Load Query failed. [%d] %s", Errcode, Error);
6980 }
6981 }
6982 new id = Data[0];
6983 new year;
6984 new month;
6985 new day;
6986 date(year, month, day);
6987 new szSteamId[32];
6988 new szIP[40];
6989 new szName[32];
6990 user_name_sql(szName, 32, id);
6991 get_user_authid(id, szSteamId, 31);
6992 get_user_ip(id, szIP, 39, 1);
6993 if (1 > SQL_NumResults(Query))
6994 {
6995 new szTemp[2048];
6996 new szSkins[512];
6997 new szKSkins[512];
6998 new szUGuns[128];
6999 new szChests[128];
7000 new szKeys[128];
7001 new szGraffities[128];
7002 format(szSkins, 512, 4182072);
7003 format(szKSkins, 512, 4182076);
7004 format(szUGuns, cvar_SqlUser, 4182080);
7005 format(szChests, cvar_SqlUser, 4182084);
7006 format(szKeys, cvar_SqlUser, 4182088);
7007 new i;
7008 while (i < 300)
7009 {
7010 format(szSkins, 512, "%s%d ", szSkins, UserSkins[i][id]);
7011 format(szKSkins, 512, "%s%d ", szKSkins, UserStattrak[i][id]);
7012 i++;
7013 }
7014 new i;
7015 while (i < 32)
7016 {
7017 format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
7018 i++;
7019 }
7020 new i;
7021 while (i <= 8)
7022 {
7023 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7024 i++;
7025 }
7026 new i;
7027 while (i <= 8)
7028 {
7029 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7030 i++;
7031 }
7032 new i;
7033 while (i < 64)
7034 {
7035 format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
7036 i++;
7037 }
7038 new rSong = random_num(1, AllSounds);
7039 while (MVPSoundVIP[rSong])
7040 {
7041 rSong = random_num(1, AllSounds);
7042 }
7043 format(szTemp, 2047, "INSERT INTO `csgo_player` (`username` , `password`, `ip`, `steamid`, `created_at`) VALUES ('%s','%s','%s','%s','%d-%d-%d');", szName, Password[id], szIP, szSteamId, year, month, day);
7044 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7045 format(szTemp, 2047, "INSERT INTO `csgo_stats` (`username` , `points`, `kills`, `rank`, `level`, `mvp`, `clan_name`, `clan_pos`, `dusts`, `deathnote`, `deathnote_msg`, `skill`) VALUES ('%s','0','0','0','0','0','0','0','0','0','','100.00');", szName);
7046 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7047 format(szTemp, 2047, "INSERT INTO `csgo_items` (`username` , `cases`, `keyz`, `skins`, `skins_used`, `stattrak`) VALUES ('%s','%s','%s','%s','%s','%s');", szName, szChests, szKeys, szSkins, szUGuns, szKSkins);
7048 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7049 format(szTemp, 2047, "INSERT INTO `csgo_settings` (`username` , `hud_enabled`, `mvp_trackid`, `mvp_enabled`, `faction_t`, `faction_ct`) VALUES ('%s','1','%d','1','0','0');", szName, rSong);
7050 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7051 format(szTemp, 2047, "INSERT INTO `csgo_misc` (`username` , `chat_ink`, `chat_tag`, `graffiti`, `graffities`, `graffiti_box`, `day`) VALUES ('%s','%d','%s','%d','%s','%d', '%d');", szName, ChatInk[id], ChatTag[id], SelectedGraffiti[id], szGraffities, GraffitiBox[id], iDay[id]);
7052 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7053 }
7054 else
7055 {
7056 ID[id] = SQL_ReadResult(Query, MaxClients);
7057 }
7058 return 1;
7059}
7060
7061public sql_RetrieveUserMisc(id)
7062{
7063 new szTemp[1024];
7064 new Data[1];
7065 Data[0] = id;
7066 new szName[32];
7067 user_name_sql(szName, 32, id);
7068 format(szTemp, 1023, "SELECT * FROM `csgo_misc` WHERE (`csgo_misc`.`username` = '%s')", szName);
7069 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_misc", szTemp, Data, 1);
7070 return 0;
7071}
7072
7073public retrieve_user_misc(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7074{
7075 if (FailState == -2)
7076 {
7077 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7078 }
7079 else
7080 {
7081 if (FailState == -1)
7082 {
7083 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7084 }
7085 }
7086 new id;
7087 new szTemp[512];
7088 id = Data[0];
7089 new szGraffities[128];
7090 new szName[32];
7091 user_name_sql(szName, 32, id);
7092 if (SQL_NumResults(Query) == 1)
7093 {
7094 ChatInk[id] = SQL_ReadResult(Query, 2);
7095 SQL_ReadResult(Query, 3, ChatTag[id], 33);
7096 SelectedGraffiti[id] = SQL_ReadResult(Query, NULL_STRING);
7097 SQL_ReadResult(Query, 5, szGraffities, 128);
7098 GraffitiBox[id] = SQL_ReadResult(Query, 6);
7099 iDay[id] = SQL_ReadResult(Query, 7);
7100 if (g_iDay == iDay[id])
7101 {
7102 Rewarded[id] = 1;
7103 }
7104 new myNumbers[256];
7105 new count = ExplodeString(szGraffities, myNumbers, 256);
7106 if (count)
7107 {
7108 new i = 1;
7109 while (i < 64)
7110 {
7111 UserGraffiti[i][id] = myNumbers[i];
7112 i++;
7113 }
7114 }
7115 if (1 < strlen(clan_name[id]))
7116 {
7117 clan_inclan[id] = 1;
7118 }
7119 }
7120 else
7121 {
7122 format(szTemp, 511, "INSERT INTO `csgo_misc` (`username`, `chat_ink`, `chat_tag`, `graffiti`, `graffities`, `graffiti_box`, `day`) VALUES ('%s','%d','%s','%d','%s','%d', '%d');", szName, ChatInk[id], ChatTag[id], SelectedGraffiti[id], szGraffities, GraffitiBox[id], iDay[id]);
7123 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7124 }
7125 return 1;
7126}
7127
7128public sql_RetrieveUserItems(id)
7129{
7130 new szTemp[1024];
7131 new Data[1];
7132 Data[0] = id;
7133 new szName[32];
7134 user_name_sql(szName, 32, id);
7135 format(szTemp, 1023, "SELECT * FROM `csgo_items` WHERE (`csgo_items`.`username` = '%s')", szName);
7136 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_items", szTemp, Data, 1);
7137 return 0;
7138}
7139
7140public retrieve_user_items(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7141{
7142 if (FailState == -2)
7143 {
7144 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7145 }
7146 else
7147 {
7148 if (FailState == -1)
7149 {
7150 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7151 }
7152 }
7153 new id = Data[0];
7154 new year;
7155 new month;
7156 new day;
7157 date(year, month, day);
7158 new szSteamId[32];
7159 new szIP[40];
7160 get_user_authid(id, szSteamId, 31);
7161 get_user_ip(id, szIP, 39, 1);
7162 if (SQL_NumResults(Query) == 1)
7163 {
7164 new szSkins[812];
7165 new szKSkins[812];
7166 new szUGuns[256];
7167 new szChests[128];
7168 new szKeys[128];
7169 SQL_ReadResult(Query, 2, szChests, 128);
7170 SQL_ReadResult(Query, 3, szKeys, 128);
7171 SQL_ReadResult(Query, NULL_STRING, szSkins, 812);
7172 SQL_ReadResult(Query, 5, szUGuns, 256);
7173 SQL_ReadResult(Query, 6, szKSkins, 812);
7174 SQL_NextRow(Query);
7175 new myNumbers[812];
7176 new count = ExplodeString(szSkins, myNumbers, 812);
7177 if (count)
7178 {
7179 new i = 1;
7180 while (i < 300)
7181 {
7182 UserSkins[i][id] = myNumbers[i];
7183 i++;
7184 }
7185 }
7186 count = ExplodeString(szKSkins, myNumbers, 812);
7187 if (count)
7188 {
7189 new i = 1;
7190 while (i < 300)
7191 {
7192 UserStattrak[i][id] = myNumbers[i];
7193 i++;
7194 }
7195 }
7196 count = ExplodeString(szUGuns, myNumbers, 812);
7197 if (count)
7198 {
7199 new i = 1;
7200 while (i < 32)
7201 {
7202 if (300 >= myNumbers[i])
7203 {
7204 new var1;
7205 if (UserSkins[myNumbers[i]][id] && Weapons[myNumbers[i]] == i)
7206 {
7207 g_bUsingGuns[id][i] = myNumbers[i];
7208 }
7209 }
7210 i++;
7211 }
7212 }
7213 count = ExplodeString(szChests, myNumbers, 812);
7214 if (count)
7215 {
7216 new i = 1;
7217 while (i <= 8)
7218 {
7219 Cases[id][i] = myNumbers[i];
7220 i++;
7221 }
7222 }
7223 count = ExplodeString(szKeys, myNumbers, 812);
7224 if (count)
7225 {
7226 new i = 1;
7227 while (i <= 8)
7228 {
7229 Keys[id][i] = myNumbers[i];
7230 i++;
7231 }
7232 }
7233 }
7234 return 1;
7235}
7236
7237public sql_RetrieveUserSettings(id)
7238{
7239 new szTemp[1024];
7240 new Data[1];
7241 Data[0] = id;
7242 new szName[32];
7243 user_name_sql(szName, 32, id);
7244 format(szTemp, 1023, "SELECT * FROM `csgo_settings` WHERE (`csgo_settings`.`username` = '%s')", szName);
7245 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_settings", szTemp, Data, 1);
7246 return 0;
7247}
7248
7249public retrieve_user_settings(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7250{
7251 if (FailState == -2)
7252 {
7253 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7254 }
7255 else
7256 {
7257 if (FailState == -1)
7258 {
7259 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7260 }
7261 }
7262 new id = Data[0];
7263 new vipFlag[32];
7264 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
7265 new year;
7266 new month;
7267 new day;
7268 date(year, month, day);
7269 new szSteamId[32];
7270 new szIP[40];
7271 get_user_authid(id, szSteamId, 31);
7272 get_user_ip(id, szIP, 39, 1);
7273 if (SQL_NumResults(Query) == 1)
7274 {
7275 HudEnabled[id] = SQL_ReadResult(Query, 2);
7276 MVPSound[id] = SQL_ReadResult(Query, 3);
7277 MVPEnabled[id] = SQL_ReadResult(Query, NULL_STRING);
7278 FactionT[id] = SQL_ReadResult(Query, 5);
7279 FactionCT[id] = SQL_ReadResult(Query, 6);
7280 }
7281 new var1;
7282 if (!has_all_flags(id, vipFlag) && MVPSoundVIP[MVPSound[id]])
7283 {
7284 MVPSound[id] = 0;
7285 }
7286 return 1;
7287}
7288
7289public sql_RetrieveUserStats(id)
7290{
7291 new szTemp[1024];
7292 new Data[1];
7293 Data[0] = id;
7294 new szName[32];
7295 user_name_sql(szName, 32, id);
7296 format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE (`csgo_stats`.`username` = '%s')", szName);
7297 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_stats", szTemp, Data, 1);
7298 return 0;
7299}
7300
7301public retrieve_user_stats(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7302{
7303 if (FailState == -2)
7304 {
7305 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7306 }
7307 else
7308 {
7309 if (FailState == -1)
7310 {
7311 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7312 }
7313 }
7314 new id = Data[0];
7315 new year;
7316 new month;
7317 new day;
7318 date(year, month, day);
7319 new szSteamId[32];
7320 new szIP[40];
7321 get_user_authid(id, szSteamId, 31);
7322 get_user_ip(id, szIP, 39, 1);
7323 if (SQL_NumResults(Query) == 1)
7324 {
7325 ID[id] = SQL_ReadResult(Query, MaxClients);
7326 Points[id] = SQL_ReadResult(Query, 2);
7327 Kills[id] = SQL_ReadResult(Query, 3);
7328 Rank[id] = SQL_ReadResult(Query, NULL_STRING);
7329 Level[id] = SQL_ReadResult(Query, 5);
7330 Mvp[id] = SQL_ReadResult(Query, 6);
7331 SQL_ReadResult(Query, 7, clan_name[id], 64);
7332 clan_playerpos[id] = SQL_ReadResult(Query, NULL_VECTOR);
7333 Dusts[id] = SQL_ReadResult(Query, 9);
7334 hasDeathNote[id] = SQL_ReadResult(Query, 10);
7335 SQL_ReadResult(Query, 11, DeathNote[id], 33);
7336 SQL_ReadResult(Query, 12, Skill[id]);
7337 if (1 < strlen(clan_name[id]))
7338 {
7339 clan_inclan[id] = 1;
7340 }
7341 }
7342 return 1;
7343}
7344
7345public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7346{
7347 SQL_FreeHandle(Query);
7348 return 1;
7349}
7350
7351bool:ValidMdl(Mdl[])
7352{
7353 new var1;
7354 if (containi(Mdl, ".mdl") != -1)
7355 {
7356 var1 = true;
7357 }
7358 else
7359 {
7360 var1 = false;
7361 }
7362 return var1;
7363}
7364
7365user_name(id, _arg1)
7366{
7367 new szName[33];
7368 get_user_name(id, szName, 32);
7369 return szName;
7370}
7371
7372user_name_sql(buffer[], size, id)
7373{
7374 new szName[32];
7375 get_user_name(id, szName, 31);
7376 replace_all(szName, 32, "\\", "\\\\");
7377 replace_all(szName, 32, "\0", "\\0");
7378 replace_all(szName, 32, "\n", "\\n");
7379 replace_all(szName, 32, "\r", "\\r");
7380 replace_all(szName, 32, "\x1a", "\Z");
7381 replace_all(szName, 32, 4189108, "\'");
7382 replace_all(szName, 32, 4189128, "\\"");
7383 formatex(buffer, size, "%s", szName);
7384 return 0;
7385}
7386
7387TrimDeathnote(id, buffer[], size)
7388{
7389 replace_all(DeathNote[id], 33, 4189160, 4189168);
7390 replace_all(DeathNote[id], 33, 4189172, "\\"");
7391 formatex(buffer, size, "%s", DeathNote[id]);
7392 return 0;
7393}
7394
7395ExplodeString(string[], output[], olen)
7396{
7397 new len = strlen(string);
7398 if (!len)
7399 {
7400 return 0;
7401 }
7402 new i;
7403 new c;
7404 new j;
7405 new count;
7406 new number[12];
7407 do {
7408 while (string[i] == 32)
7409 {
7410 i++;
7411 }
7412 while (var3 && c != 32)
7413 {
7414 }
7415 count++;
7416 output[count] = str_to_num(number);
7417 j = 0;
7418 new var2;
7419 if (!(i < len && count < olen))
7420 {
7421 return count;
7422 }
7423 } while (var2);
7424 return count;
7425}
7426
7427public UpdateMisc(id)
7428{
7429 new szGraffities[128];
7430 new i;
7431 while (i < 64)
7432 {
7433 format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
7434 i++;
7435 }
7436 new szTemp[2200];
7437 new szName[32];
7438 user_name_sql(szName, 32, id);
7439 new var1;
7440 if (isLogged[id] && isRegistered[id])
7441 {
7442 TrimDeathnote(id, DeathNote[id], 33);
7443 format(szTemp, 2199, "UPDATE `csgo_misc` SET `chat_ink` = '%d', `chat_tag` = '%s', `graffiti` = '%d', `graffities` = '%s', `graffiti_box` = '%d', `day` = '%d' WHERE `username` = '%s';", ChatInk[id], ChatTag[id], SelectedGraffiti[id], szGraffities, GraffitiBox[id], iDay[id], szName);
7444 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7445 }
7446 return 0;
7447}
7448
7449public UpdateStats(id)
7450{
7451 new szTemp[2048];
7452 new szName[32];
7453 user_name_sql(szName, 32, id);
7454 new var1;
7455 if (isLogged[id] && isRegistered[id])
7456 {
7457 TrimDeathnote(id, DeathNote[id], 33);
7458 format(szTemp, 2047, "UPDATE `csgo_stats` SET `points` = '%d', `kills` = '%d', `rank` = '%d', `level` = '%d', `mvp` = '%d', `clan_name` = '%s', `clan_pos` = '%d', `dusts` = '%d', `deathnote` = '%d', `deathnote_msg` = '%s', `skill` = '%.2f' WHERE `username` = '%s';", Points[id], Kills[id], Rank[id], Level[id], Mvp[id], clan_name[id], clan_playerpos[id], Dusts[id], hasDeathNote[id], DeathNote[id], Skill[id], szName);
7459 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7460 }
7461 return 0;
7462}
7463
7464public UpdatePlayer(id)
7465{
7466 new szTemp[2048];
7467 new szName[32];
7468 user_name_sql(szName, 32, id);
7469 new var1;
7470 if (isLogged[id])
7471 {
7472 var1 = 1;
7473 }
7474 else
7475 {
7476 var1 = 0;
7477 }
7478 isOnline[id] = var1;
7479 format(szTemp, 2047, "UPDATE `csgo_player` SET `is_online` = '%d' WHERE `username` = '%s';", isOnline[id], szName);
7480 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7481 return 0;
7482}
7483
7484public AddClan(id)
7485{
7486 new szTemp[1024];
7487 new var1;
7488 if (isLogged[id] && isRegistered[id])
7489 {
7490 format(szTemp, 1023, "INSERT INTO `csgo_clan` (`clan_name`) VALUES ('%s');", clan_name[id]);
7491 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7492 }
7493 return 0;
7494}
7495
7496public UpdateSettings(id)
7497{
7498 new szTemp[1024];
7499 new szName[32];
7500 user_name_sql(szName, 32, id);
7501 new var1;
7502 if (isLogged[id] && isRegistered[id])
7503 {
7504 format(szTemp, 1023, "UPDATE `csgo_settings` SET `hud_enabled` = '%d', `mvp_trackid` = '%d', `mvp_enabled` = '%d', `faction_t` = '%d', `faction_ct` = '%d' WHERE `username` = '%s';", HudEnabled[id], MVPSound[id], MVPEnabled[id], FactionT[id], FactionCT[id], szName);
7505 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7506 }
7507 return 0;
7508}
7509
7510public AddSkinToMarket(id)
7511{
7512 new szTemp[1024];
7513 new szName[32];
7514 user_name_sql(szName, 32, id);
7515 new var1;
7516 if (isLogged[id] && isRegistered[id])
7517 {
7518 format(szTemp, 1023, "INSERT INTO `csgo_market` (username, weapon_id, skin_id, key_id, case_id, quantity, price) VALUES ('%s', '%d', '%d', '0', '0', '0', '%d');", szName, marketwepid[id], marketskinid[id], market_cost[id]);
7519 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7520 }
7521 return 0;
7522}
7523
7524public AddCKToMarket(id)
7525{
7526 new szTemp[1024];
7527 new szName[32];
7528 user_name_sql(szName, 32, id);
7529 new var1;
7530 if (isLogged[id] && isRegistered[id])
7531 {
7532 new var2;
7533 if (SelectedTypeMarket[id])
7534 {
7535 var2 = SelectedItemMarket[id];
7536 }
7537 else
7538 {
7539 var2 = 0;
7540 }
7541 new var3;
7542 if (!SelectedTypeMarket[id])
7543 {
7544 var3 = SelectedItemMarket[id];
7545 }
7546 else
7547 {
7548 var3 = 0;
7549 }
7550 format(szTemp, 1023, "INSERT INTO `csgo_market` (username, weapon_id, skin_id, key_id, case_id, quantity, price) VALUES ('%s', '0', '0', '%d', '%d', '%d', '%d');", szName, var3, var2, ckm_quantity[id], market_cost[id]);
7551 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7552 }
7553 return 0;
7554}
7555
7556public UpdateCK(id)
7557{
7558 new szTemp[1024];
7559 new szName[32];
7560 user_name_sql(szName, 32, id);
7561 new var1;
7562 if (isLogged[id] && isRegistered[id])
7563 {
7564 new szChests[128];
7565 new szKeys[128];
7566 new i;
7567 while (i <= 8)
7568 {
7569 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7570 i++;
7571 }
7572 new i;
7573 while (i <= 8)
7574 {
7575 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7576 i++;
7577 }
7578 format(szTemp, 1023, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s' WHERE username = '%s';", szChests, szKeys, szName);
7579 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7580 }
7581 return 0;
7582}
7583
7584public UpdateCKMarket(iNum)
7585{
7586 new szTemp[1024];
7587 replace_all(marketseller[iNum], 1027, 4193856, "\'");
7588 replace_all(marketseller[iNum], 1027, 4193876, "\\"");
7589 format(szTemp, 1023, "UPDATE `csgo_market` SET `quantity` = '%d' WHERE id = '%d';", marketquantity[iNum], marketid[iNum]);
7590 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7591 return 0;
7592}
7593
7594public UpdateItems(id)
7595{
7596 new szTemp[1028];
7597 new szName[32];
7598 user_name_sql(szName, 32, id);
7599 if (isLogged[id])
7600 {
7601 new szSkins[1028];
7602 new szKSkins[1028];
7603 new szUGuns[128];
7604 new szChests[128];
7605 new szKeys[128];
7606 format(szSkins, 1028, 4194188);
7607 format(szKSkins, 1028, 4194192);
7608 format(szUGuns, cvar_SqlUser, 4194196);
7609 format(szChests, cvar_SqlUser, 4194200);
7610 format(szKeys, cvar_SqlUser, 4194204);
7611 new i;
7612 while (i < 300)
7613 {
7614 format(szSkins, 1028, "%s%d ", szSkins, UserSkins[i][id]);
7615 format(szKSkins, 1028, "%s%d ", szKSkins, UserStattrak[i][id]);
7616 i++;
7617 }
7618 new i;
7619 while (i < 32)
7620 {
7621 format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
7622 i++;
7623 }
7624 new i;
7625 while (i <= 8)
7626 {
7627 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7628 i++;
7629 }
7630 new i;
7631 while (i <= 8)
7632 {
7633 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7634 i++;
7635 }
7636 format(szTemp, 1027, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s', `stattrak` = '%s' WHERE `username` = '%s';", szChests, szKeys, szKSkins, szName);
7637 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7638 format(szTemp, 1027, "UPDATE `csgo_items` SET `skins` = '%s', `skins_used` = '%s' WHERE `username` = '%s';", szSkins, szUGuns, szName);
7639 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7640 }
7641 return 0;
7642}
7643
7644public GetCKData()
7645{
7646 new szTemp[1024];
7647 new Data[1];
7648 format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE quantity = '0' AND skin_id = '0'");
7649 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7650 format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE key_id > 0 OR case_id > 0");
7651 SQL_ThreadQuery(g_SqlTuple, "ck_data", szTemp, Data, 1);
7652 return 0;
7653}
7654
7655public ck_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7656{
7657 if (FailState == -2)
7658 {
7659 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7660 }
7661 else
7662 {
7663 if (FailState == -1)
7664 {
7665 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7666 }
7667 }
7668 new i;
7669 marketckcount = 0;
7670 if (0 < SQL_NumResults(Query))
7671 {
7672 while (SQL_MoreResults(Query))
7673 {
7674 i++;
7675 marketid[i] = SQL_ReadResult(Query, MaxClients);
7676 SQL_ReadResult(Query, 1, marketseller[i], 63);
7677 marketkeys[i] = SQL_ReadResult(Query, NULL_STRING);
7678 marketcases[i] = SQL_ReadResult(Query, 5);
7679 marketquantity[i] = SQL_ReadResult(Query, 6);
7680 marketckprice[i] = SQL_ReadResult(Query, 7);
7681 marketckcount = marketquantity[i][marketckcount];
7682 SQL_NextRow(Query);
7683 }
7684 }
7685 return 1;
7686}
7687
7688public GetClanData(id)
7689{
7690 new szTemp[1024];
7691 new Data[1];
7692 Data[0] = id;
7693 format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE clan_name = '%s' ORDER BY clan_pos DESC", clan_name[id]);
7694 SQL_ThreadQuery(g_SqlTuple, "clan_data", szTemp, Data, 1);
7695 return 0;
7696}
7697
7698public clan_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7699{
7700 if (FailState == -2)
7701 {
7702 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7703 }
7704 else
7705 {
7706 if (FailState == -1)
7707 {
7708 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7709 }
7710 }
7711 new i;
7712 new id = Data[0];
7713 new var1;
7714 if (SQL_NumResults(Query) > 0 && i < 6)
7715 {
7716 while (SQL_MoreResults(Query))
7717 {
7718 SQL_ReadResult(Query, 1, clan_members[id][i], 63);
7719 i++;
7720 SQL_NextRow(Query);
7721 }
7722 }
7723 clan_count[id] = i;
7724 return 1;
7725}
7726
7727public GetSkinData()
7728{
7729 new szTemp[1024];
7730 new Data[1];
7731 format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE skin_id > 0");
7732 SQL_ThreadQuery(g_SqlTuple, "skin_data", szTemp, Data, 1);
7733 return 0;
7734}
7735
7736public skin_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7737{
7738 if (FailState == -2)
7739 {
7740 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7741 }
7742 else
7743 {
7744 if (FailState == -1)
7745 {
7746 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7747 }
7748 }
7749 new i;
7750 if (0 < SQL_NumResults(Query))
7751 {
7752 while (SQL_MoreResults(Query))
7753 {
7754 i++;
7755 marketidskin[i] = SQL_ReadResult(Query, MaxClients);
7756 SQL_ReadResult(Query, 1, marketskinseller[i], 63);
7757 marketwep[i] = SQL_ReadResult(Query, 2);
7758 marketskin[i] = SQL_ReadResult(Query, 3);
7759 marketskinprice[i] = SQL_ReadResult(Query, 7);
7760 SQL_NextRow(Query);
7761 }
7762 }
7763 return 1;
7764}
7765
7766public CheckClanName(id)
7767{
7768 new szTemp[1024];
7769 new Data[1];
7770 Data[0] = id;
7771 replace_all(clan_name[id], 63, 4197240, "\'");
7772 replace_all(clan_name[id], 63, 4197260, "\\"");
7773 format(szTemp, 1023, "SELECT * FROM `csgo_clan` WHERE `clan_name` = '%s'", clan_name[id]);
7774 SQL_ThreadQuery(g_SqlTuple, "clan_check", szTemp, Data, 1);
7775 return 0;
7776}
7777
7778public clan_check(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7779{
7780 if (FailState == -2)
7781 {
7782 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7783 }
7784 else
7785 {
7786 if (FailState == -1)
7787 {
7788 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7789 }
7790 }
7791 new id = Data[0];
7792 if (0 < SQL_NumResults(Query))
7793 {
7794 clan_istaken[id] = 1;
7795 }
7796 else
7797 {
7798 clan_istaken[id] = 0;
7799 }
7800 return 1;
7801}
7802
7803random_item(itemChances[], count)
7804{
7805 static sum;
7806 static i;
7807 static rand;
7808 rand = random(100);
7809 sum = 0;
7810 i = 0;
7811 i = 0;
7812 while (i <= count)
7813 {
7814 sum = itemChances[i][sum];
7815 if (sum > rand)
7816 {
7817 return i;
7818 }
7819 i += 1;
7820 }
7821 return i;
7822}
7823
7824public UpdateStatsOffline(Params[], points)
7825{
7826 replace_all(Params, 63, 4197852, "\'");
7827 replace_all(Params, 63, 4197872, "\\"");
7828 new szTemp[1024];
7829 format(szTemp, 1023, "UPDATE `csgo_stats` SET `points` = points + '%d' WHERE `username` = '%s';", points, Params);
7830 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7831 return 0;
7832}
7833
7834public DeleteFromMarket(playermarketid)
7835{
7836 new szTemp[1024];
7837 format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE `id` = '%d';", playermarketid);
7838 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4147896, MaxClients);
7839 return 0;
7840}
7841
7842public screenfade(id, red, green, blue)
7843{
7844 message_begin(1, get_user_msgid("ScreenFade"), 4198516, id);
7845 write_short(1024);
7846 write_short(1024);
7847 write_short(MaxClients);
7848 write_byte(red);
7849 write_byte(green);
7850 write_byte(blue);
7851 write_byte(75);
7852 message_end();
7853 return 0;
7854}
7855
7856public screenfade_grey(id)
7857{
7858 message_begin(1, get_user_msgid("ScreenFade"), 4198572, id);
7859 write_short(1024);
7860 write_short(1024);
7861 write_short(MaxClients);
7862 write_byte(150);
7863 write_byte(150);
7864 write_byte(150);
7865 write_byte(75);
7866 message_end();
7867 return 0;
7868}
7869
7870public drop_item(id, chance)
7871{
7872 new rNum = random_num(1, 100);
7873 new ck = random_num(1, "amxx_configsdir");
7874 new ckid = random_num(1, NULL_VECTOR);
7875 if (rNum <= chance)
7876 {
7877 if (ck == 1)
7878 {
7879 GraffitiBox[id]++;
7880 user_name(id);
7881
7882/* ERROR! Can't print expression: Heap */
7883 function "drop_item" (number 221)
7884public format_skin_name(buffer[], size, skinid, type)
7885{
7886 switch (type)
7887 {
7888 case 1:
7889 {
7890 if (Weapons[skinid] == 29)
7891 {
7892 replace_all(SkinNames[skinid], 300, "\r", 4198940);
7893 replace_all(SkinNames[skinid], 300, "\y", 4198960);
7894 replace_all(SkinNames[skinid], 300, "\d", 4198980);
7895 replace_all(SkinNames[skinid], 300, "\w", 4199000);
7896 replace_all(SkinNames[skinid], 300, 4199008, "\x01|\x04");
7897 formatex(buffer, size, "%s", SkinNames[skinid]);
7898 }
7899 else
7900 {
7901 formatex(buffer, size, "\x04%s \x01| \x04%s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7902 }
7903 }
7904 case 2:
7905 {
7906 if (Weapons[skinid] == 29)
7907 {
7908 replace_all(SkinNames[skinid], 300, "\r", 4199100);
7909 replace_all(SkinNames[skinid], 300, "\y", 4199116);
7910 replace_all(SkinNames[skinid], 300, "\d", 4199132);
7911 replace_all(SkinNames[skinid], 300, "\w", 4199148);
7912 formatex(buffer, size, "%s", SkinNames[skinid]);
7913 }
7914 else
7915 {
7916 formatex(buffer, size, "%s | %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7917 }
7918 }
7919 case 3:
7920 {
7921 if (Weapons[skinid] == 29)
7922 {
7923 formatex(buffer, size, "%s", SkinNames[skinid]);
7924 }
7925 else
7926 {
7927 formatex(buffer, size, "\r%s \w| %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7928 }
7929 }
7930 default:
7931 {
7932 }
7933 }
7934 return 0;
7935}
7936
7937public AddPoints(id, amount)
7938{
7939 new lhenabled = get_pcvar_num(cvar_LHEnabled);
7940 new var1;
7941 if (lhenabled && IsLuckyHour())
7942 {
7943 new lhbonus = get_pcvar_num(cvar_LHBonus);
7944 new var2 = Points[id];
7945 var2 = var2[lhbonus * amount];
7946 }
7947 else
7948 {
7949 new var3 = Points[id];
7950 var3 = var3[amount];
7951 }
7952 return 0;
7953}
7954
7955public IsLuckyHour()
7956{
7957 new lhstart = get_pcvar_num(cvar_LHStart);
7958 new lhend = get_pcvar_num(cvar_LHEnd);
7959 new data[3];
7960 get_time("%H", data, 2);
7961 if (lhend > str_to_num(data) >= lhstart)
7962 {
7963 return 1;
7964 }
7965 return 0;
7966}