· 6 years ago · Aug 17, 2019, 02:56 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, 49, 0, 103, 111, 95, 101, 110, 97, 98, 108, 101, 119, 0, 49, 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, 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
1036 },
1037 {
1038 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, 32, 84, 111, 32, 103, 101, 116, 32, 108
1039 },
1040 {
1041 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, 115, 103, 0, 97, 0, 0, 72, 76, 84
1042 },
1043 {
1044 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, 101, 110, 116, 95, 82, 111, 117, 110, 100
1045 },
1046 {
1047 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, 100, 0, 115, 97, 121, 32, 47, 111, 102
1048 },
1049 {
1050 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, 103, 69, 110, 116, 105, 116, 121, 0, 104
1051 },
1052 {
1053 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, 97, 110, 107, 0, 82, 97, 110, 107, 122
1054 },
1055 {
1056 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, 67, 75, 81, 117, 97, 110, 116, 105, 116
1057 },
1058 {
1059 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, 97, 109, 101, 0, 66, 101, 116, 0, 69
1060 }
1061 };
1062 new Len;
1063 get_configsdir(Folder, 47);
1064 format(RankFile, 47, 4109116, Folder);
1065 format(LevelFile, 47, "%s/csgo/levels.cfg", Folder);
1066 format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
1067 format(DefFile, 47, "%s/csgo/defaults.cfg", Folder);
1068 format(SoundFile, 47, "%s/csgo/mvpsounds.cfg", Folder);
1069 format(FactionFile, 47, "%s/csgo/factions.cfg", Folder);
1070 precache_sound(g_szSoundFile);
1071 precache_sound(g_szSoundFileCO);
1072 precache_sound(g_szSoundFileSpray);
1073 precache_model("sprites/csgo_rank.spr");
1074 precache_model("models/csgo_graffit.mdl");
1075 cvar_EnablePModels = register_cvar("go_enablep", 4109820, MaxClients, MaxClients);
1076 cvar_EnableWModels = register_cvar("go_enablew", 4109872, MaxClients, MaxClients);
1077 if (file_exists(FactionFile, MaxClients))
1078 {
1079 new Path[128];
1080 new i = 1;
1081 while (file_size(FactionFile, 1, MaxClients, "GAME") > i)
1082 {
1083 if (!(i >= 100))
1084 {
1085 read_file(FactionFile, i, Line, 127, Len);
1086 parse(Line, Data[0][Data], 31, Data[1], 31, Data[2], 127, Data[3], 127, Data[4], 31);
1087 FactionTeam[i] = str_to_num(Data[0][Data]);
1088 FactionLVL[i] = str_to_num(Data[1]);
1089 copy(Factions[i], 99, Data[2]);
1090 copy(FactionPath[i], 99, Data[3]);
1091 FactionVIP[i] = str_to_num(Data[4]);
1092 formatex(Path, cvar_SqlUser, "models/player/%s/%s.mdl", FactionPath[i], FactionPath[i]);
1093 precache_model(Path);
1094 AllFactions += 1;
1095 i++;
1096 }
1097 }
1098 }
1099 if (file_exists(RankFile, MaxClients))
1100 {
1101 new i;
1102 while (file_size(RankFile, 1, MaxClients, "GAME") > i)
1103 {
1104 if (!(i >= 30))
1105 {
1106 read_file(RankFile, i, Line, 127, Len);
1107 parse(Line, Data[0][Data], 29, Data[1], 31);
1108 copy(Ranks[i], 29, Data[0][Data]);
1109 RankELO[i] = str_to_float(Data[1]);
1110 i++;
1111 }
1112 }
1113 }
1114 if (file_exists(SoundFile, MaxClients))
1115 {
1116 new i;
1117 while (file_size(SoundFile, 1, MaxClients, "GAME") > i)
1118 {
1119 if (!(i >= 50))
1120 {
1121 read_file(SoundFile, i, Line, 127, Len);
1122 parse(Line, Data[0][Data], 49, Data[1], 31, Data[2], 31);
1123 copy(MVPSounds[i], 49, Data[0][Data]);
1124 copy(MVPSoundPath[i], 49, Data[1]);
1125 MVPSoundVIP[i] = str_to_num(Data[2]);
1126 precache_sound(MVPSoundPath[i]);
1127 AllSounds += 1;
1128 i++;
1129 }
1130 }
1131 }
1132 if (file_exists(LevelFile, MaxClients))
1133 {
1134 new i;
1135 while (file_size(LevelFile, 1, MaxClients, "GAME") > i)
1136 {
1137 if (!(i >= 45))
1138 {
1139 read_file(LevelFile, i, Line, 127, Len);
1140 parse(Line, Data[0][Data], 44, Data[1], 31);
1141 copy(Levels[i], 44, Data[0][Data]);
1142 KillsForLvl[i] = str_to_num(Data[1]);
1143 i++;
1144 }
1145 }
1146 }
1147 if (file_exists(DefFile, MaxClients))
1148 {
1149 new i;
1150 while (file_size(DefFile, 1, MaxClients, "GAME") > i)
1151 {
1152 read_file(DefFile, i, Line, 127, Len);
1153 new var2;
1154 if (strlen(Line) < 5 || Line[0] == 59 || (Line[0] == 47 && Line[1] == 47))
1155 {
1156 }
1157 else
1158 {
1159 parse(Line, Data[0][Data], 31, Data[1], 128, Data[2], 128, Data[3], 128);
1160 if (ValidMdl(Data[1]))
1161 {
1162 precache_model(Data[1]);
1163 copy(DefaultSkin[str_to_num(Data[0][Data])], 47, Data[1]);
1164 new var3;
1165 if (file_exists(Data[2], MaxClients) && strlen(Data[2]) > 5)
1166 {
1167 precache_model(Data[2]);
1168 copy(DefaultSkinP[str_to_num(Data[0][Data])], 47, Data[2]);
1169 }
1170 new var4;
1171 if (file_exists(Data[3], MaxClients) && strlen(Data[3]) > 5)
1172 {
1173 precache_model(Data[3]);
1174 copy(DefaultSkinW[str_to_num(Data[0][Data])], 47, Data[3]);
1175 }
1176 }
1177 }
1178 i++;
1179 }
1180 }
1181 if (file_exists(SkinFile, MaxClients))
1182 {
1183 new penable = get_pcvar_num(cvar_EnablePModels);
1184 new wenable = get_pcvar_num(cvar_EnableWModels);
1185 new i;
1186 while (file_size(SkinFile, 1, MaxClients, "GAME") > i)
1187 {
1188 if (!(AllWeapon >= 300))
1189 {
1190 read_file(SkinFile, i, Line, 512, Len);
1191 new var6;
1192 if (strlen(Line) < 5 || Line[0] == 59 || (Line[0] == 47 && Line[1] == 47))
1193 {
1194 }
1195 else
1196 {
1197 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);
1198 Weapons[AllWeapon] = str_to_num(Data[0][Data]);
1199 copy(SkinNames[AllWeapon], 63, Data[1]);
1200 if (ValidMdl(Data[2]))
1201 {
1202 precache_model(Data[2]);
1203 copy(WeaponMdls[AllWeapon], cvar_SqlUser, Data[2]);
1204 new var7;
1205 if (file_exists(Data[3], MaxClients) && strlen(Data[3]) > 5 && penable > 0)
1206 {
1207 precache_model(Data[3]);
1208 copy(WeaponMdlsP[AllWeapon], cvar_SqlUser, Data[3]);
1209 }
1210 new var8;
1211 if (file_exists(Data[4], MaxClients) && strlen(Data[4]) > 5 && wenable)
1212 {
1213 precache_model(Data[4]);
1214 copy(WeaponMdlsW[AllWeapon], cvar_SqlUser, Data[4]);
1215 }
1216 }
1217 WeaponCase[AllWeapon] = str_to_num(Data[5]);
1218 WeaponDrop[AllWeapon] = str_to_num(Data[5]);
1219 Chance[AllWeapon] = str_to_num(Data[6]);
1220 cChance[str_to_num(Data[5])][str_to_num(Data[7])] = Chance[AllWeapon];
1221 chestsChance[str_to_num(Data[5])][str_to_num(Data[6])] += 1;
1222 chestChance[str_to_num(Data[5])][str_to_num(Data[6])] = str_to_num(Data[6]);
1223 chestSkins[str_to_num(Data[5])][str_to_num(Data[6])] += 1;
1224 chestsList[str_to_num(Data[5])][str_to_num(Data[6])][str_to_num(Data[7])] = AllWeapon;
1225 SkinRarity[AllWeapon] = str_to_num(Data[6]);
1226 skinID[AllWeapon] = AllWeapon;
1227 Price[AllWeapon] = str_to_num(Data[8]);
1228 SkinExists[str_to_num(Data[0][Data])] = 1;
1229 AllWeapon += 1;
1230 }
1231 i++;
1232 }
1233 }
1234 }
1235 return 0;
1236}
1237
1238public Check_license()
1239{
1240 new szIP[40];
1241 get_user_ip(MaxClients, szIP, 39, 1);
1242 if (!e6117f86f7fcfc7465552067c8491139())
1243 {
1244 set_fail_state("Server doesn't have license for this mod! To get license contact steam: http://steamcommunity.com/id/AlternateD2/");
1245 log_amx("Server doesn't have license for this mod! To get license contact steam: http://steamcommunity.com/id/AlternateD2/");
1246 }
1247 return 0;
1248}
1249
1250public plugin_init()
1251{
1252 register_plugin("CS:GO Legacy", "1.5", "Ark'xes");
1253 register_dictionary("csgo.txt");
1254 register_event("DeathMsg", "Event_DeathMsg", 4111140, 4111148);
1255 register_event("HLTV", "Event_NewRound", 4111232, "1=0", "2=0");
1256 register_logevent("logevent_round_start", 2, "1=Round_Start");
1257 register_event("SendAudio", "Event_RoundWon_T", 4111520, "2&%!MRAD_terwin");
1258 register_event("SendAudio", "Event_RoundWon_CT", 4111704, "2&%!MRAD_ctwin");
1259 register_forward(3, "SetModel", MaxClients);
1260 RegisterHam(MaxClients, "player", "fwHamPlayerSpawnPost", 1, MaxClients);
1261 register_impulse(201, "Graffiti");
1262 register_forward(28, "fw_emitsound", MaxClients);
1263 register_clcmd("say /stop", "OffSound", -1, 4112084, -1, MaxClients);
1264 register_clcmd("say /mp3", "OffSound", -1, 4112084, -1, MaxClients);
1265 register_clcmd("say /off", "OffSound", -1, 4112084, -1, MaxClients);
1266 register_clcmd("say /roundsound", "OffSound", -1, 4112084, -1, MaxClients);
1267 register_clcmd("say /menu", "MainMenu", -1, 4112084, -1, MaxClients);
1268 register_clcmd("say_team /menu", "MainMenu", -1, 4112084, -1, MaxClients);
1269 register_clcmd("say /debug", "Debug", -1, 4112084, -1, MaxClients);
1270 register_clcmd("radio1", "OpenMenu", -1, 4112084, -1, MaxClients);
1271 register_think("ThinkingEntity", "ham_think");
1272 register_clcmd("say /reg", "RegisterMenu", -1, 4112084, -1, MaxClients);
1273 register_clcmd("say /top15", "Top15", -1, 4112084, -1, MaxClients);
1274 register_clcmd("say_team /top15", "Top15", -1, 4112084, -1, MaxClients);
1275 register_clcmd("say /clan15", "Clan15", -1, 4112084, -1, MaxClients);
1276 register_clcmd("say_team /clan15", "Clan15", -1, 4112084, -1, MaxClients);
1277 register_clcmd("say /rank", "Rankz", -1, 4112084, -1, MaxClients);
1278 register_clcmd("say_team /rank", "Rankz", -1, 4112084, -1, MaxClients);
1279 register_clcmd("say /savepass", "SavePass", -1, 4112084, -1, MaxClients);
1280 register_clcmd("say_team /savepass", "SavePass", -1, 4112084, -1, MaxClients);
1281 register_clcmd("RollBet", "RRollBet", -1, 4112084, -1, MaxClients);
1282 register_clcmd("Quantity", "CKQuantity", -1, 4112084, -1, MaxClients);
1283 register_clcmd("Quantity", "CKQuantity", -1, 4112084, -1, MaxClients);
1284 register_clcmd("QuantityM", "MQuantity", -1, 4112084, -1, MaxClients);
1285 register_clcmd("QuantityG", "GQuantity", -1, 4112084, -1, MaxClients);
1286 register_clcmd("Cost", "MCost", -1, 4112084, -1, MaxClients);
1287 register_clcmd("EnterPassword", "EnterPass", -1, 4112084, -1, MaxClients);
1288 register_clcmd("EnterPW", "EnterLoginPass", -1, 4112084, -1, MaxClients);
1289 register_clcmd("ClanName", "EnterClanName", -1, 4112084, -1, MaxClients);
1290 register_clcmd("Bet", "EnterBet", -1, 4112084, -1, MaxClients);
1291 register_clcmd("DeathNote", "DeathNoteMSG", -1, 4112084, -1, MaxClients);
1292 register_clcmd("ChatTag", "EnterTag", -1, 4112084, -1, MaxClients);
1293 cvar_KeyForKills = register_cvar("go_keyforkill", 4114484, MaxClients, MaxClients);
1294 cvar_KillsRequired = register_cvar("go_killsforkey", "150", MaxClients, MaxClients);
1295 cvar_Advert = register_cvar("go_ad", 4114592, MaxClients, MaxClients);
1296 cvar_LHEnabled = register_cvar("go_lhenabled", 4114652, MaxClients, MaxClients);
1297 cvar_LHBonus = register_cvar("go_lhbonus", 4114704, MaxClients, MaxClients);
1298 cvar_LHStart = register_cvar("go_lhstart", "23", MaxClients, MaxClients);
1299 cvar_LHEnd = register_cvar("go_lhend", 4114804, MaxClients, MaxClients);
1300 cvar_RollMaxBet = register_cvar("go_rollmax", "1000000", MaxClients, MaxClients);
1301 cvar_RollCooldown = register_cvar("go_rollcd", "30", MaxClients, MaxClients);
1302 cvar_RestartCost = register_cvar("go_rankcost", "2000", MaxClients, MaxClients);
1303 cvar_RestartRank = register_cvar("go_rankrr", 4115048, MaxClients, MaxClients);
1304 cvar_RemoveGraffiti = register_cvar("go_removegraffiti", 4115128, MaxClients, MaxClients);
1305 cvar_RewardMax = register_cvar("go_rewardmax", "2000", MaxClients, MaxClients);
1306 cvar_RewardMin = register_cvar("go_rewardmin", "200", MaxClients, MaxClients);
1307 cvar_InkPrice = register_cvar("go_inkprice", "1500", MaxClients, MaxClients);
1308 cvar_MvpPlayers = register_cvar("go_mvpplayers", 4115400, MaxClients, MaxClients);
1309 cvar_GraffitiCD = register_cvar("go_graffiticd", "30.0", MaxClients, MaxClients);
1310 cvar_EnableRankSprites = register_cvar("go_ranksprites", 4115544, MaxClients, MaxClients);
1311 cvar_RankSpriteMode = register_cvar("go_spritemode", 4115608, MaxClients, MaxClients);
1312 cvar_LvlSkin = register_cvar("go_lvlskin", 4115660, MaxClients, MaxClients);
1313 cvar_MaxLvlCases = register_cvar("go_maxlvlcases", "10", MaxClients, MaxClients);
1314 cvar_MaxLvlKeys = register_cvar("go_maxlvlkeys", 4115796, MaxClients, MaxClients);
1315 cvar_MaxLvlPoints = register_cvar("go_maxlvlpoints", "1000", MaxClients, MaxClients);
1316 cvar_LvlBonus = register_cvar("go_lvlbonus", 4115936, MaxClients, MaxClients);
1317 cvar_ClanCost = register_cvar("go_clancost", "10000", MaxClients, MaxClients);
1318 cvar_MinMVPPlayers = register_cvar("go_minmvp", 4116056, MaxClients, MaxClients);
1319 cvar_dropchance = register_cvar("go_dropchance", 4116120, MaxClients, MaxClients);
1320 cvar_vipdropchance = register_cvar("go_vipdropchance", 4116196, MaxClients, MaxClients);
1321 cvar_admindropchance = register_cvar("go_admindropchance", 4116280, MaxClients, MaxClients);
1322 cvar_DNPrice = register_cvar("go_dnprice", "1000", MaxClients, MaxClients);
1323 cvar_TopUrl = register_cvar("go_topurl", "http://firefly.lt/ranks", MaxClients, MaxClients);
1324 cvar_ClanUrl = register_cvar("go_clanurl", "http://firefly.lt/ranks/clan.php", MaxClients, MaxClients);
1325 cvar_ShowTips = register_cvar("go_showtips", 4116712, MaxClients, MaxClients);
1326 cvar_ChatRank = register_cvar("go_chatrank", 4116768, MaxClients, MaxClients);
1327 cvar_VipChatColor = register_cvar("go_vipchatcolor", 4116840, MaxClients, MaxClients);
1328 cvar_CasePrice = register_cvar("go_caseprice", "1500", MaxClients, MaxClients);
1329 cvar_KeyPrice = register_cvar("go_keyprice", "4500", MaxClients, MaxClients);
1330 cvar_ReviewTime = register_cvar("go_reviewtime", 4117044, MaxClients, MaxClients);
1331 cvar_ShowPass = register_cvar("go_showpass", 4117100, MaxClients, MaxClients);
1332 cvar_CalibrationKills = register_cvar("go_calibrationkills", "100", MaxClients, MaxClients);
1333 cvar_DustKnife = register_cvar("go_dusturare", "20", MaxClients, MaxClients);
1334 cvar_DustERare = register_cvar("go_dusterare", "10", MaxClients, MaxClients);
1335 cvar_DustRare = register_cvar("go_dustrare", 4117380, MaxClients, MaxClients);
1336 cvar_DustUncommon = register_cvar("go_dustuncommon", 4117452, MaxClients, MaxClients);
1337 cvar_DustCommon = register_cvar("go_dustcommon", 4117516, MaxClients, MaxClients);
1338 cvar_MinDusts = register_cvar("go_mindusts", "100", MaxClients, MaxClients);
1339 cvar_vipFlag = register_cvar("go_vipflag", 4117632, MaxClients, MaxClients);
1340 cvar_MvpRewardVIP = register_cvar("go_mvprewardvip", 4117704, MaxClients, MaxClients);
1341 cvar_MvpPointsAmount = register_cvar("go_mvppoints", "10", MaxClients, MaxClients);
1342 cvar_vipenablebonus = register_cvar("go_vipbonus", 4117824, MaxClients, MaxClients);
1343 cvar_vipplantbonus = register_cvar("go_vipplantbonus", 4117900, MaxClients, MaxClients);
1344 cvar_viphsbonus = register_cvar("go_viphsbonus", 4117964, MaxClients, MaxClients);
1345 cvar_vipkillbonus = register_cvar("go_vipkillbonus", 4118036, MaxClients, MaxClients);
1346 cvar_vipdefusebonus = register_cvar("go_vipdefusebonus", 4118116, MaxClients, MaxClients);
1347 cvar_adminFlag = register_cvar("go_adminflag", 4118176, MaxClients, MaxClients);
1348 cvar_adminenablebonus = register_cvar("go_adminbonus", 4118240, MaxClients, MaxClients);
1349 cvar_adminplantbonus = register_cvar("go_adminplantbonus", 4118324, MaxClients, MaxClients);
1350 cvar_adminkillbonus = register_cvar("go_adminkillbonus", 4118404, MaxClients, MaxClients);
1351 cvar_adminhsbonus = register_cvar("go_adminhsbonus", 4118476, MaxClients, MaxClients);
1352 cvar_admindefusebonus = register_cvar("go_adminplantbonus", 4118560, MaxClients, MaxClients);
1353 cvar_plantpts = register_cvar("go_plantpts", 4118616, MaxClients, MaxClients);
1354 cvar_killpts = register_cvar("go_killpts", 4118668, MaxClients, MaxClients);
1355 cvar_hspts = register_cvar("go_hspts", 4118712, MaxClients, MaxClients);
1356 cvar_defusepts = register_cvar("go_defusepts", 4118772, MaxClients, MaxClients);
1357 p_allchat = register_cvar("sv_allchat", 4118824, MaxClients, MaxClients);
1358 p_hidestat = register_cvar("ac_hidestatus", 4118888, MaxClients, MaxClients);
1359 p_teamchat = register_cvar("ac_teamchat", 4118944, MaxClients, MaxClients);
1360 p_alltalk = get_cvar_pointer("sv_alltalk");
1361 cvar_SqlHost = register_cvar("go_host", 4119028, MaxClients, MaxClients);
1362 cvar_SqlUser = register_cvar("go_user", 4119064, MaxClients, MaxClients);
1363 cvar_SqlPass = register_cvar("go_pass", 4119100, MaxClients, MaxClients);
1364 cvar_SqlDb = register_cvar("go_db", 4119128, MaxClients, MaxClients);
1365 register_message(get_user_msgid("SayText"), "col_changer");
1366 register_forward(122, "NameChange", MaxClients);
1367 set_task(1065353216, "MySql_Init", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
1368 new i;
1369 while (i < 31)
1370 {
1371 if (3 < strlen(eWeapon[i]))
1372 {
1373 RegisterHam(66, eWeapon[i], "WeaponSwitch", 1, MaxClients);
1374 }
1375 i++;
1376 }
1377 return 0;
1378}
1379
1380public OffSound(id)
1381{
1382 MVPEnabled[id] = 0;
1383 client_cmd(id, "stopsound");
1384 client_cmd(id, "mp3 stop");
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, 4119664, MaxClients, -1);
1395 formatex(szText, 256, "%L\n\r-------------------", id, "ROLL_NUMBERS", rOptions[rSelection[id]]);
1396 menu_additem(menu, szText, 4119820, MaxClients, -1);
1397 formatex(szText, 256, "%L", id, "ROLL");
1398 menu_additem(menu, szText, 4119856, 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 client_cmd(id, "spk %s", g_szSoundFileSpray);
1732 graffitiCooldown[id] = 1;
1733 set_task(cooldown, "RemoveCooldown", id, 4109032, MaxClients, 4109036, MaxClients);
1734 vector_to_angle(fNormalVector, fTextVector);
1735 entity_set_vector(ent, 6, fTextVector);
1736 entity_set_model(ent, "models/csgo_graffit.mdl");
1737 entity_set_size(ent, mins, maxs);
1738 entity_set_origin(ent, fAimOrigin);
1739 set_pev(ent, 133, 4122940);
1740 entity_set_int(ent, 14, MaxClients);
1741 entity_set_edict(ent, NULL_STRING, id);
1742 entity_set_string(ent, MaxClients, "GraffitiEntity");
1743 entity_set_int(ent, 15, MaxClients);
1744 set_pev(ent, 71, SelectedGraffiti[id] - 1);
1745 }
1746 client_print(id, NULL_STRING, "%L", id, "NO_GRAFFITI");
1747 }
1748 return 0;
1749}
1750
1751public RemoveCooldown(id)
1752{
1753 graffitiCooldown[id] = 0;
1754 return 0;
1755}
1756
1757public Inspect(id)
1758{
1759 if (!is_user_alive(id))
1760 {
1761 return 1;
1762 }
1763 new wid = get_user_weapon(id, 0, 0);
1764 new var1;
1765 if (wid == 29 && g_bUsingGuns[id][wid])
1766 {
1767 if (containi(SkinNames[g_bUsingGuns[id][wid]], "BUTTERFLY") != -1)
1768 {
1769 PlayAnimation(id, random_num(NULL_VECTOR, 10));
1770 }
1771 PlayAnimation(id, 8);
1772 }
1773 return 1;
1774}
1775
1776PlayAnimation(Player, Sequence)
1777{
1778 set_pev(Player, 90, Sequence);
1779 message_begin(NULL_VECTOR, 35, 4123124, Player);
1780 write_byte(Sequence);
1781 write_byte(pev(Player, 72));
1782 message_end();
1783 return 0;
1784}
1785
1786public OpenMenu(id)
1787{
1788 if (!isRegistered[id])
1789 {
1790 RegisterMenu(id);
1791 }
1792 else
1793 {
1794 if (!isLogged[id])
1795 {
1796 LoginMenu(id);
1797 }
1798 MainMenu(id);
1799 }
1800 return 1;
1801}
1802
1803public DeathNoteMSG(id)
1804{
1805 new szText[128];
1806 new szName[32];
1807 user_name_sql(szName, 32, id);
1808 read_args(szText, 127);
1809 remove_quotes(szText);
1810 replace_all(szText, 128, "!name", szName);
1811 DeathNoteMenu(id);
1812 UpdateStats(id);
1813 return 1;
1814}
1815
1816public EnterTag(id)
1817{
1818 new szText[64];
1819 read_args(szText, 63);
1820 remove_quotes(szText);
1821 replace_all(szText, 64, 4123160, 4123168);
1822 new var1;
1823 if (strlen(szText) > 2 && ChatInk[id] > 0)
1824 {
1825 ChatInk[id]--;
1826 TagMenu(id);
1827 UpdateMisc(id);
1828 }
1829 return 1;
1830}
1831
1832public EnterBet(id)
1833{
1834 new szText[32];
1835 new data;
1836 read_args(szText, 31);
1837 remove_quotes(szText);
1838 data = str_to_num(szText);
1839 new var1;
1840 if (data > 0 && data <= Points[id])
1841 {
1842 flipBet[id] = data;
1843 }
1844 else
1845 {
1846 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1847 }
1848 Flip(id);
1849 return 1;
1850}
1851
1852public RRollBet(id)
1853{
1854 new szText[32];
1855 new data;
1856 read_args(szText, 31);
1857 remove_quotes(szText);
1858 data = str_to_num(szText);
1859 new var1;
1860 if (data > 0 && data <= Points[id] && data <= get_pcvar_num(cvar_RollMaxBet))
1861 {
1862 rInput[id] = data;
1863 }
1864 else
1865 {
1866 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1867 }
1868 RollMenu(id);
1869 return 1;
1870}
1871
1872public CKQuantity(id)
1873{
1874 new szText[32];
1875 new data;
1876 read_args(szText, 31);
1877 remove_quotes(szText);
1878 data = str_to_num(szText);
1879 new var1;
1880 if (data > 0 && data < 1000)
1881 {
1882 ck_quantity[id] = data;
1883 }
1884 else
1885 {
1886 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1887 }
1888 ShopMenu(id);
1889 return 1;
1890}
1891
1892public MQuantity(id)
1893{
1894 new szText[32];
1895 new data;
1896 read_args(szText, 31);
1897 remove_quotes(szText);
1898 data = str_to_num(szText);
1899 new var1;
1900 if (data > 0 && data < 1000)
1901 {
1902 ckm_quantity[id] = data;
1903 }
1904 else
1905 {
1906 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1907 }
1908 MarketMenu(id);
1909 return 1;
1910}
1911
1912public GQuantity(id)
1913{
1914 new szText[32];
1915 new data;
1916 read_args(szText, 31);
1917 remove_quotes(szText);
1918 data = str_to_num(szText);
1919 new var1;
1920 if (data > 0 && data < 1000000)
1921 {
1922 gift_quantity[id] = data;
1923 }
1924 else
1925 {
1926 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1927 }
1928 GiftMenu(id);
1929 return 1;
1930}
1931
1932public EnterClanName(id)
1933{
1934 new szText[32];
1935 read_args(szText, 31);
1936 remove_quotes(szText);
1937 if (1 < strlen(szText))
1938 {
1939 CheckClanName(id);
1940 }
1941 else
1942 {
1943 client_print(id, NULL_STRING, "%L", id, "CLAN_MIN2");
1944 }
1945 ClanMenu(id);
1946 return 1;
1947}
1948
1949public MCost(id)
1950{
1951 new szText[32];
1952 new data;
1953 read_args(szText, 31);
1954 remove_quotes(szText);
1955 data = str_to_num(szText);
1956 if (0 < data)
1957 {
1958 market_cost[id] = data;
1959 }
1960 else
1961 {
1962 client_print(id, NULL_STRING, "%L", id, "VALUE_ZERO");
1963 }
1964 MarketMenu(id);
1965 return 1;
1966}
1967
1968public EnterPass(id)
1969{
1970 new szText[32];
1971 read_args(szText, 31);
1972 remove_quotes(szText);
1973 if (3 > strlen(Password[id]))
1974 {
1975 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_SHORT");
1976 RegisterMenu(id);
1977 }
1978 else
1979 {
1980 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_SUCCESS");
1981 RegisterMenu(id);
1982 }
1983 return 1;
1984}
1985
1986public EnterLoginPass(id)
1987{
1988 new szText[32];
1989 read_args(szText, 31);
1990 remove_quotes(szText);
1991 if (equal(Password[id], sqlPassword[id], MaxClients))
1992 {
1993 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_GOOD");
1994 LoginMenu(id);
1995 }
1996 else
1997 {
1998 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASSWORD_BAD");
1999 LoginMenu(id);
2000 }
2001 return 1;
2002}
2003
2004public WeaponSwitch(Weapon)
2005{
2006 new id = get_pdata_cbase(Weapon, 41, NULL_STRING, 5);
2007 new wid = cs_get_weapon_id(Weapon);
2008 new penable = get_pcvar_num(cvar_EnablePModels);
2009 new var1;
2010 if (id > 32 || id < 1)
2011 {
2012 return 4;
2013 }
2014 if (!is_user_connected(id))
2015 {
2016 return 4;
2017 }
2018 if (pev(Weapon, 82))
2019 {
2020 set_pev(id, 144, WeaponMdls[pev(Weapon, 82)]);
2021 new var2;
2022 if (strlen(WeaponMdlsP[pev(Weapon, 82)]) > 5 && penable)
2023 {
2024 set_pev(id, 71, Price[pev(Weapon, 82)]);
2025 set_pev(id, 143, WeaponMdlsP[pev(Weapon, 82)]);
2026 }
2027 }
2028 else
2029 {
2030 if (g_bUsingGuns[id][wid])
2031 {
2032 set_pev(id, 144, WeaponMdls[g_bUsingGuns[id][wid]]);
2033 new var3;
2034 if (strlen(WeaponMdlsP[g_bUsingGuns[id][wid]]) > 5 && penable)
2035 {
2036 set_pev(id, 71, Price[g_bUsingGuns[id][wid]]);
2037 set_pev(id, 143, WeaponMdlsP[g_bUsingGuns[id][wid]]);
2038 }
2039 }
2040 if (5 < strlen(DefaultSkin[wid]))
2041 {
2042 new var4;
2043 if (cs_get_user_team(id, 0) == 2 && wid == 29)
2044 {
2045 wid = 31;
2046 }
2047 set_pev(id, 144, DefaultSkin[wid]);
2048 if (5 < strlen(DefaultSkinP[wid]))
2049 {
2050 set_pev(id, 143, DefaultSkinP[wid]);
2051 }
2052 }
2053 }
2054 return 1;
2055}
2056
2057public client_putinserver(id)
2058{
2059 rInput[id] = 0;
2060 rCooldown[id] = 0;
2061 rCounter[id] = 0;
2062 rSelection[id] = 0;
2063 HudEnabled[id] = 1;
2064 MVPEnabled[id] = 1;
2065 MVPSound[id] = 0;
2066 isRegistered[id] = 0;
2067 isLogged[id] = 0;
2068 isOnline[id] = 0;
2069 Points[id] = 0;
2070 Kills[id] = 0;
2071 Level[id] = 0;
2072 Mvp[id] = 0;
2073 SelectedType[id] = 0;
2074 SelectedItem[id] = 0;
2075 SelectedTypeMarket[id] = 0;
2076 SelectedItemMarket[id] = 0;
2077 ck_quantity[id] = 0;
2078 ckm_quantity[id] = 0;
2079 market_cost[id] = 0;
2080 itemtype[id] = 0;
2081 marketskinid[id] = 0;
2082 marketwepid[id] = 0;
2083 iDay[id] = 0;
2084 Rewarded[id] = 0;
2085 ChatInk[id] = 0;
2086 clan_count[id] = 0;
2087 ID[id] = 0;
2088 new i;
2089 while (i < 5)
2090 {
2091 i++;
2092 }
2093 clan_inclan[id] = 0;
2094 clan_playerpos[id] = 0;
2095 new i;
2096 while (i < AllWeapon)
2097 {
2098 UserSkins[i][id] = 0;
2099 i++;
2100 }
2101 new i;
2102 while (i < 32)
2103 {
2104 g_bUsingGuns[id][i] = 0;
2105 i++;
2106 }
2107 new i;
2108 while (i <= 8)
2109 {
2110 Cases[id][i] = 0;
2111 i++;
2112 }
2113 new i;
2114 while (i <= 8)
2115 {
2116 Keys[id][i] = 0;
2117 i++;
2118 }
2119 new i;
2120 while (i < 64)
2121 {
2122 UserGraffiti[i][id] = 0;
2123 i++;
2124 }
2125 GraffitiBox[id] = 0;
2126 SelectedGraffiti[id] = 0;
2127 receiver_id[id] = 0;
2128 skingift_id[id] = 0;
2129 ckgift_item[id] = 0;
2130 ckgift_type[id] = 0;
2131 giftitemtype[id] = 0;
2132 skingiftwep_id[id] = 0;
2133 gift_quantity[id] = 0;
2134 tradetarget[id] = 0;
2135 tradeskin[id] = 0;
2136 tradeskin_wepid[id] = 0;
2137 tradeskinget[id] = 0;
2138 tradeskinget_wepid[id] = 0;
2139 intrade[id] = 0;
2140 tradesender[id] = 0;
2141 FactionT[id] = 0;
2142 FactionCT[id] = 0;
2143 sql_IsRegister(id);
2144 return 0;
2145}
2146
2147public client_disconnected(id)
2148{
2149 if (isLogged[id])
2150 {
2151 user_name(id);
2152
2153/* ERROR! Can't print expression: Heap */
2154 function "client_disconnected" (number 44)
2155public Call_Back(id, menu, item)
2156{
2157 return 2;
2158}
2159
2160public MainMenu(id)
2161{
2162 new var1;
2163 if (equal(cfgPassword[id], sqlPassword[id], MaxClients) && strlen(cfgPassword[id]) > 2)
2164 {
2165 isLogged[id] = 1;
2166 UpdatePlayer(id);
2167 }
2168 else
2169 {
2170 if (!isRegistered[id])
2171 {
2172 RegisterMenu(id);
2173 return 1;
2174 }
2175 if (!isLogged[id])
2176 {
2177 LoginMenu(id);
2178 return 1;
2179 }
2180 }
2181 new szText[256];
2182 new szKText[256];
2183 new call = menu_makecallback("Call_Back");
2184 formatex(szKText, 256, "\n%L", id, "KILL_COUNTER", Kills[id] % get_pcvar_num(cvar_KillsRequired), get_pcvar_num(cvar_KillsRequired));
2185 new var2;
2186 if (get_pcvar_num(cvar_KeyForKills))
2187 {
2188 var2 = szKText;
2189 }
2190 else
2191 {
2192 var2 = 4124608;
2193 }
2194 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);
2195 new menu = menu_create(szText, "menu_handler", MaxClients);
2196 formatex(szText, 256, "%L", id, "MENU_INVENTORY");
2197 menu_additem(menu, szText, 4124736, MaxClients, -1);
2198 formatex(szText, 256, "%L\n\r-------------------", id, "MENU_PREVIEW");
2199 menu_additem(menu, szText, 4124892, MaxClients, -1);
2200 formatex(szText, 256, "%L", id, "MENU_SHOP");
2201 menu_additem(menu, szText, 4124948, MaxClients, -1);
2202 formatex(szText, 256, "%L", id, "MENU_MARKET");
2203 menu_additem(menu, szText, 4125012, MaxClients, -1);
2204 formatex(szText, 256, "%L", id, "MENU_GIFTS");
2205 menu_additem(menu, szText, 4125072, MaxClients, -1);
2206 formatex(szText, 256, "%L\n\r------------------", id, "MENU_TRADEOFFER");
2207 menu_additem(menu, szText, 4125236, MaxClients, -1);
2208 formatex(szText, 256, "%L", id, "MENU_CLAN");
2209 menu_additem(menu, szText, 4125292, MaxClients, -1);
2210 formatex(szText, 256, "%L", id, "MENU_CRAFTING");
2211 menu_additem(menu, szText, 4125364, MaxClients, -1);
2212 formatex(szText, 256, "%L", id, "MENU_JACKPOT");
2213 menu_additem(menu, szText, 4125432, MaxClients, -1);
2214 formatex(szText, 256, "%L", id, "MENU_COINFLIP");
2215 menu_additem(menu, szText, 4125504, MaxClients, -1);
2216 formatex(szText, 256, "%L\n\r------------------", id, "MENU_ROULETTE");
2217 menu_additem(menu, szText, 4125660, MaxClients, -1);
2218 formatex(szText, 256, "%L", id, "MENU_DEATHNOTE");
2219 menu_additem(menu, szText, 4125736, MaxClients, -1);
2220 formatex(szText, 256, "%L", id, "MENU_TAG1");
2221 menu_additem(menu, szText, 4125792, MaxClients, -1);
2222 formatex(szText, 256, "%L", id, "MENU_REWARD");
2223 new var3;
2224 if (Rewarded[id])
2225 {
2226 var3 = call;
2227 }
2228 else
2229 {
2230 var3 = 0;
2231 }
2232 menu_additem(menu, szText, 4125856, var3, -1);
2233 formatex(szText, 256, "%L", id, "MENU_FACTIONS");
2234 menu_additem(menu, szText, 4125928, MaxClients, -1);
2235 formatex(szText, 256, "%L", id, "MENU_SETTINGS");
2236 menu_additem(menu, szText, 4126000, MaxClients, -1);
2237 menu_setprop(menu, 6, 1);
2238 menu_display(id, menu, MaxClients, -1);
2239 return 1;
2240}
2241
2242public menu_handler(id, menu, item)
2243{
2244 if (item == -3)
2245 {
2246 menu_destroy(menu);
2247 return 1;
2248 }
2249 switch (item)
2250 {
2251 case 0:
2252 {
2253 InventoryMenu(id);
2254 }
2255 case 1:
2256 {
2257 PreviewMenu(id);
2258 }
2259 case 2:
2260 {
2261 ShopMenu(id);
2262 }
2263 case 3:
2264 {
2265 MarketMenu(id);
2266 }
2267 case 4:
2268 {
2269 GiftMenu(id);
2270 }
2271 case 5:
2272 {
2273 TradeMenu(id);
2274 }
2275 case 6:
2276 {
2277 ClanMenu(id);
2278 }
2279 case 7:
2280 {
2281 CraftingMenu(id);
2282 }
2283 case 8:
2284 {
2285 MainMenu(id);
2286 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "JACKPOT_TOJOIN");
2287 }
2288 case 9:
2289 {
2290 Flip(id);
2291 }
2292 case 10:
2293 {
2294 RollMenu(id);
2295 }
2296 case 11:
2297 {
2298 DeathNoteMenu(id);
2299 }
2300 case 12:
2301 {
2302 TagMenu(id);
2303 }
2304 case 13:
2305 {
2306 if (g_iDay != iDay[id])
2307 {
2308 new pmin;
2309 new pmax;
2310 pmin = get_pcvar_num(cvar_RewardMin);
2311 pmax = get_pcvar_num(cvar_RewardMax);
2312 new pts = random_num(pmin, pmax);
2313 new var1 = Points[id];
2314 var1 = var1[pts];
2315 UpdateStats(id);
2316 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "DAILY_REWARD", pts);
2317 iDay[id] = g_iDay;
2318 UpdateMisc(id);
2319 }
2320 else
2321 {
2322 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REWARD_TAKEN");
2323 }
2324 }
2325 case 14:
2326 {
2327 MenuFactions(id);
2328 }
2329 case 15:
2330 {
2331 SettingsMenu(id);
2332 }
2333 default:
2334 {
2335 }
2336 }
2337 menu_destroy(menu);
2338 return 1;
2339}
2340
2341public TagMenu(id)
2342{
2343 new szText[128];
2344 new InkPrice = get_pcvar_num(cvar_InkPrice);
2345 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_TAG", ChatInk[id]);
2346 new menu = menu_create(szText, "tag_handler", MaxClients);
2347 new var1;
2348 if (strlen(ChatTag[id]) > 2)
2349 {
2350 var1 = ChatTag[id];
2351 }
2352 else
2353 {
2354 var1 = 4126584;
2355 }
2356 formatex(szText, cvar_SqlUser, "%L", id, "TYPE_TAG", var1);
2357 menu_additem(menu, szText, 4126600, MaxClients, -1);
2358 formatex(szText, cvar_SqlUser, "%L", id, "BUY_INK", InkPrice);
2359 menu_additem(menu, szText, 4126648, MaxClients, -1);
2360 menu_setprop(menu, 6, 1);
2361 menu_display(id, menu, MaxClients, -1);
2362 return 0;
2363}
2364
2365public tag_handler(id, menu, item)
2366{
2367 if (item == -3)
2368 {
2369 MainMenu(id);
2370 menu_destroy(menu);
2371 return 1;
2372 }
2373 switch (item)
2374 {
2375 case 0:
2376 {
2377 if (0 >= ChatInk[id])
2378 {
2379 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "TAG_NOINK");
2380 }
2381 else
2382 {
2383 client_cmd(id, "messagemode ChatTag");
2384 }
2385 }
2386 case 1:
2387 {
2388 new InkPrice = get_pcvar_num(cvar_InkPrice);
2389 if (InkPrice >= Points[id])
2390 {
2391 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", InkPrice - Points[id]);
2392 }
2393 else
2394 {
2395 Points[id] -= InkPrice;
2396 ChatInk[id]++;
2397 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "INK_BOUGHT");
2398 }
2399 }
2400 default:
2401 {
2402 }
2403 }
2404 TagMenu(id);
2405 return 1;
2406}
2407
2408public MenuFactions(id)
2409{
2410 new szText[128];
2411 new var1;
2412 if (get_pcvar_num(cvar_ShowTips))
2413 {
2414 var1 = 4127236;
2415 }
2416 else
2417 {
2418 var1 = 4127288;
2419 }
2420 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_FACTIONS", id, var1);
2421 new menu = menu_create(szText, "factions_handler", MaxClients);
2422 new i = 1;
2423 while (i <= AllFactions)
2424 {
2425 if (FactionVIP[i])
2426 {
2427 new var2;
2428 if (i != FactionT[id] && i != FactionCT[id])
2429 {
2430 var3 = 4127652;
2431 }
2432 else
2433 {
2434 var3 = 4127700;
2435 }
2436 new var4;
2437 if (FactionTeam[i] == 1)
2438 {
2439 var4 = 4127588;
2440 }
2441 else
2442 {
2443 var4 = 4127596;
2444 }
2445 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);
2446 menu_additem(menu, szText, 4127724, MaxClients, -1);
2447 }
2448 else
2449 {
2450 new var5;
2451 if (i != FactionT[id] && i != FactionCT[id])
2452 {
2453 var6 = 4127944;
2454 }
2455 else
2456 {
2457 var6 = 4127992;
2458 }
2459 new var7;
2460 if (FactionTeam[i] == 1)
2461 {
2462 var7 = 4127880;
2463 }
2464 else
2465 {
2466 var7 = 4127888;
2467 }
2468 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);
2469 menu_additem(menu, szText, 4128016, MaxClients, -1);
2470 }
2471 i++;
2472 }
2473 menu_setprop(menu, 6, 1);
2474 menu_display(id, menu, MaxClients, -1);
2475 return 0;
2476}
2477
2478public factions_handler(id, menu, item)
2479{
2480 if (item == -3)
2481 {
2482 MainMenu(id);
2483 menu_destroy(menu);
2484 return 1;
2485 }
2486 if (FactionLVL[item + 1] <= Level[id])
2487 {
2488 if (FactionVIP[item + 1])
2489 {
2490 new vipFlag[32];
2491 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
2492 if (has_all_flags(id, vipFlag))
2493 {
2494 new var1;
2495 if (FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients) && is_user_alive(id))
2496 {
2497 cs_set_player_model(id, FactionPath[item + 1]);
2498 }
2499 if (item + 1 == FactionCT[id])
2500 {
2501 new var2;
2502 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2503 {
2504 FactionCT[id] = 0;
2505 }
2506 else
2507 {
2508 FactionCT[id] = 0;
2509 }
2510 new var3;
2511 if (FactionTeam[item + 1] == 1)
2512 {
2513 var3 = 4128160;
2514 }
2515 else
2516 {
2517 var3 = 4128220;
2518 }
2519 new var4;
2520 if (FactionTeam[item + 1] == 1)
2521 {
2522 var4 = -2;
2523 }
2524 else
2525 {
2526 var4 = -3;
2527 }
2528 client_print_color(id, var4, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var3);
2529 cs_reset_player_model(id);
2530 }
2531 else
2532 {
2533 if (item + 1 == FactionT[id])
2534 {
2535 new var5;
2536 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2537 {
2538 FactionT[id] = 0;
2539 }
2540 else
2541 {
2542 FactionT[id] = 0;
2543 }
2544 new var6;
2545 if (FactionTeam[item + 1] == 1)
2546 {
2547 var6 = 4128388;
2548 }
2549 else
2550 {
2551 var6 = 4128448;
2552 }
2553 new var7;
2554 if (FactionTeam[item + 1] == 1)
2555 {
2556 var7 = -2;
2557 }
2558 else
2559 {
2560 var7 = -3;
2561 }
2562 client_print_color(id, var7, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var6);
2563 cs_reset_player_model(id);
2564 }
2565 switch (FactionTeam[item + 1])
2566 {
2567 case 1:
2568 {
2569 FactionT[id] = item + 1;
2570 }
2571 case 2:
2572 {
2573 FactionCT[id] = item + 1;
2574 }
2575 default:
2576 {
2577 }
2578 }
2579 new var8;
2580 if (FactionTeam[item + 1] == 1)
2581 {
2582 var8 = 4128616;
2583 }
2584 else
2585 {
2586 var8 = 4128676;
2587 }
2588 new var9;
2589 if (FactionTeam[item + 1] == 1)
2590 {
2591 var9 = -2;
2592 }
2593 else
2594 {
2595 var9 = -3;
2596 }
2597 client_print_color(id, var9, "%L %L", id, "PREFIX_CHAT", id, "FACTION_CHANGED", id, var8, Factions[item + 1]);
2598 }
2599 }
2600 else
2601 {
2602 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "FACTION_NOACCESS");
2603 }
2604 }
2605 else
2606 {
2607 new var10;
2608 if (FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients) && is_user_alive(id))
2609 {
2610 cs_set_player_model(id, FactionPath[item + 1]);
2611 }
2612 if (item + 1 == FactionCT[id])
2613 {
2614 new var11;
2615 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2616 {
2617 FactionCT[id] = 0;
2618 }
2619 else
2620 {
2621 FactionCT[id] = 0;
2622 }
2623 new var12;
2624 if (FactionTeam[item + 1] == 1)
2625 {
2626 var12 = 4128984;
2627 }
2628 else
2629 {
2630 var12 = 4129044;
2631 }
2632 new var13;
2633 if (FactionTeam[item + 1] == 1)
2634 {
2635 var13 = -2;
2636 }
2637 else
2638 {
2639 var13 = -3;
2640 }
2641 client_print_color(id, var13, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var12);
2642 cs_reset_player_model(id);
2643 }
2644 if (item + 1 == FactionT[id])
2645 {
2646 new var14;
2647 if (is_user_alive(id) && FactionTeam[item + 1] == get_user_team(id, {0}, MaxClients))
2648 {
2649 FactionT[id] = 0;
2650 }
2651 else
2652 {
2653 FactionT[id] = 0;
2654 }
2655 new var15;
2656 if (FactionTeam[item + 1] == 1)
2657 {
2658 var15 = 4129212;
2659 }
2660 else
2661 {
2662 var15 = 4129272;
2663 }
2664 new var16;
2665 if (FactionTeam[item + 1] == 1)
2666 {
2667 var16 = -2;
2668 }
2669 else
2670 {
2671 var16 = -3;
2672 }
2673 client_print_color(id, var16, "%L %L", id, "PREFIX_CHAT", id, "FACTION_REMOVED", id, var15);
2674 cs_reset_player_model(id);
2675 }
2676 switch (FactionTeam[item + 1])
2677 {
2678 case 1:
2679 {
2680 FactionT[id] = item + 1;
2681 }
2682 case 2:
2683 {
2684 FactionCT[id] = item + 1;
2685 }
2686 default:
2687 {
2688 }
2689 }
2690 new var17;
2691 if (FactionTeam[item + 1] == 1)
2692 {
2693 var17 = 4129440;
2694 }
2695 else
2696 {
2697 var17 = 4129500;
2698 }
2699 new var18;
2700 if (FactionTeam[item + 1] == 1)
2701 {
2702 var18 = -2;
2703 }
2704 else
2705 {
2706 var18 = -3;
2707 }
2708 client_print_color(id, var18, "%L %L", id, "PREFIX_CHAT", id, "FACTION_CHANGED", id, var17, Factions[item + 1]);
2709 }
2710 UpdateSettings(id);
2711 }
2712 else
2713 {
2714 new var19;
2715 if (FactionTeam[item + 1] == 1)
2716 {
2717 var19 = 4129660;
2718 }
2719 else
2720 {
2721 var19 = 4129720;
2722 }
2723 new var20;
2724 if (FactionTeam[item + 1] == 1)
2725 {
2726 var20 = -2;
2727 }
2728 else
2729 {
2730 var20 = -3;
2731 }
2732 client_print_color(id, var20, "%L %L", id, "PREFIX_CHAT", id, "FACTION_NOLVL", FactionLVL[item + 1], Factions[item + 1], id, var19);
2733 }
2734 MenuFactions(id);
2735 return 1;
2736}
2737
2738public fwHamPlayerSpawnPost(id)
2739{
2740 if (is_user_alive(id))
2741 {
2742 set_task(1036831949, "spawnStuff", id, 4109032, MaxClients, 4109036, MaxClients);
2743 }
2744 return 0;
2745}
2746
2747public spawnStuff(id)
2748{
2749 if (!isLogged[id])
2750 {
2751 Reminder(id);
2752 }
2753 new spritesEnabled = get_pcvar_num(cvar_EnableRankSprites);
2754 new var1;
2755 if (spritesEnabled && !RoundStarted)
2756 {
2757 removeEntity(id);
2758 createEntity(id);
2759 }
2760 if (isLogged[id])
2761 {
2762 if (get_user_team(id, {0}, MaxClients) == 1)
2763 {
2764 if (FactionT[id])
2765 {
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_set_player_model(id, FactionPath[FactionCT[id]]);
2774 }
2775 }
2776 }
2777 return 0;
2778}
2779
2780public TradePlayer(id)
2781{
2782 new szText[128];
2783 new String[32];
2784 new var1;
2785 if (get_pcvar_num(cvar_ShowTips))
2786 {
2787 var1 = 4129936;
2788 }
2789 else
2790 {
2791 var1 = 4130000;
2792 }
2793 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_TRADEOFFER", id, var1);
2794 new menu = menu_create(szText, "tradeplayer_handler", MaxClients);
2795 new players[32];
2796 new pnum;
2797 new tempid;
2798 new count;
2799 get_players(players, pnum, "ch", 4130124);
2800 new i;
2801 while (i < pnum)
2802 {
2803 tempid = players[i];
2804 new var2;
2805 if (!isLogged[tempid] || id != tempid || intrade[tempid])
2806 {
2807 }
2808 else
2809 {
2810 count++;
2811 formatex(String, 31, "%d", tempid);
2812 user_name(tempid);
2813
2814/* ERROR! Can't print expression: Heap */
2815 function "TradePlayer" (number 54)
2816public tradeplayer_handler(id, menu, item)
2817{
2818 if (item == -3)
2819 {
2820 MainMenu(id);
2821 menu_destroy(menu);
2822 return 1;
2823 }
2824 new data[9];
2825 new name[64];
2826 new Key;
2827 new access;
2828 new callback;
2829 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
2830 Key = str_to_num(data);
2831 tradetarget[id] = Key;
2832 TradeMenu(id);
2833 menu_destroy(menu);
2834 return 1;
2835}
2836
2837public TradeMenu(id)
2838{
2839 if (tradesender[id])
2840 {
2841 SendTrade(id, tradesender[id]);
2842 }
2843 else
2844 {
2845 if (!tradetarget[id])
2846 {
2847 TradePlayer(id);
2848 }
2849 new szText[150];
2850 new SkinName[64];
2851 user_name(tradetarget[id]);
2852
2853/* ERROR! Can't print expression: Heap */
2854 function "TradeMenu" (number 56)
2855public trade_handler(id, menu, item)
2856{
2857 if (item == -3)
2858 {
2859 MainMenu(id);
2860 menu_destroy(menu);
2861 return 1;
2862 }
2863 switch (item)
2864 {
2865 case 0:
2866 {
2867 TradeWeapon(id);
2868 }
2869 case 1:
2870 {
2871 TradeWeapon2(id);
2872 }
2873 case 2:
2874 {
2875 if (!intrade[tradetarget[id]])
2876 {
2877 new var1;
2878 if (tradeskin[id] && tradeskinget[id])
2879 {
2880 SendTrade(tradetarget[id], id);
2881 tradesender[tradetarget[id]] = id;
2882 user_name(tradetarget[id]);
2883
2884/* ERROR! Can't print expression: Heap */
2885 function "trade_handler" (number 57)
2886public SendTrade(id, senderid)
2887{
2888 new szText[256];
2889 new String[32];
2890 new SkinName[128];
2891 new call = menu_makecallback("Call_Back");
2892 user_name(senderid);
2893
2894/* ERROR! Can't print expression: Heap */
2895 function "SendTrade" (number 58)
2896public sendtrade_handler(id, menu, item)
2897{
2898 if (item == -3)
2899 {
2900 MainMenu(id);
2901 menu_destroy(menu);
2902 return 1;
2903 }
2904 new data[9];
2905 new name[64];
2906 new access;
2907 new callback;
2908 new left[4];
2909 new right[4];
2910 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
2911 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
2912 new receiverid = str_to_num(left);
2913 new senderid = str_to_num(right);
2914 switch (item)
2915 {
2916 case 2:
2917 {
2918 new var1;
2919 if (UserSkins[tradeskinget[senderid]][receiverid] > 0 && UserSkins[tradeskin[senderid]][senderid] > 0)
2920 {
2921 UserSkins[tradeskin[senderid]][receiverid]++;
2922 UserSkins[tradeskinget[senderid]][receiverid]--;
2923 UserSkins[tradeskinget[senderid]][senderid]++;
2924 UserSkins[tradeskin[senderid]][senderid]--;
2925 user_name(senderid);
2926
2927/* ERROR! Can't print expression: Heap */
2928 function "sendtrade_handler" (number 59)
2929public TradeWeapon(id)
2930{
2931 new szText[128];
2932 new String[32];
2933 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CRAFTINGCHOOSE");
2934 new menu = menu_create(szText, "tradeweapon_handler", MaxClients);
2935 new i = 1;
2936 while (i < 31)
2937 {
2938 if (SkinExists[i])
2939 {
2940 formatex(String, 31, "%d", szWeaponId[i]);
2941 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
2942 menu_additem(menu, szText, String, MaxClients, -1);
2943 }
2944 i++;
2945 }
2946 menu_setprop(menu, 6, 1);
2947 menu_display(id, menu, MaxClients, -1);
2948 return 0;
2949}
2950
2951public tradeweapon_handler(id, menu, item)
2952{
2953 if (item == -3)
2954 {
2955 TradeMenu(id);
2956 menu_destroy(menu);
2957 return 1;
2958 }
2959 new data[9];
2960 new name[64];
2961 new Key;
2962 new access;
2963 new callback;
2964 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
2965 Key = str_to_num(data);
2966 TradeSkin(id, Key);
2967 menu_destroy(menu);
2968 return 1;
2969}
2970
2971public TradeSkin(id, wepid)
2972{
2973 new szText[256];
2974 new String[32];
2975 new count;
2976 new SkinName[128];
2977 new var1;
2978 if (get_pcvar_num(cvar_ShowTips))
2979 {
2980 var1 = 4132868;
2981 }
2982 else
2983 {
2984 var1 = 4132948;
2985 }
2986 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
2987 new menu = menu_create(szText, "tradingskin_handler", MaxClients);
2988 new i;
2989 while (i < AllWeapon)
2990 {
2991 new var2;
2992 if (wepid == Weapons[i] && UserSkins[i][id])
2993 {
2994 }
2995 else
2996 {
2997 count++;
2998 format_skin_name(SkinName, 128, i, 3);
2999 formatex(String, 31, "%d|%d", i, wepid);
3000 formatex(szText, 256, "%s", SkinName, UserSkins[i][id]);
3001 menu_additem(menu, szText, String, MaxClients, -1);
3002 }
3003 i++;
3004 }
3005 if (!count)
3006 {
3007 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
3008 TradeWeapon(id);
3009 }
3010 else
3011 {
3012 menu_setprop(menu, 6, 1);
3013 menu_display(id, menu, MaxClients, -1);
3014 }
3015 return 0;
3016}
3017
3018public tradingskin_handler(id, menu, item)
3019{
3020 if (item == -3)
3021 {
3022 TradeWeapon(id);
3023 menu_destroy(menu);
3024 return 1;
3025 }
3026 new data[9];
3027 new name[64];
3028 new Key;
3029 new access;
3030 new callback;
3031 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3032 new left[4];
3033 new right[4];
3034 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
3035 Key = str_to_num(left);
3036 new wpid = str_to_num(right);
3037 tradeskin[id] = Key;
3038 tradeskin_wepid[id] = wpid;
3039 TradeMenu(id);
3040 menu_destroy(menu);
3041 return 1;
3042}
3043
3044public TradeWeapon2(id)
3045{
3046 new szText[128];
3047 new String[32];
3048 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CRAFTINGCHOOSE");
3049 new menu = menu_create(szText, "tradeweapon2_handler", MaxClients);
3050 new i = 1;
3051 while (i < 31)
3052 {
3053 if (SkinExists[i])
3054 {
3055 formatex(String, 31, "%d", szWeaponId[i]);
3056 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
3057 menu_additem(menu, szText, String, MaxClients, -1);
3058 }
3059 i++;
3060 }
3061 menu_setprop(menu, 6, 1);
3062 menu_display(id, menu, MaxClients, -1);
3063 return 0;
3064}
3065
3066public tradeweapon2_handler(id, menu, item)
3067{
3068 if (item == -3)
3069 {
3070 TradeMenu(id);
3071 menu_destroy(menu);
3072 return 1;
3073 }
3074 new data[9];
3075 new name[64];
3076 new Key;
3077 new access;
3078 new callback;
3079 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3080 Key = str_to_num(data);
3081 TradeSkin2(id, Key);
3082 menu_destroy(menu);
3083 return 1;
3084}
3085
3086public TradeSkin2(id, wepid)
3087{
3088 new szText[256];
3089 new String[32];
3090 new count;
3091 new SkinName[128];
3092 new var1;
3093 if (get_pcvar_num(cvar_ShowTips))
3094 {
3095 var1 = 4133680;
3096 }
3097 else
3098 {
3099 var1 = 4133760;
3100 }
3101 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
3102 new menu = menu_create(szText, "tradingskin2_handler", MaxClients);
3103 new i;
3104 while (i < AllWeapon)
3105 {
3106 new var2;
3107 if (wepid == Weapons[i] && UserSkins[i][tradetarget[id]])
3108 {
3109 }
3110 else
3111 {
3112 count++;
3113 format_skin_name(SkinName, 128, i, 3);
3114 formatex(String, 31, "%d|%d", i, wepid);
3115 formatex(szText, 256, "%s \r[\w%d\r]", SkinName, UserSkins[i][tradetarget[id]]);
3116 menu_additem(menu, szText, String, MaxClients, -1);
3117 }
3118 i++;
3119 }
3120 if (!count)
3121 {
3122 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
3123 TradeWeapon2(id);
3124 }
3125 else
3126 {
3127 menu_setprop(menu, 6, 1);
3128 menu_display(id, menu, MaxClients, -1);
3129 }
3130 return 0;
3131}
3132
3133public tradingskin2_handler(id, menu, item)
3134{
3135 if (item == -3)
3136 {
3137 TradeWeapon2(id);
3138 menu_destroy(menu);
3139 return 1;
3140 }
3141 new data[9];
3142 new name[64];
3143 new Key;
3144 new access;
3145 new callback;
3146 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3147 new left[4];
3148 new right[4];
3149 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
3150 Key = str_to_num(left);
3151 new wpid = str_to_num(right);
3152 tradeskinget[id] = Key;
3153 tradeskinget_wepid[id] = wpid;
3154 TradeMenu(id);
3155 menu_destroy(menu);
3156 return 1;
3157}
3158
3159public Flip(id)
3160{
3161 new szText[128];
3162 new szName[64];
3163 user_name(flipOpponent[id]);
3164 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_COINFLIP");
3165 new menu = menu_create(szText, "flip_handler", MaxClients);
3166 formatex(szText, cvar_SqlUser, "%L", id, "FLIP_BET", flipBet[id]);
3167 menu_additem(menu, szText, 4134288, MaxClients, -1);
3168 new var1;
3169 if (flipOpponent[id])
3170 {
3171 var1 = szName;
3172 }
3173 else
3174 {
3175 var1 = 4134444;
3176 }
3177 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "FLIP_OPPONENT", var1);
3178 menu_additem(menu, szText, 4134468, MaxClients, -1);
3179 new var2;
3180 if (flipOpponent[id] && flipBet[id])
3181 {
3182 var3 = 4134492;
3183 }
3184 else
3185 {
3186 var3 = 4134504;
3187 }
3188 formatex(szText, cvar_SqlUser, "%s%L", var3, id, "FLIP_START");
3189 menu_additem(menu, szText, 4134560, MaxClients, -1);
3190 menu_setprop(menu, 6, 1);
3191 menu_display(id, menu, MaxClients, -1);
3192 return 1;
3193}
3194
3195public flip_handler(id, menu, item)
3196{
3197 if (item == -3)
3198 {
3199 MainMenu(id);
3200 menu_destroy(menu);
3201 return 1;
3202 }
3203 switch (item)
3204 {
3205 case 0:
3206 {
3207 client_cmd(id, "messagemode Bet");
3208 Flip(id);
3209 }
3210 case 1:
3211 {
3212 if (flipBet[id])
3213 {
3214 ChooseOpponent(id);
3215 }
3216 else
3217 {
3218 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CHOOSE_BET");
3219 Flip(id);
3220 }
3221 }
3222 case 2:
3223 {
3224 if (!flipOpponent[id])
3225 {
3226 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CHOOSE_OPPONENT");
3227 Flip(id);
3228 }
3229 else
3230 {
3231 if (!flipBet[id])
3232 {
3233 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CHOOSE_BET");
3234 Flip(id);
3235 }
3236 user_name(flipOpponent[id]);
3237
3238/* ERROR! Can't print expression: Heap */
3239 function "flip_handler" (number 69)
3240public SendRequest(id, receiver)
3241{
3242 new szText[128];
3243 new szName[64];
3244 new String[32];
3245 user_name(id);
3246 formatex(szText, cvar_SqlUser, "%L %L", receiver, "PREFIX_HUD", receiver, "FLIP_REQUEST", szName, flipBet[id]);
3247 new menu = menu_create(szText, "fliprequest_handler", MaxClients);
3248 formatex(szText, cvar_SqlUser, "%L", receiver, "CLAN_ACCEPT");
3249 formatex(String, 31, "%d", id);
3250 menu_additem(menu, szText, String, MaxClients, -1);
3251 formatex(szText, cvar_SqlUser, "%L", receiver, "CLAN_DECLINE");
3252 formatex(String, 31, "%d", id);
3253 menu_additem(menu, szText, String, MaxClients, -1);
3254 menu_setprop(menu, 6, -1);
3255 menu_display(receiver, menu, MaxClients, -1);
3256 return 1;
3257}
3258
3259public fliprequest_handler(id, menu, item)
3260{
3261 new data[9];
3262 new name[64];
3263 new Key;
3264 new access;
3265 new callback;
3266 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3267 Key = str_to_num(data);
3268 switch (item)
3269 {
3270 case 0:
3271 {
3272 if (!inFlip[Key])
3273 {
3274 user_name(Key);
3275
3276/* ERROR! Can't print expression: Heap */
3277 function "fliprequest_handler" (number 71)
3278public fliptimer(Params[])
3279{
3280 new receiver = Params[0];
3281 new sender = Params[1];
3282 new winner = random_num(1, 2);
3283 switch (winner)
3284 {
3285 case 1:
3286 {
3287 user_name(receiver);
3288 user_name(sender);
3289
3290/* ERROR! Can't print expression: Heap */
3291 function "fliptimer" (number 72)
3292public ChooseOpponent(id)
3293{
3294 new szText[128];
3295 new String[32];
3296 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "FLIP_OPPONENT2");
3297 new menu = menu_create(szText, "opponent_handler", MaxClients);
3298 new players[32];
3299 new pnum;
3300 new tempid;
3301 new count;
3302 get_players(players, pnum, "ch", 4130124);
3303 new i;
3304 while (i < pnum)
3305 {
3306 tempid = players[i];
3307 new var1;
3308 if (!isLogged[tempid] || id != tempid || Points[tempid] < flipBet[id] || inFlip[tempid])
3309 {
3310 }
3311 else
3312 {
3313 count++;
3314 formatex(String, 31, "%d", tempid);
3315 user_name(tempid);
3316
3317/* ERROR! Can't print expression: Heap */
3318 function "ChooseOpponent" (number 73)
3319public opponent_handler(id, menu, item)
3320{
3321 if (item == -3)
3322 {
3323 Flip(id);
3324 menu_destroy(menu);
3325 return 1;
3326 }
3327 new data[9];
3328 new name[64];
3329 new Key;
3330 new access;
3331 new callback;
3332 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3333 Key = str_to_num(data);
3334 flipOpponent[id] = Key;
3335 Flip(id);
3336 menu_destroy(menu);
3337 return 1;
3338}
3339
3340public MissionsMenu(id)
3341{
3342 new szText[128];
3343 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_MISSIONS");
3344 new menu = menu_create(szText, "missionmenu_handler", MaxClients);
3345 formatex(szText, cvar_SqlUser, "Kill 15 Enemies \r[\wProgress: 5\r]");
3346 menu_additem(menu, szText, 4137008, MaxClients, -1);
3347 menu_setprop(menu, 6, 1);
3348 menu_display(id, menu, MaxClients, -1);
3349 return 1;
3350}
3351
3352public missionmenu_handler(id, menu, item)
3353{
3354 if (item == -3)
3355 {
3356 MainMenu(id);
3357 menu_destroy(menu);
3358 return 1;
3359 }
3360 MissionsMenu(id);
3361 menu_destroy(menu);
3362 return 1;
3363}
3364
3365public DeathNoteMenu(id)
3366{
3367 new szText[256];
3368 formatex(szText, 256, "%L %L", id, "PREFIX_HUD", id, "MENU_DEATHNOTE");
3369 new menu = menu_create(szText, "deathmenu_handler", MaxClients);
3370 if (hasDeathNote[id])
3371 {
3372 new var1;
3373 if (strlen(DeathNote[id]) > 2)
3374 {
3375 var1 = DeathNote[id];
3376 }
3377 else
3378 {
3379 var1 = 4137392;
3380 }
3381 formatex(szText, 256, "%L: %s\n\r------------------%L", id, "MENU_DEATHNOTE", var1, id, "DEATHNOTE_TIP");
3382 menu_additem(menu, szText, 4137464, MaxClients, -1);
3383 }
3384 else
3385 {
3386 formatex(szText, 256, "%L", id, "BUY_DEATHNOTE");
3387 menu_additem(menu, szText, 4137536, MaxClients, -1);
3388 }
3389 menu_setprop(menu, 6, 1);
3390 menu_display(id, menu, MaxClients, -1);
3391 return 1;
3392}
3393
3394public deathmenu_handler(id, menu, item)
3395{
3396 if (item == -3)
3397 {
3398 MainMenu(id);
3399 menu_destroy(menu);
3400 return 1;
3401 }
3402 new cost = get_pcvar_num(cvar_DNPrice);
3403 switch (item)
3404 {
3405 case 0:
3406 {
3407 if (hasDeathNote[id])
3408 {
3409 client_cmd(id, "messagemode DeathNote");
3410 }
3411 else
3412 {
3413 if (cost <= Points[id])
3414 {
3415 Points[id] -= cost;
3416 hasDeathNote[id] = 1;
3417 UpdateStats(id);
3418 }
3419 }
3420 }
3421 default:
3422 {
3423 }
3424 }
3425 DeathNoteMenu(id);
3426 menu_destroy(menu);
3427 return 1;
3428}
3429
3430public Top15(id)
3431{
3432 new szMotd[512];
3433 get_pcvar_string(cvar_TopUrl, szMotd, 511);
3434 show_motd(id, szMotd, "Top 15");
3435 return 0;
3436}
3437
3438public Clan15(id)
3439{
3440 new szMotd[512];
3441 get_pcvar_string(cvar_ClanUrl, szMotd, 511);
3442 show_motd(id, szMotd, "Clan 15");
3443 return 0;
3444}
3445
3446public CraftingMenu(id)
3447{
3448 new szText[128];
3449 new dusts = get_pcvar_num(cvar_MinDusts);
3450 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CRAFTING", id, "YOUR_DUSTS", Dusts[id]);
3451 new menu = menu_create(szText, "craftingmenu_handler", MaxClients);
3452 formatex(szText, cvar_SqlUser, "%L [%d %L]\n\r------------------", id, "CRAFT_SKIN", dusts, id, "WORD_DUSTS");
3453 menu_additem(menu, szText, 4138164, MaxClients, -1);
3454 formatex(szText, cvar_SqlUser, "%L", id, "CRAFT_GETDUSTS");
3455 menu_additem(menu, szText, 4138240, MaxClients, -1);
3456 menu_setprop(menu, 6, 1);
3457 menu_display(id, menu, MaxClients, -1);
3458 return 1;
3459}
3460
3461public craftingmenu_handler(id, menu, item)
3462{
3463 if (item == -3)
3464 {
3465 MainMenu(id);
3466 menu_destroy(menu);
3467 return 1;
3468 }
3469 new dusts = get_pcvar_num(cvar_MinDusts);
3470 new SkinName[128];
3471 switch (item)
3472 {
3473 case 0:
3474 {
3475 if (dusts <= Dusts[id])
3476 {
3477 new skind;
3478 new rand;
3479 new chanceItem = random_item("\x01\x04\x0F#-", 5);
3480 new var1 = chestSkins;
3481 rand = random_num(1, var1[0][var1][Odds[chanceItem]]);
3482 new var2 = chestsList;
3483 skind = var2[0][var2][Odds[chanceItem]][rand];
3484 format_skin_name(SkinName, 128, skind, 1);
3485 user_name(id);
3486
3487/* ERROR! Can't print expression: Heap */
3488 function "craftingmenu_handler" (number 82)
3489public CraftingWeapons(id)
3490{
3491 new szText[128];
3492 new String[32];
3493 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CRAFTINGCHOOSE");
3494 new menu = menu_create(szText, "craftingweapons_handler", MaxClients);
3495 new i = 1;
3496 while (i < 31)
3497 {
3498 if (SkinExists[i])
3499 {
3500 formatex(String, 31, "%d", szWeaponId[i]);
3501 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
3502 menu_additem(menu, szText, String, MaxClients, -1);
3503 }
3504 i++;
3505 }
3506 menu_setprop(menu, 6, 1);
3507 menu_display(id, menu, MaxClients, -1);
3508 return 0;
3509}
3510
3511public craftingweapons_handler(id, menu, item)
3512{
3513 if (item == -3)
3514 {
3515 CraftingMenu(id);
3516 menu_destroy(menu);
3517 return 1;
3518 }
3519 new data[9];
3520 new name[64];
3521 new Key;
3522 new access;
3523 new callback;
3524 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3525 Key = str_to_num(data);
3526 CraftingSkin(id, Key);
3527 menu_destroy(menu);
3528 return 1;
3529}
3530
3531public CraftingSkin(id, wepid)
3532{
3533 new szText[256];
3534 new String[32];
3535 new count;
3536 new SkinName[128];
3537 new var1;
3538 if (get_pcvar_num(cvar_ShowTips))
3539 {
3540 var1 = 4138996;
3541 }
3542 else
3543 {
3544 var1 = 4139088;
3545 }
3546 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
3547 new menu = menu_create(szText, "craftingskin_handler", MaxClients);
3548 new dustcount;
3549 new i;
3550 while (i < AllWeapon)
3551 {
3552 new var2;
3553 if (wepid == Weapons[i] && UserSkins[i][id])
3554 {
3555 }
3556 else
3557 {
3558 count++;
3559 switch (Chance[i])
3560 {
3561 case 1:
3562 {
3563 dustcount = get_pcvar_num(cvar_DustKnife);
3564 }
3565 case 4:
3566 {
3567 dustcount = get_pcvar_num(cvar_DustERare);
3568 }
3569 case 15:
3570 {
3571 dustcount = get_pcvar_num(cvar_DustRare);
3572 }
3573 case 35:
3574 {
3575 dustcount = get_pcvar_num(cvar_DustUncommon);
3576 }
3577 case 45:
3578 {
3579 dustcount = get_pcvar_num(cvar_DustCommon);
3580 }
3581 default:
3582 {
3583 }
3584 }
3585 format_skin_name(SkinName, 128, i, 3);
3586 formatex(String, 31, "%d|%d", i, wepid);
3587 formatex(szText, 256, "%s \r[\w%d\r] \w| [%d \w%L]", SkinName, UserSkins[i][id], dustcount, id, "WORD_DUSTS");
3588 menu_additem(menu, szText, String, MaxClients, -1);
3589 }
3590 i++;
3591 }
3592 if (!count)
3593 {
3594 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
3595 CraftingWeapons(id);
3596 }
3597 else
3598 {
3599 menu_setprop(menu, 6, 1);
3600 menu_display(id, menu, MaxClients, -1);
3601 }
3602 return 0;
3603}
3604
3605public craftingskin_handler(id, menu, item)
3606{
3607 if (item == -3)
3608 {
3609 CraftingWeapons(id);
3610 menu_destroy(menu);
3611 return 1;
3612 }
3613 new data[9];
3614 new name[64];
3615 new Key;
3616 new access;
3617 new callback;
3618 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3619 new left[4];
3620 new right[4];
3621 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
3622 Key = str_to_num(left);
3623 new dustcount;
3624 new SkinName[128];
3625 switch (Chance[Key])
3626 {
3627 case 1:
3628 {
3629 dustcount = get_pcvar_num(cvar_DustKnife);
3630 }
3631 case 4:
3632 {
3633 dustcount = get_pcvar_num(cvar_DustERare);
3634 }
3635 case 15:
3636 {
3637 dustcount = get_pcvar_num(cvar_DustRare);
3638 }
3639 case 35:
3640 {
3641 dustcount = get_pcvar_num(cvar_DustUncommon);
3642 }
3643 case 45:
3644 {
3645 dustcount = get_pcvar_num(cvar_DustCommon);
3646 }
3647 default:
3648 {
3649 }
3650 }
3651 new var1 = Dusts[id];
3652 var1 = var1[dustcount];
3653 UserSkins[Key][id]--;
3654 UpdateItems(id);
3655 UpdateStats(id);
3656 format_skin_name(SkinName, 128, Key, 1);
3657 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_DUSTED", SkinName, dustcount);
3658 CraftingMenu(id);
3659 menu_destroy(menu);
3660 return 1;
3661}
3662
3663public SettingsMenu(id)
3664{
3665 new szText[128];
3666 new rankRR;
3667 new rankCost;
3668 rankRR = get_pcvar_num(cvar_RestartRank);
3669 rankCost = get_pcvar_num(cvar_RestartCost);
3670 new var1;
3671 if (get_pcvar_num(cvar_ShowTips))
3672 {
3673 var1 = 4139744;
3674 }
3675 else
3676 {
3677 var1 = 4139796;
3678 }
3679 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "SETTINGS_MENU", id, var1);
3680 new menu = menu_create(szText, "settingsmenu_handler", MaxClients);
3681 new var2;
3682 if (HudEnabled[id])
3683 {
3684 var2 = 4139988;
3685 }
3686 else
3687 {
3688 var2 = 4140020;
3689 }
3690 formatex(szText, cvar_SqlUser, "%L %L", id, "SETTINGS_HUD", id, var2);
3691 menu_additem(menu, szText, 4140056, MaxClients, -1);
3692 new var3;
3693 if (MVPSoundVIP[MVPSound[id]])
3694 {
3695 var3 = 4140176;
3696 }
3697 else
3698 {
3699 var3 = 4140208;
3700 }
3701 formatex(szText, cvar_SqlUser, "%L \r%s %L", id, "SETTINGS_MVPSOUND", MVPSounds[MVPSound[id]], id, var3);
3702 menu_additem(menu, szText, 4140232, MaxClients, -1);
3703 new var4;
3704 if (MVPEnabled[id])
3705 {
3706 var4 = 4140448;
3707 }
3708 else
3709 {
3710 var4 = 4140476;
3711 }
3712 formatex(szText, cvar_SqlUser, "%L %L\n\r------------------------", id, "SETTINGS_MVPENABLED", id, var4);
3713 menu_additem(menu, szText, 4140508, MaxClients, -1);
3714 if (rankRR)
3715 {
3716 formatex(szText, cvar_SqlUser, "%L \w[\r%d\w %L]", id, "SETTINGS_RANKRR", rankCost, id, "WORD_POINTS");
3717 menu_additem(menu, szText, 4140692, MaxClients, -1);
3718 }
3719 menu_setprop(menu, 6, 1);
3720 menu_display(id, menu, MaxClients, -1);
3721 return 1;
3722}
3723
3724public settingsmenu_handler(id, menu, item)
3725{
3726 if (item == -3)
3727 {
3728 MainMenu(id);
3729 menu_destroy(menu);
3730 return 1;
3731 }
3732 switch (item)
3733 {
3734 case 0:
3735 {
3736 HudEnabled[id] = !HudEnabled[id];
3737 SettingsMenu(id);
3738 UpdateSettings(id);
3739 }
3740 case 1:
3741 {
3742 MVPSoundSelect(id);
3743 }
3744 case 2:
3745 {
3746 MVPEnabled[id] = !MVPEnabled[id];
3747 SettingsMenu(id);
3748 UpdateSettings(id);
3749 }
3750 case 3:
3751 {
3752 new rankCost = get_pcvar_num(cvar_RestartCost);
3753 if (rankCost <= Points[id])
3754 {
3755 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK_RESET");
3756 Rank[id] = 0;
3757 Kills[id] = 0;
3758 Mvp[id] = 0;
3759 Skill[id] = 1120403456;
3760 Points[id] -= rankCost;
3761 UpdateStats(id);
3762 }
3763 else
3764 {
3765 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", rankCost - Points[id]);
3766 }
3767 SettingsMenu(id);
3768 }
3769 default:
3770 {
3771 }
3772 }
3773 menu_destroy(menu);
3774 return 1;
3775}
3776
3777public GraffitiMenu(id)
3778{
3779 new szText[256];
3780 new String[32];
3781 formatex(szText, 256, "%L %L", id, "PREFIX_HUD", id, "MENU_GRAFFITI");
3782 new menu = menu_create(szText, "graffiti_handler", MaxClients);
3783 formatex(szText, 256, "%L\n\r------------------------", id, "OPEN_GRAFFITI", GraffitiBox[id]);
3784 menu_additem(menu, szText, "-1", MaxClients, -1);
3785 new i = 1;
3786 while (i < 64)
3787 {
3788 if (0 < UserGraffiti[i][id])
3789 {
3790 new var1;
3791 if (i == SelectedGraffiti[id])
3792 {
3793 var1 = 4141404;
3794 }
3795 else
3796 {
3797 var1 = 4141452;
3798 }
3799 formatex(szText, 256, "%s \w[\r%d\w] %L", Graffities[i], UserGraffiti[i][id], id, var1);
3800 formatex(String, 32, "%d", i);
3801 menu_additem(menu, szText, String, MaxClients, -1);
3802 }
3803 i++;
3804 }
3805 menu_setprop(menu, 6, 1);
3806 menu_display(id, menu, MaxClients, -1);
3807 return 1;
3808}
3809
3810public graffiti_handler(id, menu, item)
3811{
3812 if (item == -3)
3813 {
3814 MainMenu(id);
3815 menu_destroy(menu);
3816 return 1;
3817 }
3818 new data[9];
3819 new name[64];
3820 new Key;
3821 new access;
3822 new callback;
3823 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
3824 Key = str_to_num(data);
3825 if (Key == -1)
3826 {
3827 if (0 < GraffitiBox[id])
3828 {
3829 new rNum = random_num(1, 63);
3830 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "OPENED_GBOX", Graffities[rNum]);
3831 UserGraffiti[rNum][id]++;
3832 GraffitiBox[id]--;
3833 }
3834 GraffitiMenu(id);
3835 UpdateMisc(id);
3836 return 1;
3837 }
3838 if (Key == SelectedGraffiti[id])
3839 {
3840 SelectedGraffiti[id] = 0;
3841 }
3842 else
3843 {
3844 SelectedGraffiti[id] = Key;
3845 }
3846 GraffitiMenu(id);
3847 UpdateMisc(id);
3848 return 1;
3849}
3850
3851public MVPSoundSelect(id)
3852{
3853 new szText[256];
3854 new vipFlag[32];
3855 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
3856 new var1;
3857 if (get_pcvar_num(cvar_ShowTips))
3858 {
3859 var1 = 4141740;
3860 }
3861 else
3862 {
3863 var1 = 4141792;
3864 }
3865 formatex(szText, 256, "%L %L%L", id, "PREFIX_HUD", id, "SETTINGS_MENU", id, var1);
3866 new menu = menu_create(szText, "mvpselect_handler", MaxClients);
3867 new i;
3868 while (AllSounds + -1 > i)
3869 {
3870 new var2;
3871 if (MVPSoundVIP[i])
3872 {
3873 var2 = 4141952;
3874 }
3875 else
3876 {
3877 var2 = 4141984;
3878 }
3879 new var3;
3880 if (MVPSoundVIP[i] && !has_all_flags(id, vipFlag))
3881 {
3882 var4 = 4141928;
3883 }
3884 else
3885 {
3886 var4 = 4141940;
3887 }
3888 formatex(szText, 256, "%s%s %L", var4, MVPSounds[i], id, var2);
3889 menu_additem(menu, szText, 4142008, MaxClients, -1);
3890 i++;
3891 }
3892 menu_setprop(menu, 6, 1);
3893 menu_display(id, menu, MaxClients, -1);
3894 return 1;
3895}
3896
3897public mvpselect_handler(id, menu, item)
3898{
3899 if (item == -3)
3900 {
3901 SettingsMenu(id);
3902 menu_destroy(menu);
3903 return 1;
3904 }
3905 new vipFlag[32];
3906 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
3907 new isWav = equali(MVPSoundPath[item][strlen(MVPSoundPath[item]) - 4], ".wav", MaxClients);
3908 if (MVPSoundVIP[item])
3909 {
3910 if (has_all_flags(id, vipFlag))
3911 {
3912 MVPSound[id] = item;
3913 client_cmd(id, "stopsound");
3914 client_cmd(id, "mp3 stop");
3915 if (isWav)
3916 {
3917 client_cmd(id, "spk %s", MVPSoundPath[MVPSound[id]]);
3918 }
3919 else
3920 {
3921 client_cmd(id, "mp3 play sound/%s", MVPSoundPath[MVPSound[id]]);
3922 }
3923 SettingsMenu(id);
3924 UpdateSettings(id);
3925 }
3926 else
3927 {
3928 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "VIP_TRACK", MVPSounds[item]);
3929 MVPSoundSelect(id);
3930 }
3931 }
3932 else
3933 {
3934 MVPSound[id] = item;
3935 client_cmd(id, "stopsound");
3936 client_cmd(id, "mp3 stop");
3937 if (isWav)
3938 {
3939 client_cmd(id, "spk %s", MVPSoundPath[MVPSound[id]]);
3940 }
3941 else
3942 {
3943 client_cmd(id, "mp3 play sound/%s", MVPSoundPath[MVPSound[id]]);
3944 }
3945 SettingsMenu(id);
3946 UpdateSettings(id);
3947 }
3948 menu_destroy(menu);
3949 return 1;
3950}
3951
3952public GiftMenu(id)
3953{
3954 new szText[128];
3955 new szName[64];
3956 new SkinName[128];
3957 user_name(receiver_id[id]);
3958 format_skin_name(SkinName, 128, skingift_id[id], 3);
3959 new var1;
3960 if (get_pcvar_num(cvar_ShowTips))
3961 {
3962 var1 = 4142620;
3963 }
3964 else
3965 {
3966 var1 = 4142660;
3967 }
3968 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_GIFTS", id, var1);
3969 new menu = menu_create(szText, "giftmenu_handler", MaxClients);
3970 new var2;
3971 if (receiver_id[id])
3972 {
3973 var2 = szName;
3974 }
3975 else
3976 {
3977 var2 = 4142848;
3978 }
3979 formatex(szText, cvar_SqlUser, "%L \r%s", id, "GIFT_RECEIVER", var2);
3980 menu_additem(menu, szText, 4142872, MaxClients, -1);
3981 if (giftitemtype[id])
3982 {
3983 if (skingift_id[id])
3984 {
3985 formatex(szText, cvar_SqlUser, "%L %s", id, "GIFT_GIFT", SkinName);
3986 menu_additem(menu, szText, 4142940, MaxClients, -1);
3987 }
3988 else
3989 {
3990 formatex(szText, cvar_SqlUser, "%L \r%L", id, "GIFT_GIFT", id, "GIFT_POINTS");
3991 menu_additem(menu, szText, 4143064, MaxClients, -1);
3992 }
3993 }
3994 else
3995 {
3996 formatex(szText, cvar_SqlUser, "%L \r%s", id, "GIFT_GIFT", szCKNames[ckgift_item[id]]);
3997 menu_additem(menu, szText, 4143140, MaxClients, -1);
3998 }
3999 new var3;
4000 if (!giftitemtype[id] && ckgift_item[id])
4001 {
4002 new var4;
4003 if (ckgift_type[id])
4004 {
4005 var4 = 4143228;
4006 }
4007 else
4008 {
4009 var4 = 4143264;
4010 }
4011 formatex(szText, cvar_SqlUser, "%L: \r%L", id, "GIFT_CKTYPE", id, var4);
4012 menu_additem(menu, szText, 4143304, MaxClients, -1);
4013 }
4014 formatex(szText, cvar_SqlUser, "%L: \r%d\n\r------------------", id, "SHOP_QUANTITY", gift_quantity[id]);
4015 menu_additem(menu, szText, 4143484, MaxClients, -1);
4016 formatex(szText, cvar_SqlUser, "%L", id, "GIFT_SENDGIFT");
4017 menu_additem(menu, szText, 4143556, MaxClients, -1);
4018 menu_setprop(menu, 6, 1);
4019 menu_display(id, menu, MaxClients, -1);
4020 return 1;
4021}
4022
4023public giftmenu_handler(id, menu, item)
4024{
4025 if (item == -3)
4026 {
4027 MainMenu(id);
4028 menu_destroy(menu);
4029 return 1;
4030 }
4031 new SkinName[128];
4032 switch (item)
4033 {
4034 case 0:
4035 {
4036 PlayerList(id);
4037 }
4038 case 1:
4039 {
4040 GiftItems(id);
4041 }
4042 case 2:
4043 {
4044 new var4;
4045 if (!giftitemtype[id] && ckgift_item[id])
4046 {
4047 ckgift_type[id] = !ckgift_type[id];
4048 }
4049 else
4050 {
4051 client_cmd(id, "messagemode QuantityG");
4052 }
4053 GiftMenu(id);
4054 }
4055 case 3:
4056 {
4057 new var3;
4058 if (!giftitemtype[id] && ckgift_item[id])
4059 {
4060 client_cmd(id, "messagemode QuantityG");
4061 }
4062 else
4063 {
4064 if (skingift_id[id])
4065 {
4066 if (gift_quantity[id] <= UserSkins[skingift_id[id]][id])
4067 {
4068 if (receiver_id[id])
4069 {
4070 UserSkins[skingift_id[id]][id] -= gift_quantity[id];
4071 new var7 = UserSkins[skingift_id[id]][receiver_id[id]];
4072 var7 = gift_quantity[id][var7];
4073 UpdateItems(id);
4074 UpdateItems(receiver_id[id]);
4075 format_skin_name(SkinName, 128, skingift_id[id], 1);
4076 user_name(receiver_id[id]);
4077
4078/* ERROR! Can't print expression: Heap */
4079 function "giftmenu_handler" (number 94)
4080public PlayerList(id)
4081{
4082 new szText[128];
4083 new String[32];
4084 new var1;
4085 if (get_pcvar_num(cvar_ShowTips))
4086 {
4087 var1 = 4146076;
4088 }
4089 else
4090 {
4091 var1 = 4146120;
4092 }
4093 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_GIFTSR", id, var1);
4094 new menu = menu_create(szText, "playerlist_handler", MaxClients);
4095 new players[32];
4096 new pnum;
4097 new tempid;
4098 new count;
4099 get_players(players, pnum, "ch", 4130124);
4100 new i;
4101 while (i < pnum)
4102 {
4103 tempid = players[i];
4104 new var2;
4105 if (!isLogged[tempid] || tempid != id)
4106 {
4107 }
4108 else
4109 {
4110 count++;
4111 formatex(String, 31, "%d", tempid);
4112 user_name(tempid);
4113
4114/* ERROR! Can't print expression: Heap */
4115 function "PlayerList" (number 95)
4116public playerlist_handler(id, menu, item)
4117{
4118 if (item == -3)
4119 {
4120 GiftMenu(id);
4121 menu_destroy(menu);
4122 return 1;
4123 }
4124 new data[9];
4125 new name[64];
4126 new Key;
4127 new access;
4128 new callback;
4129 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4130 Key = str_to_num(data);
4131 receiver_id[id] = Key;
4132 GiftMenu(id);
4133 menu_destroy(menu);
4134 return 1;
4135}
4136
4137public ClanMenu(id)
4138{
4139 new szText[128];
4140 new menu;
4141 new clancost = get_pcvar_num(cvar_ClanCost);
4142 switch (clan_inclan[id])
4143 {
4144 case 0:
4145 {
4146 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLANCREATE", clancost);
4147 menu = menu_create(szText, "clanmenu_handler", MaxClients);
4148 new var1;
4149 if (strlen(clan_name[id]) > 1)
4150 {
4151 var1 = clan_name[id];
4152 }
4153 else
4154 {
4155 var1 = 4146604;
4156 }
4157 formatex(szText, cvar_SqlUser, "%L\n\r-------------------", id, "CLAN_NAME", var1);
4158 menu_additem(menu, szText, 4146628, MaxClients, -1);
4159 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_CREATE");
4160 menu_additem(menu, szText, 4146692, MaxClients, -1);
4161 }
4162 case 1:
4163 {
4164 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLANM");
4165 menu = menu_create(szText, "clanmenu_handler", MaxClients);
4166 if (clan_playerpos[id])
4167 {
4168 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_INVITE");
4169 menu_additem(menu, szText, 4146936, MaxClients, -1);
4170 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_MEMBERS", clan_count[id]);
4171 menu_additem(menu, szText, 4147004, MaxClients, -1);
4172 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "CLAN_KICK");
4173 menu_additem(menu, szText, 4147144, MaxClients, -1);
4174 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_DELETE");
4175 menu_additem(menu, szText, 4147208, MaxClients, -1);
4176 }
4177 else
4178 {
4179 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "CLAN_MEMBERS");
4180 menu_additem(menu, szText, 4147360, MaxClients, -1);
4181 formatex(szText, cvar_SqlUser, "%L", id, "CLAN_LEAVE");
4182 menu_additem(menu, szText, 4147420, MaxClients, -1);
4183 }
4184 }
4185 default:
4186 {
4187 }
4188 }
4189 menu_setprop(menu, 6, 1);
4190 menu_display(id, menu, MaxClients, -1);
4191 return 1;
4192}
4193
4194public clanmenu_handler(id, menu, item)
4195{
4196 if (item == -3)
4197 {
4198 MainMenu(id);
4199 menu_destroy(menu);
4200 return 1;
4201 }
4202 new clancost = get_pcvar_num(cvar_ClanCost);
4203 switch (item)
4204 {
4205 case 0:
4206 {
4207 if (!clan_inclan[id])
4208 {
4209 if (clancost <= Points[id])
4210 {
4211 client_cmd(id, "messagemode ClanName");
4212 ClanMenu(id);
4213 }
4214 else
4215 {
4216 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", clancost - Points[id]);
4217 ClanMenu(id);
4218 }
4219 }
4220 else
4221 {
4222 new var2;
4223 if (clan_inclan[id] && clan_playerpos[id])
4224 {
4225 PlayerListClan(id);
4226 }
4227 if (clan_inclan[id])
4228 {
4229 ClanMembers(id);
4230 }
4231 }
4232 }
4233 case 1:
4234 {
4235 if (!clan_inclan[id])
4236 {
4237 if (!clan_istaken[id])
4238 {
4239 if (1 < strlen(clan_name[id]))
4240 {
4241 AddClan(id);
4242 clan_inclan[id] = 1;
4243 clan_playerpos[id] = 1;
4244 Points[id] -= clancost;
4245 UpdateStats(id);
4246 ClanMenu(id);
4247 }
4248 else
4249 {
4250 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "ENTER_CLANNAME");
4251 ClanMenu(id);
4252 }
4253 }
4254 else
4255 {
4256 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CLAN_TAKEN", clan_name[id]);
4257 ClanMenu(id);
4258 }
4259 }
4260 else
4261 {
4262 new var1;
4263 if (clan_inclan[id] && clan_playerpos[id])
4264 {
4265 ClanMembers(id);
4266 }
4267 if (clan_inclan[id])
4268 {
4269 new szTemp[1024];
4270 new szName[32];
4271 user_name_sql(szName, 32, id);
4272 format(szTemp, 1023, "UPDATE `csgo_stats` SET `clan_name` = '' WHERE `username` = '%s';", szName);
4273 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
4274 clan_inclan[id] = 0;
4275 new i;
4276 while (i < 5)
4277 {
4278 if (!(1 > strlen(clan_members[id][i])))
4279 {
4280 }
4281 i++;
4282 }
4283 ClanMenu(id);
4284 }
4285 }
4286 }
4287 case 2:
4288 {
4289 KickMembers(id);
4290 }
4291 case 3:
4292 {
4293 new szTemp[1024];
4294 format(szTemp, 1023, "UPDATE `csgo_stats` SET `clan_name` = '', `clan_pos` = '0' WHERE `clan_name` = '%s';", clan_name[id]);
4295 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
4296 format(szTemp, 1023, "DELETE FROM `csgo_clan` WHERE `clan_name` = '%s';", clan_name[id]);
4297 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
4298 new i;
4299 while (i < 5)
4300 {
4301 if (!(1 > strlen(clan_members[id][i])))
4302 {
4303 new userid = find_player(4148872, clan_members[id][i]);
4304 if (userid)
4305 {
4306 clan_inclan[userid] = 0;
4307 clan_playerpos[userid] = 0;
4308 }
4309 }
4310 i++;
4311 }
4312 ClanMenu(id);
4313 }
4314 default:
4315 {
4316 }
4317 }
4318 menu_destroy(menu);
4319 return 1;
4320}
4321
4322public ClanMembers(id)
4323{
4324 new szText[128];
4325 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLANMEMBERS", clan_name[id]);
4326 new menu = menu_create(szText, "clanmembers_handler", MaxClients);
4327 new i;
4328 while (i < 5)
4329 {
4330 if (!(1 > strlen(clan_members[id][i])))
4331 {
4332 formatex(szText, cvar_SqlUser, "%s", clan_members[id][i]);
4333 menu_additem(menu, szText, 4149116, MaxClients, -1);
4334 }
4335 i++;
4336 }
4337 menu_setprop(menu, 6, 1);
4338 menu_display(id, menu, MaxClients, -1);
4339 return 0;
4340}
4341
4342public clanmembers_handler(id, menu, item)
4343{
4344 if (item == -3)
4345 {
4346 ClanMenu(id);
4347 menu_destroy(menu);
4348 return 1;
4349 }
4350 ClanMenu(id);
4351 menu_destroy(menu);
4352 return 1;
4353}
4354
4355public KickMembers(id)
4356{
4357 new szText[128];
4358 new String[32];
4359 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_KICKMEMBERS", clan_name[id]);
4360 new menu = menu_create(szText, "kickmembers_handler", MaxClients);
4361 new i;
4362 while (i < 5)
4363 {
4364 new var1;
4365 if (strlen(clan_members[id][i]) < 1 || i != id)
4366 {
4367 }
4368 else
4369 {
4370 formatex(String, 31, "%s|%d", clan_members[id][i], i);
4371 formatex(szText, cvar_SqlUser, "%s", clan_members[id][i]);
4372 menu_additem(menu, szText, String, MaxClients, -1);
4373 }
4374 i++;
4375 }
4376 menu_setprop(menu, 6, 1);
4377 menu_display(id, menu, MaxClients, -1);
4378 return 0;
4379}
4380
4381public kickmembers_handler(id, menu, item)
4382{
4383 if (item == -3)
4384 {
4385 ClanMenu(id);
4386 menu_destroy(menu);
4387 return 1;
4388 }
4389 new data[9];
4390 new name[64];
4391 new access;
4392 new callback;
4393 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4394 new left[64];
4395 new right[4];
4396 strtok2(data, left, 63, right, 3, cvar_SqlHost, MaxClients);
4397 replace_all(left, 63, 4149372, "\'");
4398 replace_all(left, 63, 4149392, "\\"");
4399 new xd = str_to_num(right);
4400 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "CLAN_KICKED", left);
4401 clan_count[id]--;
4402 new player = find_player(4149536, left);
4403 if (player)
4404 {
4405 clan_inclan[player] = 0;
4406 }
4407 new szTemp[1024];
4408 format(szTemp, 1023, "UPDATE `csgo_stats` SET `clan_name` = '' WHERE `username` = '%s';", left);
4409 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
4410 GetClanData(id);
4411 ClanMenu(id);
4412 menu_destroy(menu);
4413 return 1;
4414}
4415
4416public PlayerListClan(id)
4417{
4418 new szText[128];
4419 new String[32];
4420 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "MENU_CLAN");
4421 new menu = menu_create(szText, "playerlistclan_handler", MaxClients);
4422 new players[32];
4423 new pnum;
4424 new tempid;
4425 new count;
4426 get_players(players, pnum, "ch", 4130124);
4427 new i;
4428 while (i < pnum)
4429 {
4430 tempid = players[i];
4431 new var1;
4432 if (!isLogged[tempid] || clan_inclan[tempid] || i != tempid)
4433 {
4434 }
4435 else
4436 {
4437 count++;
4438 formatex(String, 31, "%d", tempid);
4439 user_name(tempid);
4440
4441/* ERROR! Can't print expression: Heap */
4442 function "PlayerListClan" (number 103)
4443public playerlistclan_handler(id, menu, item)
4444{
4445 if (item == -3)
4446 {
4447 ClanMenu(id);
4448 menu_destroy(menu);
4449 return 1;
4450 }
4451 new data[9];
4452 new name[64];
4453 new Key;
4454 new access;
4455 new callback;
4456 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4457 Key = str_to_num(data);
4458 user_name(Key);
4459
4460/* ERROR! Can't print expression: Heap */
4461 function "playerlistclan_handler" (number 104)
4462public Invitation(id, inviter)
4463{
4464 new szText[128];
4465 new String[32];
4466 user_name(inviter);
4467
4468/* ERROR! Can't print expression: Heap */
4469 function "Invitation" (number 105)
4470public invitation_handler(id, menu, item)
4471{
4472 if (item == -3)
4473 {
4474 GiftMenu(id);
4475 menu_destroy(menu);
4476 return 1;
4477 }
4478 new data[9];
4479 new name[64];
4480 new Key;
4481 new access;
4482 new callback;
4483 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4484 Key = str_to_num(data);
4485 switch (item)
4486 {
4487 case 0:
4488 {
4489 if (5 > clan_count[Key])
4490 {
4491 user_name(id);
4492
4493/* ERROR! Can't print expression: Heap */
4494 function "invitation_handler" (number 106)
4495public GiftItems(id)
4496{
4497 new szText[128];
4498 new String[32];
4499 new var1;
4500 if (get_pcvar_num(cvar_ShowTips))
4501 {
4502 var1 = 4151100;
4503 }
4504 else
4505 {
4506 var1 = 4151160;
4507 }
4508 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_GIFTCHOOSE", id, var1);
4509 new menu = menu_create(szText, "giftitems_handler", MaxClients);
4510 formatex(szText, cvar_SqlUser, "%L", id, "MENU_CHESTNKEYS");
4511 menu_additem(menu, szText, "-1", MaxClients, -1);
4512 formatex(szText, cvar_SqlUser, "%L\n\r------------------------", id, "GIFT_POINTS");
4513 menu_additem(menu, szText, "-2", MaxClients, -1);
4514 new i = 1;
4515 while (i < 31)
4516 {
4517 if (SkinExists[i])
4518 {
4519 formatex(String, 31, "%d", szWeaponId[i]);
4520 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
4521 menu_additem(menu, szText, String, MaxClients, -1);
4522 }
4523 i++;
4524 }
4525 menu_setprop(menu, 6, 1);
4526 menu_display(id, menu, MaxClients, -1);
4527 return 0;
4528}
4529
4530public giftitems_handler(id, menu, item)
4531{
4532 if (item == -3)
4533 {
4534 GiftMenu(id);
4535 menu_destroy(menu);
4536 return 1;
4537 }
4538 new data[9];
4539 new name[64];
4540 new Key;
4541 new access;
4542 new callback;
4543 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4544 Key = str_to_num(data);
4545 if (Key == -1)
4546 {
4547 CKList_Gift(id);
4548 menu_destroy(menu);
4549 return 1;
4550 }
4551 if (Key == -2)
4552 {
4553 giftitemtype[id] = 1;
4554 GiftMenu(id);
4555 menu_destroy(menu);
4556 return 1;
4557 }
4558 GiftSkin(id, Key);
4559 menu_destroy(menu);
4560 return 1;
4561}
4562
4563public CKList_Gift(id)
4564{
4565 new szText[128];
4566 new String[32];
4567 new var1;
4568 if (get_pcvar_num(cvar_ShowTips))
4569 {
4570 var1 = 4151752;
4571 }
4572 else
4573 {
4574 var1 = 4151796;
4575 }
4576 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CKLIST", id, var1);
4577 new menu = menu_create(szText, "cklistgift_handler", MaxClients);
4578 new i = 1;
4579 while (i <= 8)
4580 {
4581 formatex(String, 31, "%d", i);
4582 formatex(szText, cvar_SqlUser, "\w%s", szCKNames[i]);
4583 menu_additem(menu, szText, String, MaxClients, -1);
4584 i++;
4585 }
4586 menu_setprop(menu, 6, 1);
4587 menu_display(id, menu, MaxClients, -1);
4588 return 0;
4589}
4590
4591public cklistgift_handler(id, menu, item)
4592{
4593 if (item == -3)
4594 {
4595 GiftItems(id);
4596 menu_destroy(menu);
4597 return 1;
4598 }
4599 new data[9];
4600 new name[64];
4601 new Key;
4602 new access;
4603 new callback;
4604 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4605 Key = str_to_num(data);
4606 ckgift_item[id] = Key;
4607 giftitemtype[id] = 0;
4608 GiftMenu(id);
4609 menu_destroy(menu);
4610 return 1;
4611}
4612
4613public GiftSkin(id, wepid)
4614{
4615 new szText[256];
4616 new String[32];
4617 new count;
4618 new SkinName[128];
4619 new var1;
4620 if (get_pcvar_num(cvar_ShowTips))
4621 {
4622 var1 = 4152084;
4623 }
4624 else
4625 {
4626 var1 = 4152148;
4627 }
4628 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
4629 new menu = menu_create(szText, "giftskinmenu_handler", MaxClients);
4630 new i;
4631 while (i < AllWeapon)
4632 {
4633 new var2;
4634 if (wepid == Weapons[i] && UserSkins[i][id])
4635 {
4636 }
4637 else
4638 {
4639 count++;
4640 format_skin_name(SkinName, 128, i, 3);
4641 formatex(String, 31, "%d|%d", i, wepid);
4642 formatex(szText, 256, "%s \r[\w%d\r]", SkinName, UserSkins[i][id]);
4643 menu_additem(menu, szText, String, MaxClients, -1);
4644 }
4645 i++;
4646 }
4647 if (!count)
4648 {
4649 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
4650 GiftItems(id);
4651 }
4652 else
4653 {
4654 menu_setprop(menu, 6, 1);
4655 menu_display(id, menu, MaxClients, -1);
4656 }
4657 return 0;
4658}
4659
4660public giftskinmenu_handler(id, menu, item)
4661{
4662 if (item == -3)
4663 {
4664 GiftItems(id);
4665 menu_destroy(menu);
4666 return 1;
4667 }
4668 new data[9];
4669 new name[64];
4670 new Key;
4671 new access;
4672 new callback;
4673 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4674 new left[4];
4675 new right[4];
4676 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
4677 Key = str_to_num(left);
4678 new wpid = str_to_num(right);
4679 skingiftwep_id[id] = wpid;
4680 skingift_id[id] = Key;
4681 giftitemtype[id] = 1;
4682 gift_quantity[id] = 1;
4683 GiftMenu(id);
4684 menu_destroy(menu);
4685 return 1;
4686}
4687
4688public MarketMenu(id)
4689{
4690 new szText[128];
4691 new SkinName[128];
4692 new var1;
4693 if (get_pcvar_num(cvar_ShowTips))
4694 {
4695 var1 = 4152576;
4696 }
4697 else
4698 {
4699 var1 = 4152620;
4700 }
4701 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKET", id, var1);
4702 new menu = menu_create(szText, "marketmenu_handler", MaxClients);
4703 formatex(szText, cvar_SqlUser, "%L\n\r------------------", id, "MARKET_GOTO");
4704 menu_additem(menu, szText, 4152872, MaxClients, -1);
4705 if (itemtype[id])
4706 {
4707 new var2;
4708 if (SelectedItemMarket[id])
4709 {
4710 var2 = szCKNames[SelectedItemMarket[id]];
4711 }
4712 else
4713 {
4714 var2 = 4153052;
4715 }
4716 new var3;
4717 if (SelectedItemMarket[id])
4718 {
4719 var3 = 4152908;
4720 }
4721 else
4722 {
4723 var3 = 4152988;
4724 }
4725 formatex(szText, cvar_SqlUser, "%L \r%s", id, var3, var2);
4726 menu_additem(menu, szText, 4153056, MaxClients, -1);
4727 }
4728 else
4729 {
4730 format_skin_name(SkinName, 128, marketskinid[id], 3);
4731 new var4;
4732 if (marketskinid[id])
4733 {
4734 var4 = SkinName;
4735 }
4736 else
4737 {
4738 var4 = 4153228;
4739 }
4740 new var5;
4741 if (marketskinid[id])
4742 {
4743 var5 = 4153084;
4744 }
4745 else
4746 {
4747 var5 = 4153164;
4748 }
4749 formatex(szText, cvar_SqlUser, "%L %s", id, var5, var4);
4750 menu_additem(menu, szText, 4153232, MaxClients, -1);
4751 }
4752 if (itemtype[id])
4753 {
4754 new var6;
4755 if (SelectedTypeMarket[id])
4756 {
4757 var6 = 4153312;
4758 }
4759 else
4760 {
4761 var6 = 4153352;
4762 }
4763 formatex(szText, cvar_SqlUser, "%L: \r%L", id, "SHOP_TYPE", id, var6);
4764 menu_additem(menu, szText, 4153388, MaxClients, -1);
4765 formatex(szText, cvar_SqlUser, "%L: \r%d", id, "SHOP_QUANTITY", ckm_quantity[id]);
4766 menu_additem(menu, szText, 4153484, MaxClients, -1);
4767 formatex(szText, cvar_SqlUser, "%L: \r%d\n", id, "SHOP_PRICE", market_cost[id]);
4768 menu_additem(menu, szText, 4153572, MaxClients, -1);
4769 formatex(szText, cvar_SqlUser, "\y%L", id, "WORD_SELL");
4770 menu_additem(menu, szText, 4153636, MaxClients, -1);
4771 }
4772 else
4773 {
4774 if (marketskinid[id])
4775 {
4776 formatex(szText, cvar_SqlUser, "%L: \r%d\n", id, "SHOP_PRICE", market_cost[id]);
4777 menu_additem(menu, szText, 4153724, MaxClients, -1);
4778 formatex(szText, cvar_SqlUser, "\y%L", id, "WORD_SELL");
4779 menu_additem(menu, szText, 4153788, MaxClients, -1);
4780 }
4781 }
4782 menu_setprop(menu, 6, 1);
4783 menu_display(id, menu, MaxClients, -1);
4784 return 0;
4785}
4786
4787public marketmenu_handler(id, menu, item)
4788{
4789 if (item == -3)
4790 {
4791 MainMenu(id);
4792 menu_destroy(menu);
4793 return 1;
4794 }
4795 new SkinName[128];
4796 switch (item)
4797 {
4798 case 0:
4799 {
4800 Market(id);
4801 }
4802 case 1:
4803 {
4804 SellOnMarket(id);
4805 }
4806 case 2:
4807 {
4808 if (itemtype[id])
4809 {
4810 SelectedTypeMarket[id] = !SelectedTypeMarket[id];
4811 }
4812 else
4813 {
4814 client_cmd(id, "messagemode Cost");
4815 }
4816 MarketMenu(id);
4817 }
4818 case 3:
4819 {
4820 if (itemtype[id])
4821 {
4822 client_cmd(id, "messagemode QuantityM");
4823 }
4824 else
4825 {
4826 AddSkinToMarket(id);
4827 GetSkinData();
4828 UserSkins[marketskinid[id]][id]--;
4829 format_skin_name(SkinName, 128, marketskinid[id], 1);
4830 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "MARKET_PLACED", SkinName, market_cost[id]);
4831 user_name(id);
4832
4833/* ERROR! Can't print expression: Heap */
4834 function "marketmenu_handler" (number 114)
4835public SellOnMarket(id)
4836{
4837 new szText[128];
4838 new String[32];
4839 new var1;
4840 if (get_pcvar_num(cvar_ShowTips))
4841 {
4842 var1 = 4154692;
4843 }
4844 else
4845 {
4846 var1 = 4154752;
4847 }
4848 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKETCHOOSE", id, var1);
4849 new menu = menu_create(szText, "sellmarketmenu_handler", MaxClients);
4850 formatex(szText, cvar_SqlUser, "%L\n\r------------------------", id, "MENU_CHESTNKEYS");
4851 menu_additem(menu, szText, "-1", MaxClients, -1);
4852 new i = 1;
4853 while (i < 31)
4854 {
4855 if (SkinExists[i])
4856 {
4857 formatex(String, 31, "%d", szWeaponId[i]);
4858 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
4859 menu_additem(menu, szText, String, MaxClients, -1);
4860 }
4861 i++;
4862 }
4863 menu_setprop(menu, 6, 1);
4864 menu_display(id, menu, MaxClients, -1);
4865 return 0;
4866}
4867
4868public sellmarketmenu_handler(id, menu, item)
4869{
4870 if (item == -3)
4871 {
4872 MarketMenu(id);
4873 menu_destroy(menu);
4874 return 1;
4875 }
4876 new data[9];
4877 new name[64];
4878 new Key;
4879 new access;
4880 new callback;
4881 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
4882 Key = str_to_num(data);
4883 if (Key == -1)
4884 {
4885 CKList_Market(id);
4886 menu_destroy(menu);
4887 return 1;
4888 }
4889 itemtype[id] = 0;
4890 MarketSkin(id, Key);
4891 menu_destroy(menu);
4892 return 1;
4893}
4894
4895public RegisterMenu(id)
4896{
4897 if (isLogged[id])
4898 {
4899 MainMenu(id);
4900 return 1;
4901 }
4902 new szText[128];
4903 new var1;
4904 if (get_pcvar_num(cvar_ShowTips))
4905 {
4906 var1 = 4155300;
4907 }
4908 else
4909 {
4910 var1 = 4155352;
4911 }
4912 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "REGISTER_MENU", id, var1);
4913 new menu = menu_create(szText, "registermenu_handler", MaxClients);
4914 user_name(id);
4915
4916/* ERROR! Can't print expression: Heap */
4917 function "RegisterMenu" (number 117)
4918public registermenu_handler(id, menu, item)
4919{
4920 if (item == -3)
4921 {
4922 menu_destroy(menu);
4923 return 1;
4924 }
4925 switch (item)
4926 {
4927 case 0:
4928 {
4929 RegisterMenu(id);
4930 }
4931 case 1:
4932 {
4933 client_cmd(id, "messagemode EnterPassword");
4934 RegisterMenu(id);
4935 }
4936 case 2:
4937 {
4938 new name[33];
4939 get_user_name(id, name, 32);
4940 new var1;
4941 if (strlen(Password[id]) >= 2 && strlen(name) >= 2)
4942 {
4943 set_user_info(id, "gopw", Password[id]);
4944 client_cmd(id, "setinfo gopw %s", Password[id]);
4945 Skill[id] = 1120403456;
4946 isLogged[id] = 1;
4947 isRegistered[id] = 1;
4948 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REGISTER_SUCCESS");
4949 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4156208, MaxClients);
4950 sql_RegisterUser(id);
4951 set_task(1072064102, "UpdatePlayer", id, 4109032, MaxClients, 4109036, MaxClients);
4952 set_task(1069547520, "sql_RetrieveUserStats", id, 4109032, MaxClients, 4109036, MaxClients);
4953 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
4954 }
4955 else
4956 {
4957 if (2 > strlen(name))
4958 {
4959 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REGISTER_SHORTPW");
4960 RegisterMenu(id);
4961 }
4962 if (2 > strlen(Password[id]))
4963 {
4964 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "REGISTER_SHORTNAME");
4965 RegisterMenu(id);
4966 }
4967 }
4968 }
4969 default:
4970 {
4971 }
4972 }
4973 menu_destroy(menu);
4974 return 1;
4975}
4976
4977public LoginMenu(id)
4978{
4979 new szText[128];
4980 new TempPassword[64];
4981 if (get_pcvar_num(cvar_ShowPass))
4982 {
4983 new var2 = Password[id];
4984 TempPassword = var2;
4985 }
4986 else
4987 {
4988 new len = strlen(Password[id]);
4989 new i;
4990 while (i < len)
4991 {
4992 format(TempPassword, 63, "%s*", TempPassword);
4993 i++;
4994 }
4995 }
4996 formatex(szText, cvar_SqlUser, "%L %L", id, "PREFIX_HUD", id, "LOGIN_MENU");
4997 new menu = menu_create(szText, "loginmenu_handler", MaxClients);
4998 user_name(id);
4999
5000/* ERROR! Can't print expression: Heap */
5001 function "LoginMenu" (number 119)
5002public loginmenu_handler(id, menu, item)
5003{
5004 if (item == -3)
5005 {
5006 menu_destroy(menu);
5007 return 1;
5008 }
5009 switch (item)
5010 {
5011 case 0:
5012 {
5013 LoginMenu(id);
5014 }
5015 case 1:
5016 {
5017 client_cmd(id, "messagemode EnterPW");
5018 LoginMenu(id);
5019 }
5020 case 2:
5021 {
5022 if (equal(Password[id], sqlPassword[id], MaxClients))
5023 {
5024 isLogged[id] = 1;
5025 UpdatePlayer(id);
5026 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4157360, MaxClients);
5027 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_SUCCESS");
5028 sql_RetrieveUserItems(id);
5029 sql_RetrieveUserStats(id);
5030 sql_RetrieveUserSettings(id);
5031 sql_RetrieveUserMisc(id);
5032 set_task(1072064102, "GetClanData", id, 4109032, MaxClients, 4109036, MaxClients);
5033 set_task(1072064102, "SetSkin", id, 4109032, MaxClients, 4109036, MaxClients);
5034 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
5035 client_print(id, NULL_STRING, "%L", id, "DATA_LOADING");
5036 }
5037 else
5038 {
5039 LoginMenu(id);
5040 }
5041 }
5042 default:
5043 {
5044 }
5045 }
5046 menu_destroy(menu);
5047 return 1;
5048}
5049
5050public SetSkin(id)
5051{
5052 screenfade_grey(id);
5053 user_name(id);
5054
5055/* ERROR! Can't print expression: Heap */
5056 function "SetSkin" (number 121)
5057public ShopMenu(id)
5058{
5059 new szText[128];
5060 new String[32];
5061 new var1;
5062 if (get_pcvar_num(cvar_ShowTips))
5063 {
5064 var1 = 4157948;
5065 }
5066 else
5067 {
5068 var1 = 4157984;
5069 }
5070 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_SHOP", id, var1);
5071 new menu = menu_create(szText, "shopmenu_handler", MaxClients);
5072 new var2;
5073 if (SelectedItem[id])
5074 {
5075 var2 = szCKNames[SelectedItem[id]];
5076 }
5077 else
5078 {
5079 var2 = 4158160;
5080 }
5081 formatex(szText, cvar_SqlUser, "%L: \r%s", id, "SHOP_ITEM", var2);
5082 menu_additem(menu, szText, String, MaxClients, -1);
5083 new var3;
5084 if (!SelectedType[id])
5085 {
5086 var3 = 4158256;
5087 }
5088 else
5089 {
5090 var3 = 4158296;
5091 }
5092 formatex(szText, cvar_SqlUser, "%L: \r%L ", id, "SHOP_TYPE", id, var3);
5093 menu_additem(menu, szText, String, MaxClients, -1);
5094 formatex(szText, cvar_SqlUser, "%L: \r%d", id, "SHOP_QUANTITY", ck_quantity[id]);
5095 menu_additem(menu, szText, String, MaxClients, -1);
5096 new price;
5097 new totalprice;
5098 if (!SelectedType[id])
5099 {
5100 price = get_pcvar_num(cvar_CasePrice);
5101 totalprice = ck_quantity[id] * price;
5102 }
5103 else
5104 {
5105 price = get_pcvar_num(cvar_KeyPrice);
5106 totalprice = ck_quantity[id] * price;
5107 }
5108 formatex(szText, cvar_SqlUser, "%L: \r%d\n\r------------------", id, "SHOP_TOTALPRICE", totalprice);
5109 menu_additem(menu, szText, String, MaxClients, -1);
5110 formatex(szText, cvar_SqlUser, "%L", id, "SHOP_BUY");
5111 menu_additem(menu, szText, String, MaxClients, -1);
5112 menu_setprop(menu, 6, 1);
5113 menu_display(id, menu, MaxClients, -1);
5114 return 0;
5115}
5116
5117public shopmenu_handler(id, menu, item)
5118{
5119 if (item == -3)
5120 {
5121 MainMenu(id);
5122 menu_destroy(menu);
5123 return 1;
5124 }
5125 switch (item)
5126 {
5127 case 0:
5128 {
5129 CKList(id);
5130 }
5131 case 1:
5132 {
5133 SelectedType[id] = !SelectedType[id];
5134 ShopMenu(id);
5135 }
5136 case 2:
5137 {
5138 client_cmd(id, "messagemode Quantity");
5139 ShopMenu(id);
5140 }
5141 case 3:
5142 {
5143 ShopMenu(id);
5144 }
5145 case 4:
5146 {
5147 new price;
5148 new totalprice;
5149 if (!SelectedType[id])
5150 {
5151 price = get_pcvar_num(cvar_CasePrice);
5152 totalprice = ck_quantity[id] * price;
5153 }
5154 else
5155 {
5156 price = get_pcvar_num(cvar_KeyPrice);
5157 totalprice = ck_quantity[id] * price;
5158 }
5159 new var1;
5160 if (Points[id] >= totalprice && SelectedItem[id])
5161 {
5162 new var2;
5163 if (SelectedType[id])
5164 {
5165 var2 = 4158880;
5166 }
5167 else
5168 {
5169 var2 = 4158920;
5170 }
5171 client_print_color(id, MaxClients, "%L %L \x01%L.", id, "PREFIX_CHAT", id, "SHOP_BOUGHT", ck_quantity[id], szCKNames[SelectedItem[id]], id, var2);
5172 switch (SelectedType[id])
5173 {
5174 case 0:
5175 {
5176 new var4 = Cases[id][SelectedItem[id]];
5177 var4 = ck_quantity[id][var4];
5178 }
5179 case 1:
5180 {
5181 new var3 = Keys[id][SelectedItem[id]];
5182 var3 = ck_quantity[id][var3];
5183 }
5184 default:
5185 {
5186 }
5187 }
5188 Points[id] -= totalprice;
5189 UpdateStats(id);
5190 UpdateItems(id);
5191 }
5192 else
5193 {
5194 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NOT_ENOUGH_POINTS", totalprice - Points[id]);
5195 }
5196 ShopMenu(id);
5197 }
5198 default:
5199 {
5200 }
5201 }
5202 menu_destroy(menu);
5203 return 1;
5204}
5205
5206public CKList(id)
5207{
5208 new szText[128];
5209 new String[32];
5210 new var1;
5211 if (get_pcvar_num(cvar_ShowTips))
5212 {
5213 var1 = 4159232;
5214 }
5215 else
5216 {
5217 var1 = 4159276;
5218 }
5219 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CKLIST", id, var1);
5220 new menu = menu_create(szText, "cklist_handler", MaxClients);
5221 new i = 1;
5222 while (i <= 8)
5223 {
5224 formatex(String, 31, "%d", i);
5225 formatex(szText, cvar_SqlUser, "\w%s", szCKNames[i]);
5226 menu_additem(menu, szText, String, MaxClients, -1);
5227 i++;
5228 }
5229 menu_setprop(menu, 6, 1);
5230 menu_display(id, menu, MaxClients, -1);
5231 return 0;
5232}
5233
5234public cklist_handler(id, menu, item)
5235{
5236 if (item == -3)
5237 {
5238 ShopMenu(id);
5239 menu_destroy(menu);
5240 return 1;
5241 }
5242 new data[9];
5243 new name[64];
5244 new Key;
5245 new access;
5246 new callback;
5247 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5248 Key = str_to_num(data);
5249 SelectedItem[id] = Key;
5250 ShopMenu(id);
5251 menu_destroy(menu);
5252 return 1;
5253}
5254
5255public CKList_Market(id)
5256{
5257 new szText[128];
5258 new String[32];
5259 new var1;
5260 if (get_pcvar_num(cvar_ShowTips))
5261 {
5262 var1 = 4159524;
5263 }
5264 else
5265 {
5266 var1 = 4159568;
5267 }
5268 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CKLIST", id, var1);
5269 new menu = menu_create(szText, "cklistmarket_handler", MaxClients);
5270 new i = 1;
5271 while (i <= 8)
5272 {
5273 formatex(String, 31, "%d", i);
5274 formatex(szText, cvar_SqlUser, "\w%s", szCKNames[i]);
5275 menu_additem(menu, szText, String, MaxClients, -1);
5276 i++;
5277 }
5278 menu_setprop(menu, 6, 1);
5279 menu_display(id, menu, MaxClients, -1);
5280 return 0;
5281}
5282
5283public cklistmarket_handler(id, menu, item)
5284{
5285 if (item == -3)
5286 {
5287 SellOnMarket(id);
5288 menu_destroy(menu);
5289 return 1;
5290 }
5291 new data[9];
5292 new name[64];
5293 new Key;
5294 new access;
5295 new callback;
5296 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5297 Key = str_to_num(data);
5298 SelectedItemMarket[id] = Key;
5299 itemtype[id] = 1;
5300 MarketMenu(id);
5301 menu_destroy(menu);
5302 return 1;
5303}
5304
5305public InventoryMenu(id)
5306{
5307 new szText[128];
5308 new String[32];
5309 new var1;
5310 if (get_pcvar_num(cvar_ShowTips))
5311 {
5312 var1 = 4159852;
5313 }
5314 else
5315 {
5316 var1 = 4159908;
5317 }
5318 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_INVENTORY", id, var1);
5319 new menu = menu_create(szText, "inventorymenu_handler", MaxClients);
5320 formatex(szText, cvar_SqlUser, "%L", -1, "MENU_CHESTNKEYS");
5321 menu_additem(menu, szText, "-1", MaxClients, -1);
5322 formatex(szText, cvar_SqlUser, "%L\n\r------------------------", id, "MENU_GRAFFITI");
5323 menu_additem(menu, szText, "-2", MaxClients, -1);
5324 new i = 1;
5325 while (i < 31)
5326 {
5327 if (SkinExists[i])
5328 {
5329 formatex(String, 31, "%d", szWeaponId[i]);
5330 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
5331 menu_additem(menu, szText, String, MaxClients, -1);
5332 }
5333 i++;
5334 }
5335 menu_setprop(menu, 6, 1);
5336 menu_display(id, menu, MaxClients, -1);
5337 return 0;
5338}
5339
5340public inventorymenu_handler(id, menu, item)
5341{
5342 if (item == -3)
5343 {
5344 MainMenu(id);
5345 menu_destroy(menu);
5346 return 1;
5347 }
5348 new data[9];
5349 new name[64];
5350 new Key;
5351 new access;
5352 new callback;
5353 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5354 Key = str_to_num(data);
5355 if (Key == -1)
5356 {
5357 OpenCase(id);
5358 menu_destroy(menu);
5359 return 1;
5360 }
5361 if (Key == -2)
5362 {
5363 GraffitiMenu(id);
5364 menu_destroy(menu);
5365 return 1;
5366 }
5367 CertainSkinMenu(id, item, Key);
5368 menu_destroy(menu);
5369 return 1;
5370}
5371
5372public Market(id)
5373{
5374 new szText[128];
5375 new String[32];
5376 new var1;
5377 if (get_pcvar_num(cvar_ShowTips))
5378 {
5379 var1 = 4160524;
5380 }
5381 else
5382 {
5383 var1 = 4160576;
5384 }
5385 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKET", id, var1);
5386 new menu = menu_create(szText, "gomarketmenu_handler", MaxClients);
5387 formatex(szText, cvar_SqlUser, "%L [%d]\n\r------------------------", id, "MENU_CHESTNKEYS", marketckcount);
5388 menu_additem(menu, szText, "-1", MaxClients, -1);
5389 new i = 1;
5390 while (i < 31)
5391 {
5392 if (SkinExists[i])
5393 {
5394 formatex(String, 31, "%d", szWeaponId[i]);
5395 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
5396 menu_additem(menu, szText, String, MaxClients, -1);
5397 }
5398 i++;
5399 }
5400 menu_setprop(menu, 6, 1);
5401 menu_display(id, menu, MaxClients, -1);
5402 return 0;
5403}
5404
5405public gomarketmenu_handler(id, menu, item)
5406{
5407 if (item == -3)
5408 {
5409 MarketMenu(id);
5410 menu_destroy(menu);
5411 return 1;
5412 }
5413 new data[9];
5414 new name[64];
5415 new Key;
5416 new access;
5417 new callback;
5418 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5419 Key = str_to_num(data);
5420 if (Key == -1)
5421 {
5422 if (marketckcount)
5423 {
5424 MarketCKMenu(id);
5425 }
5426 else
5427 {
5428 Market(id);
5429 }
5430 menu_destroy(menu);
5431 return 1;
5432 }
5433 MarketCertainSkin(id, Key);
5434 menu_destroy(menu);
5435 return 1;
5436}
5437
5438public MarketCKMenu(id)
5439{
5440 new szText[128];
5441 new String[32];
5442 new var1;
5443 if (get_pcvar_num(cvar_ShowTips))
5444 {
5445 var1 = 4161128;
5446 }
5447 else
5448 {
5449 var1 = 4161180;
5450 }
5451 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_MARKET", id, var1);
5452 new menu = menu_create(szText, "gockmarketmenu_handler", MaxClients);
5453 new i = 1;
5454 while (i < 1028)
5455 {
5456 new var2;
5457 if (marketcases[i] > 0 && marketquantity[i] > 0)
5458 {
5459 formatex(String, 31, "%d|1*%d", i, marketcases[i]);
5460 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]);
5461 menu_additem(menu, szText, String, MaxClients, -1);
5462 }
5463 else
5464 {
5465 new var3;
5466 if (marketkeys[i] > 0 && marketquantity[i] > 0)
5467 {
5468 formatex(String, 31, "%d|0*%d", i, marketkeys[i]);
5469 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]);
5470 menu_additem(menu, szText, String, MaxClients, -1);
5471 }
5472 }
5473 i++;
5474 }
5475 menu_setprop(menu, 6, 1);
5476 menu_display(id, menu, MaxClients, -1);
5477 return 0;
5478}
5479
5480public gockmarketmenu_handler(id, menu, item)
5481{
5482 if (item == -3)
5483 {
5484 Market(id);
5485 menu_destroy(menu);
5486 return 1;
5487 }
5488 new data[9];
5489 new name[64];
5490 new Key;
5491 new access;
5492 new callback;
5493 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5494 new left[4];
5495 new right[4];
5496 new left2[4];
5497 new right2[4];
5498 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
5499 strtok2(right, left2, 3, right2, 3, 42, MaxClients);
5500 Key = str_to_num(left);
5501 new type = str_to_num(left2);
5502 new ckid = str_to_num(right2);
5503 if (marketckprice[Key] <= Points[id])
5504 {
5505 marketckcount -= 1;
5506 Points[id] -= marketckprice[Key];
5507 new var1;
5508 if (type)
5509 {
5510 var1 = 4161868;
5511 }
5512 else
5513 {
5514 var1 = 4161904;
5515 }
5516 new var2;
5517 if (type)
5518 {
5519 var2 = szCKNames[marketcases[Key]];
5520 }
5521 else
5522 {
5523 var2 = szCKNames[marketkeys[Key]];
5524 }
5525 client_print(id, 3, "%L %L", id, "PREFIX_CHAT", id, "BOUGHT_CK", var2, id, var1, marketckprice[Key]);
5526 marketquantity[Key]--;
5527 switch (type)
5528 {
5529 case 0:
5530 {
5531 Cases[id][ckid]++;
5532 }
5533 case 1:
5534 {
5535 Keys[id][ckid]++;
5536 }
5537 default:
5538 {
5539 }
5540 }
5541 new seller = find_player(4161944, marketseller[Key]);
5542 if (seller)
5543 {
5544 new var3;
5545 if (type)
5546 {
5547 var3 = 4162096;
5548 }
5549 else
5550 {
5551 var3 = 4162144;
5552 }
5553 new var4;
5554 if (type)
5555 {
5556 var4 = szCKNames[marketcases[Key]];
5557 }
5558 else
5559 {
5560 var4 = szCKNames[marketkeys[Key]];
5561 }
5562 user_name(id);
5563
5564/* ERROR! Can't print expression: Heap */
5565 function "gockmarketmenu_handler" (number 133)
5566public OpenCase(id)
5567{
5568 new szText[128];
5569 new String[32];
5570 new var1;
5571 if (get_pcvar_num(cvar_ShowTips))
5572 {
5573 var1 = 4162472;
5574 }
5575 else
5576 {
5577 var1 = 4162524;
5578 }
5579 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_CHESTNKEYS", id, var1);
5580 new menu = menu_create(szText, "opencase_handler", MaxClients);
5581 new i = 1;
5582 while (i <= 8)
5583 {
5584 formatex(String, 31, "%d", i);
5585 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]);
5586 menu_additem(menu, szText, String, MaxClients, -1);
5587 i++;
5588 }
5589 menu_setprop(menu, 6, 1);
5590 menu_display(id, menu, MaxClients, -1);
5591 return 0;
5592}
5593
5594public opencase_handler(id, menu, item)
5595{
5596 if (item == -3)
5597 {
5598 InventoryMenu(id);
5599 menu_destroy(menu);
5600 return 1;
5601 }
5602 new data[9];
5603 new name[64];
5604 new Key;
5605 new access;
5606 new callback;
5607 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5608 Key = str_to_num(data);
5609 new SkinName[128];
5610 new SkinName2[128];
5611 new var1;
5612 if (Cases[id][Key] > 0 && Keys[id][Key] > 0)
5613 {
5614 new skind;
5615 new rand;
5616 new chanceItem = random_item("\x01\x04\x0F#-", 5);
5617 rand = random_num(1, chestSkins[Key][Odds[chanceItem]]);
5618 skind = chestsList[Key][Odds[chanceItem]][rand];
5619 Cases[id][Key]--;
5620 Keys[id][Key]--;
5621 client_cmd(id, "spk %s", g_szSoundFileCO);
5622 format_skin_name(SkinName, 128, skind, 1);
5623 format_skin_name(SkinName2, 128, skind, 2);
5624 switch (chanceItem)
5625 {
5626 case 0:
5627 {
5628 set_dhudmessage(255, 215, MaxClients, -1082130432, 1058642330, 1, 1086324736, 1065353216, 1036831949, 1069547520);
5629 show_dhudmessage(id, "%s", SkinName2);
5630 screenfade(id, 255, 215, 0);
5631 user_name(id);
5632
5633/* ERROR! Can't print expression: Heap */
5634 function "opencase_handler" (number 135)
5635public PreviewMenu(id)
5636{
5637 new szText[128];
5638 new String[32];
5639 new var1;
5640 if (get_pcvar_num(cvar_ShowTips))
5641 {
5642 var1 = 4163652;
5643 }
5644 else
5645 {
5646 var1 = 4163708;
5647 }
5648 formatex(szText, cvar_SqlUser, "%L %L%L", id, "PREFIX_HUD", id, "MENU_PREVIEW", id, var1);
5649 new menu = menu_create(szText, "previewmenu_handler", MaxClients);
5650 new i = 1;
5651 while (i < 31)
5652 {
5653 if (SkinExists[i])
5654 {
5655 formatex(String, 31, "%d", szWeaponId[i]);
5656 formatex(szText, cvar_SqlUser, "\r%s \w%L", szWeaponNames[i], id, "WORD_SKINS");
5657 menu_additem(menu, szText, String, MaxClients, -1);
5658 }
5659 i++;
5660 }
5661 menu_setprop(menu, 6, 1);
5662 menu_display(id, menu, MaxClients, -1);
5663 return 0;
5664}
5665
5666public previewmenu_handler(id, menu, item)
5667{
5668 if (item == -3)
5669 {
5670 MainMenu(id);
5671 menu_destroy(menu);
5672 return 1;
5673 }
5674 new data[9];
5675 new name[64];
5676 new Key;
5677 new access;
5678 new callback;
5679 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5680 Key = str_to_num(data);
5681 CertainSkinPreview(id, item, Key);
5682 menu_destroy(menu);
5683 return 1;
5684}
5685
5686public MarketSkin(id, wepid)
5687{
5688 new szText[256];
5689 new String[32];
5690 new count;
5691 new SkinName[128];
5692 new var1;
5693 if (get_pcvar_num(cvar_ShowTips))
5694 {
5695 var1 = 4164064;
5696 }
5697 else
5698 {
5699 var1 = 4164124;
5700 }
5701 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
5702 new menu = menu_create(szText, "marketskinmenu_handler", MaxClients);
5703 new i;
5704 while (i < AllWeapon)
5705 {
5706 new var2;
5707 if (wepid == Weapons[i] && UserSkins[i][id])
5708 {
5709 }
5710 else
5711 {
5712 count++;
5713 format_skin_name(SkinName, 128, i, 3);
5714 formatex(String, 31, "%d|%d", i, wepid);
5715 formatex(szText, 256, "%s \r[\w%d\r]", SkinName, UserSkins[i][id]);
5716 menu_additem(menu, szText, String, MaxClients, -1);
5717 }
5718 i++;
5719 }
5720 if (!count)
5721 {
5722 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
5723 SellOnMarket(id);
5724 }
5725 else
5726 {
5727 menu_setprop(menu, 6, 1);
5728 menu_display(id, menu, MaxClients, -1);
5729 }
5730 return 0;
5731}
5732
5733public marketskinmenu_handler(id, menu, item)
5734{
5735 if (item == -3)
5736 {
5737 SellOnMarket(id);
5738 menu_destroy(menu);
5739 return 1;
5740 }
5741 new data[9];
5742 new name[64];
5743 new Key;
5744 new access;
5745 new callback;
5746 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5747 new left[4];
5748 new right[4];
5749 strtok2(data, left, 3, right, 3, cvar_SqlHost, MaxClients);
5750 Key = str_to_num(left);
5751 new wpid = str_to_num(right);
5752 marketwepid[id] = wpid;
5753 marketskinid[id] = Key;
5754 MarketMenu(id);
5755 menu_destroy(menu);
5756 return 1;
5757}
5758
5759public MarketCertainSkin(id, wepid)
5760{
5761 new szText[256];
5762 new String[32];
5763 new szName[64];
5764 new count;
5765 new SkinName[128];
5766 user_name(id);
5767 new var1;
5768 if (get_pcvar_num(cvar_ShowTips))
5769 {
5770 var1 = 4164584;
5771 }
5772 else
5773 {
5774 var1 = 4164632;
5775 }
5776 formatex(szText, 256, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_SELECTSKIN", id, var1);
5777 new menu = menu_create(szText, "marketcskinmenu_handler", MaxClients);
5778 new i;
5779 while (i < 1028)
5780 {
5781 new var2;
5782 if (wepid == marketwep[i] && !marketskin[i])
5783 {
5784 }
5785 else
5786 {
5787 count++;
5788 format_skin_name(SkinName, 128, marketskin[i], 3);
5789 formatex(String, 31, "%d", i);
5790 if (equal(szName, marketskinseller[i], MaxClients))
5791 {
5792 formatex(szText, 256, "%s - %d %L", SkinName, marketskinprice[i], id, "MARKET_WITHDRAW");
5793 }
5794 else
5795 {
5796 formatex(szText, 256, "%s - %d \y| \r%s", SkinName, marketskinprice[i], marketskinseller[i]);
5797 }
5798 menu_additem(menu, szText, String, MaxClients, -1);
5799 }
5800 i++;
5801 }
5802 if (!count)
5803 {
5804 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINSINMARKET", szWepNames[wepid]);
5805 Market(id);
5806 }
5807 else
5808 {
5809 menu_setprop(menu, 6, 1);
5810 menu_display(id, menu, MaxClients, -1);
5811 }
5812 return 0;
5813}
5814
5815public marketcskinmenu_handler(id, menu, item)
5816{
5817 if (item == -3)
5818 {
5819 Market(id);
5820 menu_destroy(menu);
5821 return 1;
5822 }
5823 new data[9];
5824 new name[64];
5825 new Key;
5826 new access;
5827 new callback;
5828 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5829 Key = str_to_num(data);
5830 new szName[64];
5831 user_name(id);
5832 new SkinName[128];
5833 format_skin_name(SkinName, 128, marketskin[Key], 1);
5834 if (equal(szName, marketskinseller[Key], MaxClients))
5835 {
5836 UserSkins[marketskin[Key]][id]++;
5837 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_WITHDRAW", SkinName);
5838 DeleteFromMarket(marketidskin[Key]);
5839 UpdateItems(id);
5840 GetSkinData();
5841 MarketMenu(id);
5842 marketskin[Key] = 0;
5843 }
5844 else
5845 {
5846 if (marketskinprice[Key] <= Points[id])
5847 {
5848 UserSkins[marketskin[Key]][id]++;
5849 Points[id] -= marketskinprice[Key];
5850 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "BOUGHT_SKIN", SkinName, marketskinprice[Key]);
5851 UpdateItems(id);
5852 UpdateStats(id);
5853 MarketMenu(id);
5854 new seller = find_player(4165336, marketskinseller[Key]);
5855 if (seller)
5856 {
5857 user_name(id);
5858
5859/* ERROR! Can't print expression: Heap */
5860 function "marketcskinmenu_handler" (number 141)
5861public CertainSkinPreview(id, weaponid, wepid)
5862{
5863 new szText[512];
5864 new String[32];
5865 new SkinName[128];
5866 new var1;
5867 if (get_pcvar_num(cvar_ShowTips))
5868 {
5869 var1 = 4165760;
5870 }
5871 else
5872 {
5873 var1 = 4165808;
5874 }
5875 formatex(szText, 512, "%L \w%L%L", id, "PREFIX_HUD", id, "MENU_PREVIEW", id, var1);
5876 new menu = menu_create(szText, "certainpreviewmenu_handler", MaxClients);
5877 new i;
5878 while (i < AllWeapon)
5879 {
5880 if (!(wepid != Weapons[i]))
5881 {
5882 format_skin_name(SkinName, 128, i, 3);
5883 formatex(String, 31, "%d*%d|%d*%d", weaponid, i, wepid, wepid);
5884 if (WeaponCase[i])
5885 {
5886 formatex(szText, 512, "%s \y[\r%s \w%L\y]", SkinName, szCKNames[WeaponCase[i]], id, "WORD_CASE");
5887 }
5888 else
5889 {
5890 formatex(szText, 512, "%s \y[\r%L\y]", SkinName, id, "WORD_CRAFT");
5891 }
5892 menu_additem(menu, szText, String, MaxClients, -1);
5893 }
5894 i++;
5895 }
5896 menu_setprop(menu, 6, 1);
5897 menu_display(id, menu, MaxClients, -1);
5898 return 0;
5899}
5900
5901public certainpreviewmenu_handler(id, menu, item)
5902{
5903 if (item == -3)
5904 {
5905 PreviewMenu(id);
5906 menu_destroy(menu);
5907 return 1;
5908 }
5909 new data[9];
5910 new name[64];
5911 new Key;
5912 new access;
5913 new callback;
5914 menu_item_getinfo(menu, item, access, data, NULL_VECTOR, name, 63, callback);
5915 new left[9];
5916 new right[9];
5917 new left2[9];
5918 new right2[9];
5919 new left3[9];
5920 new right3[9];
5921 strtok2(data, left, NULL_VECTOR, right, NULL_VECTOR, cvar_SqlHost, MaxClients);
5922 strtok2(left, left2, NULL_VECTOR, right2, NULL_VECTOR, 42, MaxClients);
5923 strtok2(right, left3, NULL_VECTOR, right3, NULL_VECTOR, 42, MaxClients);
5924 Key = str_to_num(right2);
5925 new wpnid = str_to_num(left3);
5926 new wp = str_to_num(left2);
5927 set_pev(id, 144, WeaponMdls[Key]);
5928 new Float:timer = get_pcvar_float(cvar_ReviewTime);
5929 replace_all(SkinNames[Key], 300, "\r", 4166224);
5930 replace_all(SkinNames[Key], 300, "\w", 4166240);
5931 client_print(id, NULL_STRING, "%L", id, "SKIN_REVIEWING", SkinNames[Key], timer);
5932 set_task(timer, "reset_hand_skin", id, 4109032, MaxClients, 4109036, MaxClients);
5933 CertainSkinPreview(id, wp, wpnid);
5934 menu_destroy(menu);
5935 return 1;
5936}
5937
5938public reset_hand_skin(id)
5939{
5940 new wpid = get_user_weapon(id, 0, 0);
5941 new var1;
5942 if (is_user_alive(id) && !g_bUsingGuns[id][Weapons[wpid]])
5943 {
5944 set_pev(id, 144, V_MODELS[wpid]);
5945 }
5946 else
5947 {
5948 if (g_bUsingGuns[id][Weapons[wpid]])
5949 {
5950 set_pev(id, 144, WeaponMdls[g_bUsingGuns[id][wpid]]);
5951 }
5952 }
5953 return 0;
5954}
5955
5956public CertainSkinMenu(id, weaponid, wepid)
5957{
5958 new szText[128];
5959 new String[32];
5960 new count;
5961 new SkinName[128];
5962 new OddsName[32];
5963 new var1;
5964 if (get_pcvar_num(cvar_ShowTips))
5965 {
5966 var1 = 4166528;
5967 }
5968 else
5969 {
5970 var1 = 4166568;
5971 }
5972 formatex(szText, cvar_SqlUser, "%L \r%s \w%L%L", id, "PREFIX_HUD", szWeaponNames[wepid], id, "WORD_SKINS", id, var1);
5973 new menu = menu_create(szText, "certainskinmenu_handler", MaxClients);
5974 new i;
5975 while (i <= AllWeapon)
5976 {
5977 new var2;
5978 if (wepid == Weapons[i] && UserSkins[i][id] < 1)
5979 {
5980 }
5981 else
5982 {
5983 count++;
5984 switch (SkinRarity[i])
5985 {
5986 case 1:
5987 {
5988 OddsName = {91,65,43,93,0};
5989 }
5990 case 4:
5991 {
5992 OddsName = {91,65,93,0};
5993 }
5994 case 15:
5995 {
5996 OddsName = {91,66,43,93,0};
5997 }
5998 case 35:
5999 {
6000 OddsName = {91,66,93,0};
6001 }
6002 case 45:
6003 {
6004 OddsName = {91,67,93,0};
6005 }
6006 default:
6007 {
6008 }
6009 }
6010 format_skin_name(SkinName, 128, i, 3);
6011 formatex(String, 31, "%d|%d/%d", weaponid, i, wepid);
6012 new var3;
6013 if (i == g_bUsingGuns[id][Weapons[i]])
6014 {
6015 var3 = 4166900;
6016 }
6017 else
6018 {
6019 var3 = 4166948;
6020 }
6021 formatex(szText, cvar_SqlUser, "%s [\r%d\w] \y%s %L", SkinName, UserSkins[i][id], OddsName, id, var3);
6022 menu_additem(menu, szText, String, MaxClients, -1);
6023 }
6024 i++;
6025 }
6026 if (!count)
6027 {
6028 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NO_SKINS", szWepNames[wepid]);
6029 InventoryMenu(id);
6030 }
6031 else
6032 {
6033 menu_setprop(menu, 6, 1);
6034 menu_display(id, menu, MaxClients, -1);
6035 }
6036 return 0;
6037}
6038
6039public certainskinmenu_handler(id, menu, item)
6040{
6041 if (item == -3)
6042 {
6043 InventoryMenu(id);
6044 menu_destroy(menu);
6045 return 1;
6046 }
6047 new data[11];
6048 new name[64];
6049 new Key;
6050 new access;
6051 new callback;
6052 menu_item_getinfo(menu, item, access, data, 10, name, 63, callback);
6053 new left[4];
6054 new right[10];
6055 new left2[6];
6056 new right2[6];
6057 strtok2(data, left, 3, right, 9, cvar_SqlHost, MaxClients);
6058 strtok2(right, left2, 5, right2, 5, 47, MaxClients);
6059 new wp = str_to_num(left);
6060 Key = str_to_num(left2);
6061 new wpnid = str_to_num(right2);
6062 if (Key != g_bUsingGuns[id][wpnid])
6063 {
6064 g_bUsingGuns[id][wpnid] = Key;
6065 if (wpnid == get_user_weapon(id, 0, 0))
6066 {
6067 set_pev(id, 144, WeaponMdls[Key]);
6068 if (5 < strlen(WeaponMdlsP[g_bUsingGuns[id][wpnid]]))
6069 {
6070 set_pev(id, 71, Price[g_bUsingGuns[id][wpnid]]);
6071 set_pev(id, 143, WeaponMdlsP[g_bUsingGuns[id][wpnid]]);
6072 }
6073 }
6074 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_EQUIPED", SkinNames[g_bUsingGuns[id][wpnid]], szWepNames[Weapons[g_bUsingGuns[id][wpnid]]]);
6075 }
6076 else
6077 {
6078 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "SKIN_UNEQUIPED", SkinNames[g_bUsingGuns[id][wpnid]], szWepNames[Weapons[g_bUsingGuns[id][wpnid]]]);
6079 g_bUsingGuns[id][wpnid] = 0;
6080 if (wpnid == get_user_weapon(id, 0, 0))
6081 {
6082 set_pev(id, 144, V_MODELS[wpnid]);
6083 new p_skin[128];
6084 formatex(p_skin, cvar_SqlUser, "%s", V_MODELS[wpnid]);
6085 replace_all(p_skin, 127, "v_", "p_");
6086 set_pev(id, 143, p_skin);
6087 }
6088 }
6089 UpdateItems(id);
6090 CertainSkinMenu(id, wp, wpnid);
6091 menu_destroy(menu);
6092 return 1;
6093}
6094
6095public col_changer(msg_id, msg_dest, rcvr)
6096{
6097 new str2[26];
6098 get_msg_arg_string(2, str2, 25);
6099 if (equal(str2, "#Cstrike_Chat", 13))
6100 {
6101 new str3[22];
6102 get_msg_arg_string(3, str3, 21);
6103 if (!strlen(str3))
6104 {
6105 new str4[101];
6106 get_msg_arg_string(NULL_STRING, str4, 100);
6107 new sndr = get_msg_arg_int(1);
6108 decl bool:is_team_msg;
6109 is_team_msg = !equal(str2, "#Cstrike_Chat_All", 17);
6110 new sndr_team = get_user_team(sndr, {0}, MaxClients);
6111 decl bool:is_sndr_spec;
6112 is_sndr_spec = !0 < sndr_team < 3;
6113 decl bool:same_as_last;
6114 new var1;
6115 same_as_last = sndr == alv_sndr && equal(alv_str2, str2, MaxClients) && equal(alv_str4, str4, MaxClients);
6116 if (!same_as_last)
6117 {
6118 new allchat = clamp(get_pcvar_num(p_allchat), MaxClients, 2);
6119 new var3;
6120 if (allchat == 2 || (allchat == 1 && clamp(get_pcvar_num(p_alltalk), MaxClients, 1) == 1))
6121 {
6122 new var6;
6123 if (is_team_msg && (is_sndr_spec || (is_team_msg && get_pcvar_num(p_teamchat))))
6124 {
6125 new flags[5];
6126 new team[10];
6127 if (is_user_alive(sndr))
6128 {
6129 flags = {98,99,104,0};
6130 }
6131 else
6132 {
6133 flags = {97,99,104,0};
6134 }
6135 if (is_team_msg)
6136 {
6137 add(flags[strlen(flags)], NULL_STRING, 4167532, MaxClients);
6138 if (sndr_team == 1)
6139 {
6140 team = {84,69,82,82,79,82,73,83,84,0};
6141 }
6142 team = {67,84,0};
6143 }
6144 new players[32];
6145 new num;
6146 get_players(players, num, flags, team);
6147 buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
6148 new i;
6149 while (i < num)
6150 {
6151 message_begin(1, get_user_msgid("SayText"), 4123124, players[i]);
6152 write_byte(sndr);
6153 write_string(msg);
6154 message_end();
6155 i++;
6156 }
6157 }
6158 alv_sndr = sndr;
6159 if (task_exists(411, MaxClients))
6160 {
6161 remove_task(411, MaxClients);
6162 }
6163 set_task(1036831949, "task_clear_antiloop_vars", 411, 4109032, MaxClients, 4109036, MaxClients);
6164 }
6165 }
6166 if (is_user_connected(sndr))
6167 {
6168 if (!same_as_last)
6169 {
6170 buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
6171 }
6172 set_msg_arg_string(2, msg);
6173 set_msg_arg_string(NULL_STRING, 4167724);
6174 }
6175 }
6176 }
6177 return 0;
6178}
6179
6180public buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[])
6181{
6182 new sndr_name[33];
6183 new szMsg[128];
6184 get_user_name(sndr, sndr_name, 32);
6185 new chatrank = get_pcvar_num(cvar_ChatRank);
6186 new vipFlag[32];
6187 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6188 decl hasTag;
6189 new var1;
6190 if (strlen(ChatTag[sndr]) > 2)
6191 {
6192 var1 = 1;
6193 }
6194 else
6195 {
6196 var1 = 0;
6197 }
6198 hasTag = var1;
6199 decl hasClan;
6200 new var2;
6201 if (strlen(clan_name[sndr]) > 1)
6202 {
6203 var2 = 1;
6204 }
6205 else
6206 {
6207 var2 = 0;
6208 }
6209 hasClan = var2;
6210 new prefix[256] = {1,0};
6211 if (!(get_pcvar_num(p_hidestat)))
6212 {
6213 if (is_sndr_spec)
6214 {
6215 prefix = {1,42,83,80,69,67,42,32,0};
6216 }
6217 if (!is_user_alive(sndr))
6218 {
6219 prefix = {1,42,68,69,65,68,42,32,0};
6220 }
6221 }
6222 if (is_team_msg)
6223 {
6224 if (is_sndr_spec)
6225 {
6226 prefix = {1,40,83,112,101,99,116,97,116,111,114,41,32,0};
6227 }
6228 if (sndr_team == 1)
6229 {
6230 add(prefix[strlen(prefix) - 1], 29, "\x01(Terrorist) ", MaxClients);
6231 }
6232 if (sndr_team == 2)
6233 {
6234 add(prefix[strlen(prefix) - 1], 29, "\x01(Counter-Terrorist) ", MaxClients);
6235 }
6236 }
6237 if (isLogged[sndr])
6238 {
6239 if (hasTag)
6240 {
6241 new var3;
6242 if (hasClan)
6243 {
6244 var3 = clan_name[sndr];
6245 }
6246 else
6247 {
6248 var3 = 4168104;
6249 }
6250 new var4;
6251 if (hasClan)
6252 {
6253 var4 = 4168092;
6254 }
6255 else
6256 {
6257 var4 = 4168100;
6258 }
6259 format(szMsg, 127, "\x01[\x04%s\x01] [\x03%s\x01]%s\x01%s ", Ranks[Rank[sndr]], ChatTag[sndr], var4, var3);
6260 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6261 }
6262 else
6263 {
6264 new var5;
6265 if (hasClan)
6266 {
6267 var5 = clan_name[sndr];
6268 }
6269 else
6270 {
6271 var5 = 4168176;
6272 }
6273 new var6;
6274 if (hasClan)
6275 {
6276 var6 = 4168164;
6277 }
6278 else
6279 {
6280 var6 = 4168172;
6281 }
6282 format(szMsg, 127, "\x01[\x04%s\x01]%s\x01%s ", Ranks[Rank[sndr]], var6, var5);
6283 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6284 }
6285 }
6286 else
6287 {
6288 format(szMsg, 127, "\x01[\x04%L\x01] ", -1, "NOT_LOGGED");
6289 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6290 }
6291 new var7;
6292 if (has_all_flags(sndr, vipFlag) && get_pcvar_num(cvar_VipChatColor))
6293 {
6294 new var8;
6295 if (strlen(prefix) > 1)
6296 {
6297 var8 = prefix;
6298 }
6299 else
6300 {
6301 var8 = 4168316;
6302 }
6303 format(msg, 512, "%s%s%s \x01: \x04%s", var8, COLCHAR[namecol], sndr_name, str4);
6304 }
6305 else
6306 {
6307 new var9;
6308 if (strlen(prefix) > 1)
6309 {
6310 var9 = prefix;
6311 }
6312 else
6313 {
6314 var9 = 4168376;
6315 }
6316 format(msg, 512, "%s%s%s \x01: \x01%s", var9, COLCHAR[namecol], sndr_name, str4);
6317 }
6318 return 1;
6319}
6320
6321public task_clear_antiloop_vars()
6322{
6323 alv_sndr = 0;
6324 return 1;
6325}
6326
6327public Debug(id)
6328{
6329 new szKText[256];
6330 formatex(szKText, 256, "\n%L", id, "KILL_COUNTER", Kills[id] % get_pcvar_num(cvar_KillsRequired), get_pcvar_num(cvar_KillsRequired));
6331 client_print_color(id, MaxClients, "%s", szKText);
6332 return 1;
6333}
6334
6335public Reminder(id)
6336{
6337 client_print_color(id, -2, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_REMINDER");
6338 return 0;
6339}
6340
6341public Event_DeathMsg()
6342{
6343 new iKiller = read_data(1);
6344 new iVictim = read_data(2);
6345 removeEntity(iVictim);
6346 new var1;
6347 if (iVictim != iKiller && !isLogged[iKiller])
6348 {
6349 return 1;
6350 }
6351 g_iEnemiesKilled[iKiller]++;
6352 Kills[iKiller]++;
6353 new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
6354 if (get_pcvar_num(cvar_KeyForKills))
6355 {
6356 new kfk = get_pcvar_num(cvar_KillsRequired);
6357 if (Kills[iKiller] % kfk)
6358 {
6359 }
6360 else
6361 {
6362 new rkey = random_num(1, NULL_VECTOR);
6363 Keys[iKiller][rkey]++;
6364 client_print_color(iKiller, MaxClients, "%L %L", iKiller, "PREFIX_CHAT", iKiller, "KEY_FOR_KILLS", szCKNames[rkey]);
6365 }
6366 }
6367 if (1 < strlen(DeathNote[iKiller]))
6368 {
6369 set_dhudmessage(255, 255, 255, -1082130432, 1049247089, 1, 1086324736, 1077936128, 1036831949, 1069547520);
6370 show_dhudmessage(iVictim, "%s", DeathNote[iKiller]);
6371 }
6372 if (CalibrationKills > Kills[iKiller])
6373 {
6374 Rank[iKiller] = 0;
6375 }
6376 new Float:diff = 0.0;
6377 new Float:total = 0.0;
6378 if (!isLogged[iVictim])
6379 {
6380 diff = 100.0;
6381 }
6382 else
6383 {
6384 diff = Skill[iVictim];
6385 }
6386 new Float:delta = floatdiv(1065353216, floatadd(1065353216, floatpower(1092616192, floatdiv(floatsub(Skill[iKiller], diff), 1120403456))));
6387 new Float:koeff = 0.0;
6388 if (CalibrationKills > Kills[iKiller])
6389 {
6390 koeff = 2.0;
6391 total = floatmul(koeff, delta);
6392 new var7 = Skill[iKiller];
6393 var7 = floatadd(var7, total);
6394 new var8 = Skill[iVictim];
6395 var8 = floatsub(var8, total);
6396 user_name(iVictim);
6397
6398/* ERROR! Can't print expression: Heap */
6399 function "Event_DeathMsg" (number 152)
6400public Event_NewRound()
6401{
6402 RoundStarted = false;
6403 Rounds += 1;
6404 new counter = get_pcvar_num(cvar_RemoveGraffiti);
6405 mvpShown = false;
6406 g_iBombPlanter = 9191;
6407 g_iBombDefuser = 1919;
6408 g_bBombExploded = false;
6409 arrayset(g_iEnemiesHS, MaxClients, 33);
6410 arrayset(g_iEnemiesKilled, MaxClients, 33);
6411 arrayset(graffitiCooldown, MaxClients, 33);
6412 if (!(Rounds % counter))
6413 {
6414 removeGraffiti();
6415 }
6416 return 0;
6417}
6418
6419public logevent_round_start()
6420{
6421 RoundStarted = true;
6422 new spritesEnabled = get_pcvar_num(cvar_EnableRankSprites);
6423 if (spritesEnabled)
6424 {
6425 new spritesMode = get_pcvar_num(cvar_RankSpriteMode);
6426 if (!spritesMode)
6427 {
6428 removeEntities();
6429 }
6430 }
6431 return 0;
6432}
6433
6434public Event_RoundWon_T()
6435{
6436 set_task(1056964608, "CheckTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
6437 return 0;
6438}
6439
6440public CheckTConditions()
6441{
6442 new var1;
6443 if (g_iBombPlanter != 9191 && g_bBombExploded == true)
6444 {
6445 ShowMVPMessage(g_iBombPlanter, 3);
6446 }
6447 else
6448 {
6449 new iTopKiller = GetTopKiller(1);
6450 ShowMVPMessage(iTopKiller, 1);
6451 }
6452 return 0;
6453}
6454
6455public Event_RoundWon_CT()
6456{
6457 set_task(1056964608, "CheckCTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
6458 return 0;
6459}
6460
6461public CheckCTConditions()
6462{
6463 if (g_iBombDefuser != 1919)
6464 {
6465 ShowMVPMessage(g_iBombDefuser, 2);
6466 }
6467 else
6468 {
6469 new iTopKiller = GetTopKiller(2);
6470 ShowMVPMessage(iTopKiller, 1);
6471 }
6472 return 0;
6473}
6474
6475public bomb_planted(iPlanter)
6476{
6477 new flags = user_flags(iPlanter);
6478 new ptsplant = get_pcvar_num(cvar_plantpts);
6479 new vptsplant = get_pcvar_num(cvar_vipplantbonus);
6480 new aptsplant = get_pcvar_num(cvar_adminplantbonus);
6481 new vipenabled = get_pcvar_num(cvar_vipenablebonus);
6482 new adminenabled = get_pcvar_num(cvar_adminenablebonus);
6483 set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
6484 new var1;
6485 if (flags == 2 && !adminenabled)
6486 {
6487 if (vipenabled)
6488 {
6489 flags = 1;
6490 }
6491 flags = 0;
6492 }
6493 new var2;
6494 if (flags == 1 && !vipenabled)
6495 {
6496 flags = 0;
6497 }
6498 switch (flags)
6499 {
6500 case 0:
6501 {
6502 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_KILL", ptsplant);
6503 AddPoints(iPlanter, ptsplant);
6504 }
6505 case 1:
6506 {
6507 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_VIPKILL", ptsplant, vptsplant);
6508 AddPoints(iPlanter, vptsplant + ptsplant);
6509 }
6510 case 2:
6511 {
6512 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_ADMINKILL", ptsplant, aptsplant);
6513 AddPoints(iPlanter, aptsplant + ptsplant);
6514 }
6515 default:
6516 {
6517 }
6518 }
6519 UpdateStats(iPlanter);
6520 g_iBombPlanter = iPlanter;
6521 return 0;
6522}
6523
6524public bomb_explode(iPlanter, iDefuser)
6525{
6526 g_bBombExploded = true;
6527 return 0;
6528}
6529
6530public bomb_defused(iDefuser)
6531{
6532 new flags = user_flags(iDefuser);
6533 new ptsplant = get_pcvar_num(cvar_defusepts);
6534 new vptsplant = get_pcvar_num(cvar_vipdefusebonus);
6535 new aptsplant = get_pcvar_num(cvar_admindefusebonus);
6536 new vipenabled = get_pcvar_num(cvar_vipenablebonus);
6537 new adminenabled = get_pcvar_num(cvar_adminenablebonus);
6538 set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
6539 new var1;
6540 if (flags == 2 && !adminenabled)
6541 {
6542 if (vipenabled)
6543 {
6544 flags = 1;
6545 }
6546 flags = 0;
6547 }
6548 new var2;
6549 if (flags == 1 && !vipenabled)
6550 {
6551 flags = 0;
6552 }
6553 switch (flags)
6554 {
6555 case 0:
6556 {
6557 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_KILL", ptsplant);
6558 AddPoints(iDefuser, ptsplant);
6559 }
6560 case 1:
6561 {
6562 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_VIPKILL", ptsplant, vptsplant);
6563 AddPoints(iDefuser, vptsplant + ptsplant);
6564 }
6565 case 2:
6566 {
6567 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_ADMINKILL", ptsplant, aptsplant);
6568 AddPoints(iDefuser, aptsplant + ptsplant);
6569 }
6570 default:
6571 {
6572 }
6573 }
6574 UpdateStats(iDefuser);
6575 g_iBombDefuser = iDefuser;
6576 return 0;
6577}
6578
6579ShowMVPMessage(iMVP, iReason)
6580{
6581 new playerCount = get_pcvar_num(cvar_MvpPlayers);
6582 if (playerCount > get_playersnum(MaxClients))
6583 {
6584 return 1;
6585 }
6586 new red = random_num(1, 255);
6587 new green = random_num(1, 255);
6588 new blue = random_num(1, 255);
6589 new players[32];
6590 new pnum;
6591 new tempid;
6592 get_players(players, pnum, "ch", 4130124);
6593 new szMVPName[32];
6594 new pointsamount = get_pcvar_num(cvar_MvpPointsAmount);
6595 new minmvp = get_pcvar_num(cvar_MinMVPPlayers);
6596 get_user_name(iMVP, szMVPName, 31);
6597 set_dhudmessage(red, green, blue, -1082130432, 1059481190, 1, 1086324736, 1077936128, 1036831949, 1069547520);
6598 new isWav = equali(MVPSoundPath[MVPSound[iMVP]][strlen(MVPSoundPath[MVPSound[iMVP]]) - 4], ".wav", MaxClients);
6599 new var1;
6600 if (isLogged[iMVP] && !mvpShown)
6601 {
6602 mvpShown = true;
6603 switch (iReason)
6604 {
6605 case 1:
6606 {
6607 if (1 > g_iEnemiesKilled[iMVP])
6608 {
6609 return 1;
6610 }
6611 show_dhudmessage(MaxClients, "%L", -1, "MVP_KILLS", szMVPName, g_iEnemiesKilled[iMVP], g_iEnemiesHS[iMVP], MVPSounds[MVPSound[iMVP]]);
6612 }
6613 case 2:
6614 {
6615 show_dhudmessage(MaxClients, "%L", -1, "MVP_DEFUSE", szMVPName, MVPSounds[MVPSound[iMVP]]);
6616 }
6617 case 3:
6618 {
6619 show_dhudmessage(MaxClients, "%L", -1, "MVP_PLANT", szMVPName, MVPSounds[MVPSound[iMVP]]);
6620 }
6621 default:
6622 {
6623 }
6624 }
6625 new i;
6626 while (i < pnum)
6627 {
6628 tempid = players[i];
6629 if (MVPEnabled[tempid])
6630 {
6631 client_cmd(tempid, "stopsound");
6632 client_cmd(tempid, "mp3 stop");
6633 if (isWav)
6634 {
6635 client_cmd(tempid, "spk %s", MVPSoundPath[MVPSound[iMVP]]);
6636 }
6637 else
6638 {
6639 client_cmd(tempid, "mp3 play sound/%s", MVPSoundPath[MVPSound[iMVP]]);
6640 }
6641 }
6642 i++;
6643 }
6644 Mvp[iMVP]++;
6645 new vipFlag[32];
6646 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6647 new var2;
6648 if (get_pcvar_num(cvar_MvpRewardVIP) && get_playersnum(MaxClients) >= minmvp)
6649 {
6650 if (has_all_flags(iMVP, vipFlag))
6651 {
6652 new var3 = Points[iMVP];
6653 var3 = var3[pointsamount];
6654 client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS_VIP", pointsamount);
6655 }
6656 }
6657 else
6658 {
6659 if (minmvp <= get_playersnum(MaxClients))
6660 {
6661 new var4 = Points[iMVP];
6662 var4 = var4[pointsamount];
6663 client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS", pointsamount);
6664 }
6665 }
6666 }
6667 UpdateStats(iMVP);
6668 return 1;
6669}
6670
6671GetTopKiller(iTeam)
6672{
6673 new iPlayers[32];
6674 new iPlayersnum;
6675 new var1;
6676 if (iTeam == 1)
6677 {
6678 var1 = 4171484;
6679 }
6680 else
6681 {
6682 var1 = 4171524;
6683 }
6684 get_players(iPlayers, iPlayersnum, 4171476, var1);
6685 SortCustom1D(iPlayers, iPlayersnum, "SortByKills", {0}, MaxClients);
6686 return iPlayers[0];
6687}
6688
6689public SortByKills(elem1, elem2)
6690{
6691 if (g_iEnemiesKilled[elem2] < g_iEnemiesKilled[elem1])
6692 {
6693 return -1;
6694 }
6695 return 1;
6696}
6697
6698public PlayerData(id)
6699{
6700 new var1;
6701 if (isLogged[id] && HudEnabled[id])
6702 {
6703 new szText[256];
6704 new wId = get_user_weapon(id, 0, 0);
6705 new iSpecPlayer = pev(id, 101);
6706 new SkinName[128];
6707 set_hudmessage(64, 64, 64, 1028443341, 1041865114, MaxClients, MaxClients, floatadd(1065353216, 1036831949), MaxClients, MaxClients, -1);
6708 new var2;
6709 if (is_user_alive(iSpecPlayer) && !is_user_alive(id))
6710 {
6711 if (g_bUsingGuns[iSpecPlayer][wId])
6712 {
6713 format_skin_name(SkinName, 128, g_bUsingGuns[iSpecPlayer][wId], 2);
6714 new var3;
6715 if (clan_inclan[iSpecPlayer])
6716 {
6717 var3 = clan_name[iSpecPlayer];
6718 }
6719 else
6720 {
6721 var3 = 4171840;
6722 }
6723 user_name(iSpecPlayer);
6724
6725/* ERROR! Can't print expression: Heap */
6726 function "PlayerData" (number 165)
6727user_flags(id)
6728{
6729 new vipFlag[32];
6730 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6731 new adminFlag[32];
6732 get_pcvar_string(cvar_adminFlag, adminFlag, 32);
6733 if (has_all_flags(id, adminFlag))
6734 {
6735 return 2;
6736 }
6737 if (has_all_flags(id, vipFlag))
6738 {
6739 return 1;
6740 }
6741 return 0;
6742}
6743
6744public NameChange(id)
6745{
6746 new var1;
6747 if (!is_user_connected(id) || is_user_bot(id))
6748 {
6749 return 1;
6750 }
6751 new OldName[32];
6752 new NewName[32];
6753 new Name[32];
6754 get_user_name(id, Name, 31);
6755 pev(id, 6, OldName, 31);
6756 if (OldName[0])
6757 {
6758 get_user_info(id, "name", NewName, 31);
6759 if (!equal(OldName, NewName, MaxClients))
6760 {
6761 set_user_info(id, "name", OldName);
6762 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NAMECHANGE_DISABLED");
6763 return 2;
6764 }
6765 }
6766 return 1;
6767}
6768
6769public native_set_user_points(id, amount)
6770{
6771 Points[id] = amount;
6772 UpdateStats(id);
6773 return 0;
6774}
6775
6776public native_get_user_points(id)
6777{
6778 return Points[id];
6779}
6780
6781public native_get_usergo_id(id)
6782{
6783 return ID[id];
6784}
6785
6786public native_set_user_ck(id, ck, num, amount)
6787{
6788 if (ck)
6789 {
6790 new var1 = Keys[id][num];
6791 var1 = var1[amount];
6792 }
6793 else
6794 {
6795 new var2 = Cases[id][num];
6796 var2 = var2[amount];
6797 }
6798 UpdateItems(id);
6799 return 0;
6800}
6801
6802public native_is_user_logged(id)
6803{
6804 if (isLogged[id])
6805 {
6806 return 1;
6807 }
6808 return 0;
6809}
6810
6811public SavePass(id)
6812{
6813 set_user_info(id, "gopw", Password[id]);
6814 client_cmd(id, "setinfo gopw %s", Password[id]);
6815 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASS_SAVED");
6816 return 1;
6817}
6818
6819public Rankz(id)
6820{
6821 new Data[1];
6822 Data[0] = id;
6823 new szTemp[512];
6824 format(szTemp, 511, "SELECT COUNT(*) FROM csgo_stats WHERE `skill` >= '%.2f'", Skill[id]);
6825 SQL_ThreadQuery(g_SqlTuple, "Rank_QueryHandler", szTemp, Data, 1);
6826 return 0;
6827}
6828
6829public Rank_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6830{
6831 if (FailState == -2)
6832 {
6833 return 1;
6834 }
6835 new id = Data[0];
6836 g_iRank[id] = SQL_ReadResult(Query, MaxClients);
6837 TotalRows(id);
6838 return 1;
6839}
6840
6841public TotalRows(id)
6842{
6843 new Data[1];
6844 Data[0] = id;
6845 new szTemp[128];
6846 format(szTemp, 127, "SELECT COUNT(*) FROM csgo_stats");
6847 SQL_ThreadQuery(g_SqlTuple, "TotalRows_QueryHandler", szTemp, Data, 1);
6848 return 0;
6849}
6850
6851public TotalRows_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6852{
6853 if (FailState == -2)
6854 {
6855 return 1;
6856 }
6857 new id = Data[0];
6858 g_iCount = SQL_ReadResult(Query, MaxClients);
6859 new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
6860 if (CalibrationKills <= Kills[id])
6861 {
6862 if (!g_iRank[id])
6863 {
6864 g_iRank[id] = 1;
6865 }
6866 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK", g_iRank[id], g_iCount, Kills[id], Skill[id]);
6867 }
6868 else
6869 {
6870 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK_UNRANKED", CalibrationKills - Kills[id]);
6871 }
6872 return 1;
6873}
6874
6875public MySql_Init()
6876{
6877 new host[128];
6878 new user[128];
6879 new pass[128];
6880 new db[128];
6881 get_pcvar_string(cvar_SqlHost, host, cvar_SqlUser);
6882 get_pcvar_string(cvar_SqlUser, user, cvar_SqlUser);
6883 get_pcvar_string(cvar_SqlPass, pass, cvar_SqlUser);
6884 get_pcvar_string(cvar_SqlDb, db, cvar_SqlUser);
6885 g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db, MaxClients);
6886 SQL_SetCharset(g_SqlTuple, "utf8");
6887 new ErrorCode;
6888 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, g_Error, 511);
6889 if (!SqlConnection)
6890 {
6891 set_fail_state(g_Error);
6892 }
6893 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));");
6894 SQL_Execute(Queries);
6895 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));");
6896 SQL_Execute(Queries);
6897 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));");
6898 SQL_Execute(Queries);
6899 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));");
6900 SQL_Execute(Queries);
6901 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));");
6902 SQL_Execute(Queries);
6903 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);");
6904 SQL_Execute(Queries);
6905 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));");
6906 SQL_Execute(Queries);
6907 if (!SQL_Execute(Queries))
6908 {
6909 SQL_QueryError(Queries, g_Error, 511);
6910 set_fail_state(g_Error);
6911 }
6912 SQL_FreeHandle(Queries);
6913 SQL_FreeHandle(SqlConnection);
6914 GetCKData();
6915 GetSkinData();
6916 return 0;
6917}
6918
6919public plugin_end()
6920{
6921 SQL_FreeHandle(g_SqlTuple);
6922 return 0;
6923}
6924
6925public sql_IsRegister(id)
6926{
6927 new szTemp[1024];
6928 new Data[1];
6929 Data[0] = id;
6930 new szName[32];
6931 user_name_sql(szName, 32, id);
6932 format(szTemp, 1023, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
6933 SQL_ThreadQuery(g_SqlTuple, "check_client", szTemp, Data, 1);
6934 return 0;
6935}
6936
6937public check_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6938{
6939 new id = Data[0];
6940 if (1 > SQL_NumResults(Query))
6941 {
6942 isRegistered[id] = 0;
6943 }
6944 else
6945 {
6946 isRegistered[id] = 1;
6947 get_user_info(id, "gopw", cfgPassword[id], 32);
6948 ID[id] = SQL_ReadResult(Query, MaxClients);
6949 SQL_ReadResult(Query, 2, sqlPassword[id], 32);
6950 if (equal(cfgPassword[id], sqlPassword[id], MaxClients))
6951 {
6952 passwordMatches[id] = 1;
6953 isLogged[id] = 1;
6954 UpdatePlayer(id);
6955 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4181660, MaxClients);
6956 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_SUCCESS");
6957 sql_RetrieveUserItems(id);
6958 sql_RetrieveUserStats(id);
6959 sql_RetrieveUserSettings(id);
6960 sql_RetrieveUserMisc(id);
6961 set_task(1072064102, "GetClanData", id, 4109032, MaxClients, 4109036, MaxClients);
6962 set_task(1072064102, "SetSkin", id, 4109032, MaxClients, 4109036, MaxClients);
6963 if (is_user_alive(id))
6964 {
6965 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
6966 }
6967 client_print(id, NULL_STRING, "%L", id, "DATA_LOADING");
6968 }
6969 }
6970 return 1;
6971}
6972
6973public sql_RegisterUser(id)
6974{
6975 new szTemp[2048];
6976 new Data[1];
6977 Data[0] = id;
6978 new szName[32];
6979 user_name_sql(szName, 32, id);
6980 format(szTemp, 2047, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
6981 SQL_ThreadQuery(g_SqlTuple, "register_client", szTemp, Data, 1);
6982 return 0;
6983}
6984
6985public register_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6986{
6987 if (FailState == -2)
6988 {
6989 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
6990 }
6991 else
6992 {
6993 if (FailState == -1)
6994 {
6995 log_amx("Load Query failed. [%d] %s", Errcode, Error);
6996 }
6997 }
6998 new id = Data[0];
6999 new year;
7000 new month;
7001 new day;
7002 date(year, month, day);
7003 new szSteamId[32];
7004 new szIP[40];
7005 new szName[32];
7006 user_name_sql(szName, 32, id);
7007 get_user_authid(id, szSteamId, 31);
7008 get_user_ip(id, szIP, 39, 1);
7009 if (1 > SQL_NumResults(Query))
7010 {
7011 new szTemp[2048];
7012 new szSkins[512];
7013 new szKSkins[512];
7014 new szUGuns[128];
7015 new szChests[128];
7016 new szKeys[128];
7017 new szGraffities[128];
7018 format(szSkins, 512, 4182624);
7019 format(szKSkins, 512, 4182628);
7020 format(szUGuns, cvar_SqlUser, 4182632);
7021 format(szChests, cvar_SqlUser, 4182636);
7022 format(szKeys, cvar_SqlUser, 4182640);
7023 new i;
7024 while (i < 300)
7025 {
7026 format(szSkins, 512, "%s%d ", szSkins, UserSkins[i][id]);
7027 format(szKSkins, 512, "%s%d ", szKSkins, UserStattrak[i][id]);
7028 i++;
7029 }
7030 new i;
7031 while (i < 32)
7032 {
7033 format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
7034 i++;
7035 }
7036 new i;
7037 while (i <= 8)
7038 {
7039 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7040 i++;
7041 }
7042 new i;
7043 while (i <= 8)
7044 {
7045 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7046 i++;
7047 }
7048 new i;
7049 while (i < 64)
7050 {
7051 format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
7052 i++;
7053 }
7054 new rSong = random_num(1, AllSounds);
7055 while (MVPSoundVIP[rSong])
7056 {
7057 rSong = random_num(1, AllSounds);
7058 }
7059 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);
7060 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7061 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);
7062 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7063 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);
7064 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7065 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);
7066 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7067 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]);
7068 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7069 }
7070 else
7071 {
7072 ID[id] = SQL_ReadResult(Query, MaxClients);
7073 }
7074 return 1;
7075}
7076
7077public sql_RetrieveUserMisc(id)
7078{
7079 new szTemp[1024];
7080 new Data[1];
7081 Data[0] = id;
7082 new szName[32];
7083 user_name_sql(szName, 32, id);
7084 format(szTemp, 1023, "SELECT * FROM `csgo_misc` WHERE (`csgo_misc`.`username` = '%s')", szName);
7085 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_misc", szTemp, Data, 1);
7086 return 0;
7087}
7088
7089public retrieve_user_misc(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7090{
7091 if (FailState == -2)
7092 {
7093 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7094 }
7095 else
7096 {
7097 if (FailState == -1)
7098 {
7099 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7100 }
7101 }
7102 new id;
7103 new szTemp[512];
7104 id = Data[0];
7105 new szGraffities[128];
7106 new szName[32];
7107 user_name_sql(szName, 32, id);
7108 if (SQL_NumResults(Query) == 1)
7109 {
7110 ChatInk[id] = SQL_ReadResult(Query, 2);
7111 SQL_ReadResult(Query, 3, ChatTag[id], 33);
7112 SelectedGraffiti[id] = SQL_ReadResult(Query, NULL_STRING);
7113 SQL_ReadResult(Query, 5, szGraffities, 128);
7114 GraffitiBox[id] = SQL_ReadResult(Query, 6);
7115 iDay[id] = SQL_ReadResult(Query, 7);
7116 if (g_iDay == iDay[id])
7117 {
7118 Rewarded[id] = 1;
7119 }
7120 new myNumbers[256];
7121 new count = ExplodeString(szGraffities, myNumbers, 256);
7122 if (count)
7123 {
7124 new i = 1;
7125 while (i < 64)
7126 {
7127 UserGraffiti[i][id] = myNumbers[i];
7128 i++;
7129 }
7130 }
7131 if (1 < strlen(clan_name[id]))
7132 {
7133 clan_inclan[id] = 1;
7134 }
7135 }
7136 else
7137 {
7138 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]);
7139 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7140 }
7141 return 1;
7142}
7143
7144public sql_RetrieveUserItems(id)
7145{
7146 new szTemp[1024];
7147 new Data[1];
7148 Data[0] = id;
7149 new szName[32];
7150 user_name_sql(szName, 32, id);
7151 format(szTemp, 1023, "SELECT * FROM `csgo_items` WHERE (`csgo_items`.`username` = '%s')", szName);
7152 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_items", szTemp, Data, 1);
7153 return 0;
7154}
7155
7156public retrieve_user_items(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7157{
7158 if (FailState == -2)
7159 {
7160 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7161 }
7162 else
7163 {
7164 if (FailState == -1)
7165 {
7166 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7167 }
7168 }
7169 new id = Data[0];
7170 new year;
7171 new month;
7172 new day;
7173 date(year, month, day);
7174 new szSteamId[32];
7175 new szIP[40];
7176 get_user_authid(id, szSteamId, 31);
7177 get_user_ip(id, szIP, 39, 1);
7178 if (SQL_NumResults(Query) == 1)
7179 {
7180 new szSkins[812];
7181 new szKSkins[812];
7182 new szUGuns[256];
7183 new szChests[128];
7184 new szKeys[128];
7185 SQL_ReadResult(Query, 2, szChests, 128);
7186 SQL_ReadResult(Query, 3, szKeys, 128);
7187 SQL_ReadResult(Query, NULL_STRING, szSkins, 812);
7188 SQL_ReadResult(Query, 5, szUGuns, 256);
7189 SQL_ReadResult(Query, 6, szKSkins, 812);
7190 SQL_NextRow(Query);
7191 new myNumbers[812];
7192 new count = ExplodeString(szSkins, myNumbers, 812);
7193 if (count)
7194 {
7195 new i = 1;
7196 while (i < 300)
7197 {
7198 UserSkins[i][id] = myNumbers[i];
7199 i++;
7200 }
7201 }
7202 count = ExplodeString(szKSkins, myNumbers, 812);
7203 if (count)
7204 {
7205 new i = 1;
7206 while (i < 300)
7207 {
7208 UserStattrak[i][id] = myNumbers[i];
7209 i++;
7210 }
7211 }
7212 count = ExplodeString(szUGuns, myNumbers, 812);
7213 if (count)
7214 {
7215 new i = 1;
7216 while (i < 32)
7217 {
7218 if (300 >= myNumbers[i])
7219 {
7220 new var1;
7221 if (UserSkins[myNumbers[i]][id] && Weapons[myNumbers[i]] == i)
7222 {
7223 g_bUsingGuns[id][i] = myNumbers[i];
7224 }
7225 }
7226 i++;
7227 }
7228 }
7229 count = ExplodeString(szChests, myNumbers, 812);
7230 if (count)
7231 {
7232 new i = 1;
7233 while (i <= 8)
7234 {
7235 Cases[id][i] = myNumbers[i];
7236 i++;
7237 }
7238 }
7239 count = ExplodeString(szKeys, myNumbers, 812);
7240 if (count)
7241 {
7242 new i = 1;
7243 while (i <= 8)
7244 {
7245 Keys[id][i] = myNumbers[i];
7246 i++;
7247 }
7248 }
7249 }
7250 return 1;
7251}
7252
7253public sql_RetrieveUserSettings(id)
7254{
7255 new szTemp[1024];
7256 new Data[1];
7257 Data[0] = id;
7258 new szName[32];
7259 user_name_sql(szName, 32, id);
7260 format(szTemp, 1023, "SELECT * FROM `csgo_settings` WHERE (`csgo_settings`.`username` = '%s')", szName);
7261 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_settings", szTemp, Data, 1);
7262 return 0;
7263}
7264
7265public retrieve_user_settings(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7266{
7267 if (FailState == -2)
7268 {
7269 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7270 }
7271 else
7272 {
7273 if (FailState == -1)
7274 {
7275 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7276 }
7277 }
7278 new id = Data[0];
7279 new vipFlag[32];
7280 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
7281 new year;
7282 new month;
7283 new day;
7284 date(year, month, day);
7285 new szSteamId[32];
7286 new szIP[40];
7287 get_user_authid(id, szSteamId, 31);
7288 get_user_ip(id, szIP, 39, 1);
7289 if (SQL_NumResults(Query) == 1)
7290 {
7291 HudEnabled[id] = SQL_ReadResult(Query, 2);
7292 MVPSound[id] = SQL_ReadResult(Query, 3);
7293 MVPEnabled[id] = SQL_ReadResult(Query, NULL_STRING);
7294 FactionT[id] = SQL_ReadResult(Query, 5);
7295 FactionCT[id] = SQL_ReadResult(Query, 6);
7296 }
7297 new var1;
7298 if (!has_all_flags(id, vipFlag) && MVPSoundVIP[MVPSound[id]])
7299 {
7300 MVPSound[id] = 0;
7301 }
7302 return 1;
7303}
7304
7305public sql_RetrieveUserStats(id)
7306{
7307 new szTemp[1024];
7308 new Data[1];
7309 Data[0] = id;
7310 new szName[32];
7311 user_name_sql(szName, 32, id);
7312 format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE (`csgo_stats`.`username` = '%s')", szName);
7313 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_stats", szTemp, Data, 1);
7314 return 0;
7315}
7316
7317public retrieve_user_stats(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7318{
7319 if (FailState == -2)
7320 {
7321 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7322 }
7323 else
7324 {
7325 if (FailState == -1)
7326 {
7327 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7328 }
7329 }
7330 new id = Data[0];
7331 new year;
7332 new month;
7333 new day;
7334 date(year, month, day);
7335 new szSteamId[32];
7336 new szIP[40];
7337 get_user_authid(id, szSteamId, 31);
7338 get_user_ip(id, szIP, 39, 1);
7339 if (SQL_NumResults(Query) == 1)
7340 {
7341 ID[id] = SQL_ReadResult(Query, MaxClients);
7342 Points[id] = SQL_ReadResult(Query, 2);
7343 Kills[id] = SQL_ReadResult(Query, 3);
7344 Rank[id] = SQL_ReadResult(Query, NULL_STRING);
7345 Level[id] = SQL_ReadResult(Query, 5);
7346 Mvp[id] = SQL_ReadResult(Query, 6);
7347 SQL_ReadResult(Query, 7, clan_name[id], 64);
7348 clan_playerpos[id] = SQL_ReadResult(Query, NULL_VECTOR);
7349 Dusts[id] = SQL_ReadResult(Query, 9);
7350 hasDeathNote[id] = SQL_ReadResult(Query, 10);
7351 SQL_ReadResult(Query, 11, DeathNote[id], 33);
7352 SQL_ReadResult(Query, 12, Skill[id]);
7353 if (1 < strlen(clan_name[id]))
7354 {
7355 clan_inclan[id] = 1;
7356 }
7357 }
7358 return 1;
7359}
7360
7361public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7362{
7363 SQL_FreeHandle(Query);
7364 return 1;
7365}
7366
7367bool:ValidMdl(Mdl[])
7368{
7369 new var1;
7370 if (containi(Mdl, ".mdl") != -1)
7371 {
7372 var1 = true;
7373 }
7374 else
7375 {
7376 var1 = false;
7377 }
7378 return var1;
7379}
7380
7381user_name(id, _arg1)
7382{
7383 new szName[33];
7384 get_user_name(id, szName, 32);
7385 return szName;
7386}
7387
7388user_name_sql(buffer[], size, id)
7389{
7390 new szName[32];
7391 get_user_name(id, szName, 31);
7392 replace_all(szName, 32, "\\", "\\\\");
7393 replace_all(szName, 32, "\0", "\\0");
7394 replace_all(szName, 32, "\n", "\\n");
7395 replace_all(szName, 32, "\r", "\\r");
7396 replace_all(szName, 32, "\x1a", "\Z");
7397 replace_all(szName, 32, 4189660, "\'");
7398 replace_all(szName, 32, 4189680, "\\"");
7399 formatex(buffer, size, "%s", szName);
7400 return 0;
7401}
7402
7403TrimDeathnote(id, buffer[], size)
7404{
7405 replace_all(DeathNote[id], 33, 4189712, 4189720);
7406 replace_all(DeathNote[id], 33, 4189724, "\\"");
7407 formatex(buffer, size, "%s", DeathNote[id]);
7408 return 0;
7409}
7410
7411ExplodeString(string[], output[], olen)
7412{
7413 new len = strlen(string);
7414 if (!len)
7415 {
7416 return 0;
7417 }
7418 new i;
7419 new c;
7420 new j;
7421 new count;
7422 new number[12];
7423 do {
7424 while (string[i] == 32)
7425 {
7426 i++;
7427 }
7428 while (var3 && c != 32)
7429 {
7430 }
7431 count++;
7432 output[count] = str_to_num(number);
7433 j = 0;
7434 new var2;
7435 if (!(i < len && count < olen))
7436 {
7437 return count;
7438 }
7439 } while (var2);
7440 return count;
7441}
7442
7443public UpdateMisc(id)
7444{
7445 new szGraffities[128];
7446 new i;
7447 while (i < 64)
7448 {
7449 format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
7450 i++;
7451 }
7452 new szTemp[2200];
7453 new szName[32];
7454 user_name_sql(szName, 32, id);
7455 new var1;
7456 if (isLogged[id] && isRegistered[id])
7457 {
7458 TrimDeathnote(id, DeathNote[id], 33);
7459 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);
7460 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7461 }
7462 return 0;
7463}
7464
7465public UpdateStats(id)
7466{
7467 new szTemp[2048];
7468 new szName[32];
7469 user_name_sql(szName, 32, id);
7470 new var1;
7471 if (isLogged[id] && isRegistered[id])
7472 {
7473 TrimDeathnote(id, DeathNote[id], 33);
7474 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);
7475 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7476 }
7477 return 0;
7478}
7479
7480public UpdatePlayer(id)
7481{
7482 new szTemp[2048];
7483 new szName[32];
7484 user_name_sql(szName, 32, id);
7485 new var1;
7486 if (isLogged[id])
7487 {
7488 var1 = 1;
7489 }
7490 else
7491 {
7492 var1 = 0;
7493 }
7494 isOnline[id] = var1;
7495 format(szTemp, 2047, "UPDATE `csgo_player` SET `is_online` = '%d' WHERE `username` = '%s';", isOnline[id], szName);
7496 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7497 return 0;
7498}
7499
7500public AddClan(id)
7501{
7502 new szTemp[1024];
7503 new var1;
7504 if (isLogged[id] && isRegistered[id])
7505 {
7506 format(szTemp, 1023, "INSERT INTO `csgo_clan` (`clan_name`) VALUES ('%s');", clan_name[id]);
7507 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7508 }
7509 return 0;
7510}
7511
7512public UpdateSettings(id)
7513{
7514 new szTemp[1024];
7515 new szName[32];
7516 user_name_sql(szName, 32, id);
7517 new var1;
7518 if (isLogged[id] && isRegistered[id])
7519 {
7520 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);
7521 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7522 }
7523 return 0;
7524}
7525
7526public AddSkinToMarket(id)
7527{
7528 new szTemp[1024];
7529 new szName[32];
7530 user_name_sql(szName, 32, id);
7531 new var1;
7532 if (isLogged[id] && isRegistered[id])
7533 {
7534 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]);
7535 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7536 }
7537 return 0;
7538}
7539
7540public AddCKToMarket(id)
7541{
7542 new szTemp[1024];
7543 new szName[32];
7544 user_name_sql(szName, 32, id);
7545 new var1;
7546 if (isLogged[id] && isRegistered[id])
7547 {
7548 new var2;
7549 if (SelectedTypeMarket[id])
7550 {
7551 var2 = SelectedItemMarket[id];
7552 }
7553 else
7554 {
7555 var2 = 0;
7556 }
7557 new var3;
7558 if (!SelectedTypeMarket[id])
7559 {
7560 var3 = SelectedItemMarket[id];
7561 }
7562 else
7563 {
7564 var3 = 0;
7565 }
7566 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]);
7567 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7568 }
7569 return 0;
7570}
7571
7572public UpdateCK(id)
7573{
7574 new szTemp[1024];
7575 new szName[32];
7576 user_name_sql(szName, 32, id);
7577 new var1;
7578 if (isLogged[id] && isRegistered[id])
7579 {
7580 new szChests[128];
7581 new szKeys[128];
7582 new i;
7583 while (i <= 8)
7584 {
7585 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7586 i++;
7587 }
7588 new i;
7589 while (i <= 8)
7590 {
7591 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7592 i++;
7593 }
7594 format(szTemp, 1023, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s' WHERE username = '%s';", szChests, szKeys, szName);
7595 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7596 }
7597 return 0;
7598}
7599
7600public UpdateCKMarket(iNum)
7601{
7602 new szTemp[1024];
7603 replace_all(marketseller[iNum], 1027, 4194408, "\'");
7604 replace_all(marketseller[iNum], 1027, 4194428, "\\"");
7605 format(szTemp, 1023, "UPDATE `csgo_market` SET `quantity` = '%d' WHERE id = '%d';", marketquantity[iNum], marketid[iNum]);
7606 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7607 return 0;
7608}
7609
7610public UpdateItems(id)
7611{
7612 new szTemp[1028];
7613 new szName[32];
7614 user_name_sql(szName, 32, id);
7615 if (isLogged[id])
7616 {
7617 new szSkins[1028];
7618 new szKSkins[1028];
7619 new szUGuns[128];
7620 new szChests[128];
7621 new szKeys[128];
7622 format(szSkins, 1028, 4194740);
7623 format(szKSkins, 1028, 4194744);
7624 format(szUGuns, cvar_SqlUser, 4194748);
7625 format(szChests, cvar_SqlUser, 4194752);
7626 format(szKeys, cvar_SqlUser, 4194756);
7627 new i;
7628 while (i < 300)
7629 {
7630 format(szSkins, 1028, "%s%d ", szSkins, UserSkins[i][id]);
7631 format(szKSkins, 1028, "%s%d ", szKSkins, UserStattrak[i][id]);
7632 i++;
7633 }
7634 new i;
7635 while (i < 32)
7636 {
7637 format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
7638 i++;
7639 }
7640 new i;
7641 while (i <= 8)
7642 {
7643 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7644 i++;
7645 }
7646 new i;
7647 while (i <= 8)
7648 {
7649 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7650 i++;
7651 }
7652 format(szTemp, 1027, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s', `stattrak` = '%s' WHERE `username` = '%s';", szChests, szKeys, szKSkins, szName);
7653 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7654 format(szTemp, 1027, "UPDATE `csgo_items` SET `skins` = '%s', `skins_used` = '%s' WHERE `username` = '%s';", szSkins, szUGuns, szName);
7655 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7656 }
7657 return 0;
7658}
7659
7660public GetCKData()
7661{
7662 new szTemp[1024];
7663 new Data[1];
7664 format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE quantity = '0' AND skin_id = '0'");
7665 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7666 format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE key_id > 0 OR case_id > 0");
7667 SQL_ThreadQuery(g_SqlTuple, "ck_data", szTemp, Data, 1);
7668 return 0;
7669}
7670
7671public ck_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7672{
7673 if (FailState == -2)
7674 {
7675 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7676 }
7677 else
7678 {
7679 if (FailState == -1)
7680 {
7681 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7682 }
7683 }
7684 new i;
7685 marketckcount = 0;
7686 if (0 < SQL_NumResults(Query))
7687 {
7688 while (SQL_MoreResults(Query))
7689 {
7690 i++;
7691 marketid[i] = SQL_ReadResult(Query, MaxClients);
7692 SQL_ReadResult(Query, 1, marketseller[i], 63);
7693 marketkeys[i] = SQL_ReadResult(Query, NULL_STRING);
7694 marketcases[i] = SQL_ReadResult(Query, 5);
7695 marketquantity[i] = SQL_ReadResult(Query, 6);
7696 marketckprice[i] = SQL_ReadResult(Query, 7);
7697 marketckcount = marketquantity[i][marketckcount];
7698 SQL_NextRow(Query);
7699 }
7700 }
7701 return 1;
7702}
7703
7704public GetClanData(id)
7705{
7706 new szTemp[1024];
7707 new Data[1];
7708 Data[0] = id;
7709 format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE clan_name = '%s' ORDER BY clan_pos DESC", clan_name[id]);
7710 SQL_ThreadQuery(g_SqlTuple, "clan_data", szTemp, Data, 1);
7711 return 0;
7712}
7713
7714public clan_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7715{
7716 if (FailState == -2)
7717 {
7718 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7719 }
7720 else
7721 {
7722 if (FailState == -1)
7723 {
7724 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7725 }
7726 }
7727 new i;
7728 new id = Data[0];
7729 if (0 < SQL_NumResults(Query))
7730 {
7731 while (SQL_MoreResults(Query))
7732 {
7733 SQL_ReadResult(Query, 1, clan_members[id][i], 63);
7734 i++;
7735 SQL_NextRow(Query);
7736 }
7737 }
7738 clan_count[id] = i;
7739 return 1;
7740}
7741
7742public GetSkinData()
7743{
7744 new szTemp[1024];
7745 new Data[1];
7746 format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE skin_id > 0");
7747 SQL_ThreadQuery(g_SqlTuple, "skin_data", szTemp, Data, 1);
7748 return 0;
7749}
7750
7751public skin_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7752{
7753 if (FailState == -2)
7754 {
7755 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7756 }
7757 else
7758 {
7759 if (FailState == -1)
7760 {
7761 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7762 }
7763 }
7764 new i;
7765 if (0 < SQL_NumResults(Query))
7766 {
7767 while (SQL_MoreResults(Query))
7768 {
7769 i++;
7770 marketidskin[i] = SQL_ReadResult(Query, MaxClients);
7771 SQL_ReadResult(Query, 1, marketskinseller[i], 63);
7772 marketwep[i] = SQL_ReadResult(Query, 2);
7773 marketskin[i] = SQL_ReadResult(Query, 3);
7774 marketskinprice[i] = SQL_ReadResult(Query, 7);
7775 SQL_NextRow(Query);
7776 }
7777 }
7778 return 1;
7779}
7780
7781public CheckClanName(id)
7782{
7783 new szTemp[1024];
7784 new Data[1];
7785 Data[0] = id;
7786 replace_all(clan_name[id], 63, 4197792, "\'");
7787 replace_all(clan_name[id], 63, 4197812, "\\"");
7788 format(szTemp, 1023, "SELECT * FROM `csgo_clan` WHERE `clan_name` = '%s'", clan_name[id]);
7789 SQL_ThreadQuery(g_SqlTuple, "clan_check", szTemp, Data, 1);
7790 return 0;
7791}
7792
7793public clan_check(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7794{
7795 if (FailState == -2)
7796 {
7797 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7798 }
7799 else
7800 {
7801 if (FailState == -1)
7802 {
7803 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7804 }
7805 }
7806 new id = Data[0];
7807 if (0 < SQL_NumResults(Query))
7808 {
7809 clan_istaken[id] = 1;
7810 }
7811 else
7812 {
7813 clan_istaken[id] = 0;
7814 }
7815 return 1;
7816}
7817
7818random_item(itemChances[], count)
7819{
7820 static sum;
7821 static i;
7822 static rand;
7823 rand = random(100);
7824 sum = 0;
7825 i = 0;
7826 i = 0;
7827 while (i <= count)
7828 {
7829 sum = itemChances[i][sum];
7830 if (sum > rand)
7831 {
7832 return i;
7833 }
7834 i += 1;
7835 }
7836 return i;
7837}
7838
7839public UpdateStatsOffline(Params[], points)
7840{
7841 replace_all(Params, 63, 4198404, "\'");
7842 replace_all(Params, 63, 4198424, "\\"");
7843 new szTemp[1024];
7844 format(szTemp, 1023, "UPDATE `csgo_stats` SET `points` = points + '%d' WHERE `username` = '%s';", points, Params);
7845 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7846 return 0;
7847}
7848
7849public DeleteFromMarket(playermarketid)
7850{
7851 new szTemp[1024];
7852 format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE `id` = '%d';", playermarketid);
7853 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7854 return 0;
7855}
7856
7857public screenfade(id, red, green, blue)
7858{
7859 message_begin(1, get_user_msgid("ScreenFade"), 4199068, id);
7860 write_short(1024);
7861 write_short(1024);
7862 write_short(MaxClients);
7863 write_byte(red);
7864 write_byte(green);
7865 write_byte(blue);
7866 write_byte(75);
7867 message_end();
7868 return 0;
7869}
7870
7871public screenfade_grey(id)
7872{
7873 message_begin(1, get_user_msgid("ScreenFade"), 4199124, id);
7874 write_short(1024);
7875 write_short(1024);
7876 write_short(MaxClients);
7877 write_byte(150);
7878 write_byte(150);
7879 write_byte(150);
7880 write_byte(75);
7881 message_end();
7882 return 0;
7883}
7884
7885public drop_item(id, chance)
7886{
7887 new rNum = random_num(1, 100);
7888 new ck = random_num(1, "amxx_configsdir");
7889 new ckid = random_num(1, NULL_VECTOR);
7890 if (rNum <= chance)
7891 {
7892 if (ck == 1)
7893 {
7894 GraffitiBox[id]++;
7895 user_name(id);
7896
7897/* ERROR! Can't print expression: Heap */
7898 function "drop_item" (number 221)
7899public format_skin_name(buffer[], size, skinid, type)
7900{
7901 switch (type)
7902 {
7903 case 1:
7904 {
7905 if (Weapons[skinid] == 29)
7906 {
7907 replace_all(SkinNames[skinid], 300, "\r", 4199492);
7908 replace_all(SkinNames[skinid], 300, "\y", 4199512);
7909 replace_all(SkinNames[skinid], 300, "\d", 4199532);
7910 replace_all(SkinNames[skinid], 300, "\w", 4199552);
7911 replace_all(SkinNames[skinid], 300, 4199560, "\x01|\x04");
7912 formatex(buffer, size, "%s", SkinNames[skinid]);
7913 }
7914 else
7915 {
7916 formatex(buffer, size, "\x04%s \x01| \x04%s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7917 }
7918 }
7919 case 2:
7920 {
7921 if (Weapons[skinid] == 29)
7922 {
7923 replace_all(SkinNames[skinid], 300, "\r", 4199652);
7924 replace_all(SkinNames[skinid], 300, "\y", 4199668);
7925 replace_all(SkinNames[skinid], 300, "\d", 4199684);
7926 replace_all(SkinNames[skinid], 300, "\w", 4199700);
7927 formatex(buffer, size, "%s", SkinNames[skinid]);
7928 }
7929 else
7930 {
7931 formatex(buffer, size, "%s | %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7932 }
7933 }
7934 case 3:
7935 {
7936 if (Weapons[skinid] == 29)
7937 {
7938 formatex(buffer, size, "%s", SkinNames[skinid]);
7939 }
7940 else
7941 {
7942 formatex(buffer, size, "\r%s \w| %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7943 }
7944 }
7945 default:
7946 {
7947 }
7948 }
7949 return 0;
7950}
7951
7952public AddPoints(id, amount)
7953{
7954 new lhenabled = get_pcvar_num(cvar_LHEnabled);
7955 new var1;
7956 if (lhenabled && IsLuckyHour())
7957 {
7958 new lhbonus = get_pcvar_num(cvar_LHBonus);
7959 new var2 = Points[id];
7960 var2 = var2[lhbonus * amount];
7961 }
7962 else
7963 {
7964 new var3 = Points[id];
7965 var3 = var3[amount];
7966 }
7967 return 0;
7968}
7969
7970public IsLuckyHour()
7971{
7972 new lhstart = get_pcvar_num(cvar_LHStart);
7973 new lhend = get_pcvar_num(cvar_LHEnd);
7974 new data[3];
7975 get_time("%H", data, 2);
7976 if (lhend > str_to_num(data) >= lhstart)
7977 {
7978 return 1;
7979 }
7980 return 0;
7981}