· 5 years ago · Apr 17, 2020, 08:42 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 alv_str2 = str2;
6160 alv_str4 = str4;
6161 if (task_exists(411, MaxClients))
6162 {
6163 remove_task(411, MaxClients);
6164 }
6165 set_task(1036831949, "task_clear_antiloop_vars", 411, 4109032, MaxClients, 4109036, MaxClients);
6166 }
6167 }
6168 if (is_user_connected(sndr))
6169 {
6170 if (!same_as_last)
6171 {
6172 buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
6173 }
6174 set_msg_arg_string(2, msg);
6175 set_msg_arg_string(NULL_STRING, 4167724);
6176 }
6177 }
6178 }
6179 return 0;
6180}
6181
6182public buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[])
6183{
6184 new sndr_name[33];
6185 new szMsg[128];
6186 get_user_name(sndr, sndr_name, 32);
6187 new chatrank = get_pcvar_num(cvar_ChatRank);
6188 new vipFlag[32];
6189 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6190 decl hasTag;
6191 new var1;
6192 if (strlen(ChatTag[sndr]) > 2)
6193 {
6194 var1 = 1;
6195 }
6196 else
6197 {
6198 var1 = 0;
6199 }
6200 hasTag = var1;
6201 decl hasClan;
6202 new var2;
6203 if (strlen(clan_name[sndr]) > 1)
6204 {
6205 var2 = 1;
6206 }
6207 else
6208 {
6209 var2 = 0;
6210 }
6211 hasClan = var2;
6212 new prefix[256] = {1,0};
6213 if (!(get_pcvar_num(p_hidestat)))
6214 {
6215 if (is_sndr_spec)
6216 {
6217 prefix = {1,42,83,80,69,67,42,32,0};
6218 }
6219 if (!is_user_alive(sndr))
6220 {
6221 prefix = {1,42,68,69,65,68,42,32,0};
6222 }
6223 }
6224 if (is_team_msg)
6225 {
6226 if (is_sndr_spec)
6227 {
6228 prefix = {1,40,83,112,101,99,116,97,116,111,114,41,32,0};
6229 }
6230 if (sndr_team == 1)
6231 {
6232 add(prefix[strlen(prefix) - 1], 29, "\x01(Terrorist) ", MaxClients);
6233 }
6234 if (sndr_team == 2)
6235 {
6236 add(prefix[strlen(prefix) - 1], 29, "\x01(Counter-Terrorist) ", MaxClients);
6237 }
6238 }
6239 if (isLogged[sndr])
6240 {
6241 if (hasTag)
6242 {
6243 new var3;
6244 if (hasClan)
6245 {
6246 var3 = clan_name[sndr];
6247 }
6248 else
6249 {
6250 var3 = 4168104;
6251 }
6252 new var4;
6253 if (hasClan)
6254 {
6255 var4 = 4168092;
6256 }
6257 else
6258 {
6259 var4 = 4168100;
6260 }
6261 format(szMsg, 127, "\x01[\x04%s\x01] [\x03%s\x01]%s\x01%s ", Ranks[Rank[sndr]], ChatTag[sndr], var4, var3);
6262 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6263 }
6264 else
6265 {
6266 new var5;
6267 if (hasClan)
6268 {
6269 var5 = clan_name[sndr];
6270 }
6271 else
6272 {
6273 var5 = 4168176;
6274 }
6275 new var6;
6276 if (hasClan)
6277 {
6278 var6 = 4168164;
6279 }
6280 else
6281 {
6282 var6 = 4168172;
6283 }
6284 format(szMsg, 127, "\x01[\x04%s\x01]%s\x01%s ", Ranks[Rank[sndr]], var6, var5);
6285 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6286 }
6287 }
6288 else
6289 {
6290 format(szMsg, 127, "\x01[\x04%L\x01] ", -1, "NOT_LOGGED");
6291 add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
6292 }
6293 new var7;
6294 if (has_all_flags(sndr, vipFlag) && get_pcvar_num(cvar_VipChatColor))
6295 {
6296 new var8;
6297 if (strlen(prefix) > 1)
6298 {
6299 var8 = prefix;
6300 }
6301 else
6302 {
6303 var8 = 4168316;
6304 }
6305 format(msg, 512, "%s%s%s \x01: \x04%s", var8, COLCHAR[namecol], sndr_name, str4);
6306 }
6307 else
6308 {
6309 new var9;
6310 if (strlen(prefix) > 1)
6311 {
6312 var9 = prefix;
6313 }
6314 else
6315 {
6316 var9 = 4168376;
6317 }
6318 format(msg, 512, "%s%s%s \x01: \x01%s", var9, COLCHAR[namecol], sndr_name, str4);
6319 }
6320 return 1;
6321}
6322
6323public task_clear_antiloop_vars()
6324{
6325 alv_sndr = 0;
6326 return 1;
6327}
6328
6329public Debug(id)
6330{
6331 new szKText[256];
6332 formatex(szKText, 256, "\n%L", id, "KILL_COUNTER", Kills[id] % get_pcvar_num(cvar_KillsRequired), get_pcvar_num(cvar_KillsRequired));
6333 client_print_color(id, MaxClients, "%s", szKText);
6334 return 1;
6335}
6336
6337public Reminder(id)
6338{
6339 client_print_color(id, -2, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_REMINDER");
6340 return 0;
6341}
6342
6343public Event_DeathMsg()
6344{
6345 new iKiller = read_data(1);
6346 new iVictim = read_data(2);
6347 removeEntity(iVictim);
6348 new var1;
6349 if (iVictim != iKiller && !isLogged[iKiller])
6350 {
6351 return 1;
6352 }
6353 g_iEnemiesKilled[iKiller]++;
6354 Kills[iKiller]++;
6355 new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
6356 if (get_pcvar_num(cvar_KeyForKills))
6357 {
6358 new kfk = get_pcvar_num(cvar_KillsRequired);
6359 if (Kills[iKiller] % kfk)
6360 {
6361 }
6362 else
6363 {
6364 new rkey = random_num(1, NULL_VECTOR);
6365 Keys[iKiller][rkey]++;
6366 client_print_color(iKiller, MaxClients, "%L %L", iKiller, "PREFIX_CHAT", iKiller, "KEY_FOR_KILLS", szCKNames[rkey]);
6367 }
6368 }
6369 if (1 < strlen(DeathNote[iKiller]))
6370 {
6371 set_dhudmessage(255, 255, 255, -1082130432, 1049247089, 1, 1086324736, 1077936128, 1036831949, 1069547520);
6372 show_dhudmessage(iVictim, "%s", DeathNote[iKiller]);
6373 }
6374 if (CalibrationKills > Kills[iKiller])
6375 {
6376 Rank[iKiller] = 0;
6377 }
6378 new Float:diff = 0.0;
6379 new Float:total = 0.0;
6380 if (!isLogged[iVictim])
6381 {
6382 diff = 100.0;
6383 }
6384 else
6385 {
6386 diff = Skill[iVictim];
6387 }
6388 new Float:delta = floatdiv(1065353216, floatadd(1065353216, floatpower(1092616192, floatdiv(floatsub(Skill[iKiller], diff), 1120403456))));
6389 new Float:koeff = 0.0;
6390 if (CalibrationKills > Kills[iKiller])
6391 {
6392 koeff = 2.0;
6393 total = floatmul(koeff, delta);
6394 new var7 = Skill[iKiller];
6395 var7 = floatadd(var7, total);
6396 new var8 = Skill[iVictim];
6397 var8 = floatsub(var8, total);
6398 user_name(iVictim);
6399
6400/* ERROR! Can't print expression: Heap */
6401 function "Event_DeathMsg" (number 152)
6402public Event_NewRound()
6403{
6404 RoundStarted = false;
6405 Rounds += 1;
6406 new counter = get_pcvar_num(cvar_RemoveGraffiti);
6407 mvpShown = false;
6408 g_iBombPlanter = 9191;
6409 g_iBombDefuser = 1919;
6410 g_bBombExploded = false;
6411 arrayset(g_iEnemiesHS, MaxClients, 33);
6412 arrayset(g_iEnemiesKilled, MaxClients, 33);
6413 arrayset(graffitiCooldown, MaxClients, 33);
6414 if (!(Rounds % counter))
6415 {
6416 removeGraffiti();
6417 }
6418 return 0;
6419}
6420
6421public logevent_round_start()
6422{
6423 RoundStarted = true;
6424 new spritesEnabled = get_pcvar_num(cvar_EnableRankSprites);
6425 if (spritesEnabled)
6426 {
6427 new spritesMode = get_pcvar_num(cvar_RankSpriteMode);
6428 if (!spritesMode)
6429 {
6430 removeEntities();
6431 }
6432 }
6433 return 0;
6434}
6435
6436public Event_RoundWon_T()
6437{
6438 set_task(1056964608, "CheckTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
6439 return 0;
6440}
6441
6442public CheckTConditions()
6443{
6444 new var1;
6445 if (g_iBombPlanter != 9191 && g_bBombExploded == true)
6446 {
6447 ShowMVPMessage(g_iBombPlanter, 3);
6448 }
6449 else
6450 {
6451 new iTopKiller = GetTopKiller(1);
6452 ShowMVPMessage(iTopKiller, 1);
6453 }
6454 return 0;
6455}
6456
6457public Event_RoundWon_CT()
6458{
6459 set_task(1056964608, "CheckCTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
6460 return 0;
6461}
6462
6463public CheckCTConditions()
6464{
6465 if (g_iBombDefuser != 1919)
6466 {
6467 ShowMVPMessage(g_iBombDefuser, 2);
6468 }
6469 else
6470 {
6471 new iTopKiller = GetTopKiller(2);
6472 ShowMVPMessage(iTopKiller, 1);
6473 }
6474 return 0;
6475}
6476
6477public bomb_planted(iPlanter)
6478{
6479 new flags = user_flags(iPlanter);
6480 new ptsplant = get_pcvar_num(cvar_plantpts);
6481 new vptsplant = get_pcvar_num(cvar_vipplantbonus);
6482 new aptsplant = get_pcvar_num(cvar_adminplantbonus);
6483 new vipenabled = get_pcvar_num(cvar_vipenablebonus);
6484 new adminenabled = get_pcvar_num(cvar_adminenablebonus);
6485 set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
6486 new var1;
6487 if (flags == 2 && !adminenabled)
6488 {
6489 if (vipenabled)
6490 {
6491 flags = 1;
6492 }
6493 flags = 0;
6494 }
6495 new var2;
6496 if (flags == 1 && !vipenabled)
6497 {
6498 flags = 0;
6499 }
6500 switch (flags)
6501 {
6502 case 0:
6503 {
6504 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_KILL", ptsplant);
6505 AddPoints(iPlanter, ptsplant);
6506 }
6507 case 1:
6508 {
6509 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_VIPKILL", ptsplant, vptsplant);
6510 AddPoints(iPlanter, vptsplant + ptsplant);
6511 }
6512 case 2:
6513 {
6514 show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_ADMINKILL", ptsplant, aptsplant);
6515 AddPoints(iPlanter, aptsplant + ptsplant);
6516 }
6517 default:
6518 {
6519 }
6520 }
6521 UpdateStats(iPlanter);
6522 g_iBombPlanter = iPlanter;
6523 return 0;
6524}
6525
6526public bomb_explode(iPlanter, iDefuser)
6527{
6528 g_bBombExploded = true;
6529 return 0;
6530}
6531
6532public bomb_defused(iDefuser)
6533{
6534 new flags = user_flags(iDefuser);
6535 new ptsplant = get_pcvar_num(cvar_defusepts);
6536 new vptsplant = get_pcvar_num(cvar_vipdefusebonus);
6537 new aptsplant = get_pcvar_num(cvar_admindefusebonus);
6538 new vipenabled = get_pcvar_num(cvar_vipenablebonus);
6539 new adminenabled = get_pcvar_num(cvar_adminenablebonus);
6540 set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
6541 new var1;
6542 if (flags == 2 && !adminenabled)
6543 {
6544 if (vipenabled)
6545 {
6546 flags = 1;
6547 }
6548 flags = 0;
6549 }
6550 new var2;
6551 if (flags == 1 && !vipenabled)
6552 {
6553 flags = 0;
6554 }
6555 switch (flags)
6556 {
6557 case 0:
6558 {
6559 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_KILL", ptsplant);
6560 AddPoints(iDefuser, ptsplant);
6561 }
6562 case 1:
6563 {
6564 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_VIPKILL", ptsplant, vptsplant);
6565 AddPoints(iDefuser, vptsplant + ptsplant);
6566 }
6567 case 2:
6568 {
6569 show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_ADMINKILL", ptsplant, aptsplant);
6570 AddPoints(iDefuser, aptsplant + ptsplant);
6571 }
6572 default:
6573 {
6574 }
6575 }
6576 UpdateStats(iDefuser);
6577 g_iBombDefuser = iDefuser;
6578 return 0;
6579}
6580
6581ShowMVPMessage(iMVP, iReason)
6582{
6583 new playerCount = get_pcvar_num(cvar_MvpPlayers);
6584 if (playerCount > get_playersnum(MaxClients))
6585 {
6586 return 1;
6587 }
6588 new red = random_num(1, 255);
6589 new green = random_num(1, 255);
6590 new blue = random_num(1, 255);
6591 new players[32];
6592 new pnum;
6593 new tempid;
6594 get_players(players, pnum, "ch", 4130124);
6595 new szMVPName[32];
6596 new pointsamount = get_pcvar_num(cvar_MvpPointsAmount);
6597 new minmvp = get_pcvar_num(cvar_MinMVPPlayers);
6598 get_user_name(iMVP, szMVPName, 31);
6599 set_dhudmessage(red, green, blue, -1082130432, 1059481190, 1, 1086324736, 1077936128, 1036831949, 1069547520);
6600 new isWav = equali(MVPSoundPath[MVPSound[iMVP]][strlen(MVPSoundPath[MVPSound[iMVP]]) - 4], ".wav", MaxClients);
6601 new var1;
6602 if (isLogged[iMVP] && !mvpShown)
6603 {
6604 mvpShown = true;
6605 switch (iReason)
6606 {
6607 case 1:
6608 {
6609 if (1 > g_iEnemiesKilled[iMVP])
6610 {
6611 return 1;
6612 }
6613 show_dhudmessage(MaxClients, "%L", -1, "MVP_KILLS", szMVPName, g_iEnemiesKilled[iMVP], g_iEnemiesHS[iMVP], MVPSounds[MVPSound[iMVP]]);
6614 }
6615 case 2:
6616 {
6617 show_dhudmessage(MaxClients, "%L", -1, "MVP_DEFUSE", szMVPName, MVPSounds[MVPSound[iMVP]]);
6618 }
6619 case 3:
6620 {
6621 show_dhudmessage(MaxClients, "%L", -1, "MVP_PLANT", szMVPName, MVPSounds[MVPSound[iMVP]]);
6622 }
6623 default:
6624 {
6625 }
6626 }
6627 new i;
6628 while (i < pnum)
6629 {
6630 tempid = players[i];
6631 if (MVPEnabled[tempid])
6632 {
6633 client_cmd(tempid, "stopsound");
6634 client_cmd(tempid, "mp3 stop");
6635 if (isWav)
6636 {
6637 client_cmd(tempid, "spk %s", MVPSoundPath[MVPSound[iMVP]]);
6638 }
6639 else
6640 {
6641 client_cmd(tempid, "mp3 play sound/%s", MVPSoundPath[MVPSound[iMVP]]);
6642 }
6643 }
6644 i++;
6645 }
6646 Mvp[iMVP]++;
6647 new vipFlag[32];
6648 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6649 new var2;
6650 if (get_pcvar_num(cvar_MvpRewardVIP) && get_playersnum(MaxClients) >= minmvp)
6651 {
6652 if (has_all_flags(iMVP, vipFlag))
6653 {
6654 new var3 = Points[iMVP];
6655 var3 = var3[pointsamount];
6656 client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS_VIP", pointsamount);
6657 }
6658 }
6659 else
6660 {
6661 if (minmvp <= get_playersnum(MaxClients))
6662 {
6663 new var4 = Points[iMVP];
6664 var4 = var4[pointsamount];
6665 client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS", pointsamount);
6666 }
6667 }
6668 }
6669 UpdateStats(iMVP);
6670 return 1;
6671}
6672
6673GetTopKiller(iTeam)
6674{
6675 new iPlayers[32];
6676 new iPlayersnum;
6677 new var1;
6678 if (iTeam == 1)
6679 {
6680 var1 = 4171484;
6681 }
6682 else
6683 {
6684 var1 = 4171524;
6685 }
6686 get_players(iPlayers, iPlayersnum, 4171476, var1);
6687 SortCustom1D(iPlayers, iPlayersnum, "SortByKills", {0}, MaxClients);
6688 return iPlayers[0];
6689}
6690
6691public SortByKills(elem1, elem2)
6692{
6693 if (g_iEnemiesKilled[elem2] < g_iEnemiesKilled[elem1])
6694 {
6695 return -1;
6696 }
6697 return 1;
6698}
6699
6700public PlayerData(id)
6701{
6702 new var1;
6703 if (isLogged[id] && HudEnabled[id])
6704 {
6705 new szText[256];
6706 new wId = get_user_weapon(id, 0, 0);
6707 new iSpecPlayer = pev(id, 101);
6708 new SkinName[128];
6709 set_hudmessage(64, 64, 64, 1028443341, 1041865114, MaxClients, MaxClients, floatadd(1065353216, 1036831949), MaxClients, MaxClients, -1);
6710 new var2;
6711 if (is_user_alive(iSpecPlayer) && !is_user_alive(id))
6712 {
6713 if (g_bUsingGuns[iSpecPlayer][wId])
6714 {
6715 format_skin_name(SkinName, 128, g_bUsingGuns[iSpecPlayer][wId], 2);
6716 new var3;
6717 if (clan_inclan[iSpecPlayer])
6718 {
6719 var3 = clan_name[iSpecPlayer];
6720 }
6721 else
6722 {
6723 var3 = 4171840;
6724 }
6725 user_name(iSpecPlayer);
6726
6727/* ERROR! Can't print expression: Heap */
6728 function "PlayerData" (number 165)
6729user_flags(id)
6730{
6731 new vipFlag[32];
6732 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
6733 new adminFlag[32];
6734 get_pcvar_string(cvar_adminFlag, adminFlag, 32);
6735 if (has_all_flags(id, adminFlag))
6736 {
6737 return 2;
6738 }
6739 if (has_all_flags(id, vipFlag))
6740 {
6741 return 1;
6742 }
6743 return 0;
6744}
6745
6746public NameChange(id)
6747{
6748 new var1;
6749 if (!is_user_connected(id) || is_user_bot(id))
6750 {
6751 return 1;
6752 }
6753 new OldName[32];
6754 new NewName[32];
6755 new Name[32];
6756 get_user_name(id, Name, 31);
6757 pev(id, 6, OldName, 31);
6758 if (OldName[0])
6759 {
6760 get_user_info(id, "name", NewName, 31);
6761 if (!equal(OldName, NewName, MaxClients))
6762 {
6763 set_user_info(id, "name", OldName);
6764 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NAMECHANGE_DISABLED");
6765 return 2;
6766 }
6767 }
6768 return 1;
6769}
6770
6771public native_set_user_points(id, amount)
6772{
6773 Points[id] = amount;
6774 UpdateStats(id);
6775 return 0;
6776}
6777
6778public native_get_user_points(id)
6779{
6780 return Points[id];
6781}
6782
6783public native_get_usergo_id(id)
6784{
6785 return ID[id];
6786}
6787
6788public native_set_user_ck(id, ck, num, amount)
6789{
6790 if (ck)
6791 {
6792 new var1 = Keys[id][num];
6793 var1 = var1[amount];
6794 }
6795 else
6796 {
6797 new var2 = Cases[id][num];
6798 var2 = var2[amount];
6799 }
6800 UpdateItems(id);
6801 return 0;
6802}
6803
6804public native_is_user_logged(id)
6805{
6806 if (isLogged[id])
6807 {
6808 return 1;
6809 }
6810 return 0;
6811}
6812
6813public SavePass(id)
6814{
6815 set_user_info(id, "gopw", Password[id]);
6816 client_cmd(id, "setinfo gopw %s", Password[id]);
6817 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASS_SAVED");
6818 return 1;
6819}
6820
6821public Rankz(id)
6822{
6823 new Data[1];
6824 Data[0] = id;
6825 new szTemp[512];
6826 format(szTemp, 511, "SELECT COUNT(*) FROM csgo_stats WHERE `skill` >= '%.2f'", Skill[id]);
6827 SQL_ThreadQuery(g_SqlTuple, "Rank_QueryHandler", szTemp, Data, 1);
6828 return 0;
6829}
6830
6831public Rank_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6832{
6833 if (FailState == -2)
6834 {
6835 return 1;
6836 }
6837 new id = Data[0];
6838 g_iRank[id] = SQL_ReadResult(Query, MaxClients);
6839 TotalRows(id);
6840 return 1;
6841}
6842
6843public TotalRows(id)
6844{
6845 new Data[1];
6846 Data[0] = id;
6847 new szTemp[128];
6848 format(szTemp, 127, "SELECT COUNT(*) FROM csgo_stats");
6849 SQL_ThreadQuery(g_SqlTuple, "TotalRows_QueryHandler", szTemp, Data, 1);
6850 return 0;
6851}
6852
6853public TotalRows_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6854{
6855 if (FailState == -2)
6856 {
6857 return 1;
6858 }
6859 new id = Data[0];
6860 g_iCount = SQL_ReadResult(Query, MaxClients);
6861 new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
6862 if (CalibrationKills <= Kills[id])
6863 {
6864 if (!g_iRank[id])
6865 {
6866 g_iRank[id] = 1;
6867 }
6868 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK", g_iRank[id], g_iCount, Kills[id], Skill[id]);
6869 }
6870 else
6871 {
6872 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK_UNRANKED", CalibrationKills - Kills[id]);
6873 }
6874 return 1;
6875}
6876
6877public MySql_Init()
6878{
6879 new host[128];
6880 new user[128];
6881 new pass[128];
6882 new db[128];
6883 get_pcvar_string(cvar_SqlHost, host, cvar_SqlUser);
6884 get_pcvar_string(cvar_SqlUser, user, cvar_SqlUser);
6885 get_pcvar_string(cvar_SqlPass, pass, cvar_SqlUser);
6886 get_pcvar_string(cvar_SqlDb, db, cvar_SqlUser);
6887 g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db, MaxClients);
6888 SQL_SetCharset(g_SqlTuple, "utf8");
6889 new ErrorCode;
6890 new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, g_Error, 511);
6891 if (!SqlConnection)
6892 {
6893 set_fail_state(g_Error);
6894 }
6895 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));");
6896 SQL_Execute(Queries);
6897 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));");
6898 SQL_Execute(Queries);
6899 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));");
6900 SQL_Execute(Queries);
6901 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));");
6902 SQL_Execute(Queries);
6903 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));");
6904 SQL_Execute(Queries);
6905 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);");
6906 SQL_Execute(Queries);
6907 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));");
6908 SQL_Execute(Queries);
6909 if (!SQL_Execute(Queries))
6910 {
6911 SQL_QueryError(Queries, g_Error, 511);
6912 set_fail_state(g_Error);
6913 }
6914 SQL_FreeHandle(Queries);
6915 SQL_FreeHandle(SqlConnection);
6916 GetCKData();
6917 GetSkinData();
6918 return 0;
6919}
6920
6921public plugin_end()
6922{
6923 SQL_FreeHandle(g_SqlTuple);
6924 return 0;
6925}
6926
6927public sql_IsRegister(id)
6928{
6929 new szTemp[1024];
6930 new Data[1];
6931 Data[0] = id;
6932 new szName[32];
6933 user_name_sql(szName, 32, id);
6934 format(szTemp, 1023, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
6935 SQL_ThreadQuery(g_SqlTuple, "check_client", szTemp, Data, 1);
6936 return 0;
6937}
6938
6939public check_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6940{
6941 new id = Data[0];
6942 if (1 > SQL_NumResults(Query))
6943 {
6944 isRegistered[id] = 0;
6945 }
6946 else
6947 {
6948 isRegistered[id] = 1;
6949 get_user_info(id, "gopw", cfgPassword[id], 32);
6950 ID[id] = SQL_ReadResult(Query, MaxClients);
6951 SQL_ReadResult(Query, 2, sqlPassword[id], 32);
6952 if (equal(cfgPassword[id], sqlPassword[id], MaxClients))
6953 {
6954 passwordMatches[id] = 1;
6955 isLogged[id] = 1;
6956 UpdatePlayer(id);
6957 set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4181660, MaxClients);
6958 client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_SUCCESS");
6959 sql_RetrieveUserItems(id);
6960 sql_RetrieveUserStats(id);
6961 sql_RetrieveUserSettings(id);
6962 sql_RetrieveUserMisc(id);
6963 set_task(1072064102, "GetClanData", id, 4109032, MaxClients, 4109036, MaxClients);
6964 set_task(1072064102, "SetSkin", id, 4109032, MaxClients, 4109036, MaxClients);
6965 if (is_user_alive(id))
6966 {
6967 set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
6968 }
6969 client_print(id, NULL_STRING, "%L", id, "DATA_LOADING");
6970 }
6971 }
6972 return 1;
6973}
6974
6975public sql_RegisterUser(id)
6976{
6977 new szTemp[2048];
6978 new Data[1];
6979 Data[0] = id;
6980 new szName[32];
6981 user_name_sql(szName, 32, id);
6982 format(szTemp, 2047, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
6983 SQL_ThreadQuery(g_SqlTuple, "register_client", szTemp, Data, 1);
6984 return 0;
6985}
6986
6987public register_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
6988{
6989 if (FailState == -2)
6990 {
6991 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
6992 }
6993 else
6994 {
6995 if (FailState == -1)
6996 {
6997 log_amx("Load Query failed. [%d] %s", Errcode, Error);
6998 }
6999 }
7000 new id = Data[0];
7001 new year;
7002 new month;
7003 new day;
7004 date(year, month, day);
7005 new szSteamId[32];
7006 new szIP[40];
7007 new szName[32];
7008 user_name_sql(szName, 32, id);
7009 get_user_authid(id, szSteamId, 31);
7010 get_user_ip(id, szIP, 39, 1);
7011 if (1 > SQL_NumResults(Query))
7012 {
7013 new szTemp[2048];
7014 new szSkins[512];
7015 new szKSkins[512];
7016 new szUGuns[128];
7017 new szChests[128];
7018 new szKeys[128];
7019 new szGraffities[128];
7020 format(szSkins, 512, 4182624);
7021 format(szKSkins, 512, 4182628);
7022 format(szUGuns, cvar_SqlUser, 4182632);
7023 format(szChests, cvar_SqlUser, 4182636);
7024 format(szKeys, cvar_SqlUser, 4182640);
7025 new i;
7026 while (i < 300)
7027 {
7028 format(szSkins, 512, "%s%d ", szSkins, UserSkins[i][id]);
7029 format(szKSkins, 512, "%s%d ", szKSkins, UserStattrak[i][id]);
7030 i++;
7031 }
7032 new i;
7033 while (i < 32)
7034 {
7035 format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
7036 i++;
7037 }
7038 new i;
7039 while (i <= 8)
7040 {
7041 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7042 i++;
7043 }
7044 new i;
7045 while (i <= 8)
7046 {
7047 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7048 i++;
7049 }
7050 new i;
7051 while (i < 64)
7052 {
7053 format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
7054 i++;
7055 }
7056 new rSong = random_num(1, AllSounds);
7057 while (MVPSoundVIP[rSong])
7058 {
7059 rSong = random_num(1, AllSounds);
7060 }
7061 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);
7062 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7063 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);
7064 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7065 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);
7066 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7067 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);
7068 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7069 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]);
7070 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7071 }
7072 else
7073 {
7074 ID[id] = SQL_ReadResult(Query, MaxClients);
7075 }
7076 return 1;
7077}
7078
7079public sql_RetrieveUserMisc(id)
7080{
7081 new szTemp[1024];
7082 new Data[1];
7083 Data[0] = id;
7084 new szName[32];
7085 user_name_sql(szName, 32, id);
7086 format(szTemp, 1023, "SELECT * FROM `csgo_misc` WHERE (`csgo_misc`.`username` = '%s')", szName);
7087 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_misc", szTemp, Data, 1);
7088 return 0;
7089}
7090
7091public retrieve_user_misc(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7092{
7093 if (FailState == -2)
7094 {
7095 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7096 }
7097 else
7098 {
7099 if (FailState == -1)
7100 {
7101 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7102 }
7103 }
7104 new id;
7105 new szTemp[512];
7106 id = Data[0];
7107 new szGraffities[128];
7108 new szName[32];
7109 user_name_sql(szName, 32, id);
7110 if (SQL_NumResults(Query) == 1)
7111 {
7112 ChatInk[id] = SQL_ReadResult(Query, 2);
7113 SQL_ReadResult(Query, 3, ChatTag[id], 33);
7114 SelectedGraffiti[id] = SQL_ReadResult(Query, NULL_STRING);
7115 SQL_ReadResult(Query, 5, szGraffities, 128);
7116 GraffitiBox[id] = SQL_ReadResult(Query, 6);
7117 iDay[id] = SQL_ReadResult(Query, 7);
7118 if (g_iDay == iDay[id])
7119 {
7120 Rewarded[id] = 1;
7121 }
7122 new myNumbers[256];
7123 new count = ExplodeString(szGraffities, myNumbers, 256);
7124 if (count)
7125 {
7126 new i = 1;
7127 while (i < 64)
7128 {
7129 UserGraffiti[i][id] = myNumbers[i];
7130 i++;
7131 }
7132 }
7133 if (1 < strlen(clan_name[id]))
7134 {
7135 clan_inclan[id] = 1;
7136 }
7137 }
7138 else
7139 {
7140 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]);
7141 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7142 }
7143 return 1;
7144}
7145
7146public sql_RetrieveUserItems(id)
7147{
7148 new szTemp[1024];
7149 new Data[1];
7150 Data[0] = id;
7151 new szName[32];
7152 user_name_sql(szName, 32, id);
7153 format(szTemp, 1023, "SELECT * FROM `csgo_items` WHERE (`csgo_items`.`username` = '%s')", szName);
7154 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_items", szTemp, Data, 1);
7155 return 0;
7156}
7157
7158public retrieve_user_items(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7159{
7160 if (FailState == -2)
7161 {
7162 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7163 }
7164 else
7165 {
7166 if (FailState == -1)
7167 {
7168 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7169 }
7170 }
7171 new id = Data[0];
7172 new year;
7173 new month;
7174 new day;
7175 date(year, month, day);
7176 new szSteamId[32];
7177 new szIP[40];
7178 get_user_authid(id, szSteamId, 31);
7179 get_user_ip(id, szIP, 39, 1);
7180 if (SQL_NumResults(Query) == 1)
7181 {
7182 new szSkins[812];
7183 new szKSkins[812];
7184 new szUGuns[256];
7185 new szChests[128];
7186 new szKeys[128];
7187 SQL_ReadResult(Query, 2, szChests, 128);
7188 SQL_ReadResult(Query, 3, szKeys, 128);
7189 SQL_ReadResult(Query, NULL_STRING, szSkins, 812);
7190 SQL_ReadResult(Query, 5, szUGuns, 256);
7191 SQL_ReadResult(Query, 6, szKSkins, 812);
7192 SQL_NextRow(Query);
7193 new myNumbers[812];
7194 new count = ExplodeString(szSkins, myNumbers, 812);
7195 if (count)
7196 {
7197 new i = 1;
7198 while (i < 300)
7199 {
7200 UserSkins[i][id] = myNumbers[i];
7201 i++;
7202 }
7203 }
7204 count = ExplodeString(szKSkins, myNumbers, 812);
7205 if (count)
7206 {
7207 new i = 1;
7208 while (i < 300)
7209 {
7210 UserStattrak[i][id] = myNumbers[i];
7211 i++;
7212 }
7213 }
7214 count = ExplodeString(szUGuns, myNumbers, 812);
7215 if (count)
7216 {
7217 new i = 1;
7218 while (i < 32)
7219 {
7220 if (300 >= myNumbers[i])
7221 {
7222 new var1;
7223 if (UserSkins[myNumbers[i]][id] && Weapons[myNumbers[i]] == i)
7224 {
7225 g_bUsingGuns[id][i] = myNumbers[i];
7226 }
7227 }
7228 i++;
7229 }
7230 }
7231 count = ExplodeString(szChests, myNumbers, 812);
7232 if (count)
7233 {
7234 new i = 1;
7235 while (i <= 8)
7236 {
7237 Cases[id][i] = myNumbers[i];
7238 i++;
7239 }
7240 }
7241 count = ExplodeString(szKeys, myNumbers, 812);
7242 if (count)
7243 {
7244 new i = 1;
7245 while (i <= 8)
7246 {
7247 Keys[id][i] = myNumbers[i];
7248 i++;
7249 }
7250 }
7251 }
7252 return 1;
7253}
7254
7255public sql_RetrieveUserSettings(id)
7256{
7257 new szTemp[1024];
7258 new Data[1];
7259 Data[0] = id;
7260 new szName[32];
7261 user_name_sql(szName, 32, id);
7262 format(szTemp, 1023, "SELECT * FROM `csgo_settings` WHERE (`csgo_settings`.`username` = '%s')", szName);
7263 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_settings", szTemp, Data, 1);
7264 return 0;
7265}
7266
7267public retrieve_user_settings(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7268{
7269 if (FailState == -2)
7270 {
7271 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7272 }
7273 else
7274 {
7275 if (FailState == -1)
7276 {
7277 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7278 }
7279 }
7280 new id = Data[0];
7281 new vipFlag[32];
7282 get_pcvar_string(cvar_vipFlag, vipFlag, 32);
7283 new year;
7284 new month;
7285 new day;
7286 date(year, month, day);
7287 new szSteamId[32];
7288 new szIP[40];
7289 get_user_authid(id, szSteamId, 31);
7290 get_user_ip(id, szIP, 39, 1);
7291 if (SQL_NumResults(Query) == 1)
7292 {
7293 HudEnabled[id] = SQL_ReadResult(Query, 2);
7294 MVPSound[id] = SQL_ReadResult(Query, 3);
7295 MVPEnabled[id] = SQL_ReadResult(Query, NULL_STRING);
7296 FactionT[id] = SQL_ReadResult(Query, 5);
7297 FactionCT[id] = SQL_ReadResult(Query, 6);
7298 }
7299 new var1;
7300 if (!has_all_flags(id, vipFlag) && MVPSoundVIP[MVPSound[id]])
7301 {
7302 MVPSound[id] = 0;
7303 }
7304 return 1;
7305}
7306
7307public sql_RetrieveUserStats(id)
7308{
7309 new szTemp[1024];
7310 new Data[1];
7311 Data[0] = id;
7312 new szName[32];
7313 user_name_sql(szName, 32, id);
7314 format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE (`csgo_stats`.`username` = '%s')", szName);
7315 SQL_ThreadQuery(g_SqlTuple, "retrieve_user_stats", szTemp, Data, 1);
7316 return 0;
7317}
7318
7319public retrieve_user_stats(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7320{
7321 if (FailState == -2)
7322 {
7323 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7324 }
7325 else
7326 {
7327 if (FailState == -1)
7328 {
7329 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7330 }
7331 }
7332 new id = Data[0];
7333 new year;
7334 new month;
7335 new day;
7336 date(year, month, day);
7337 new szSteamId[32];
7338 new szIP[40];
7339 get_user_authid(id, szSteamId, 31);
7340 get_user_ip(id, szIP, 39, 1);
7341 if (SQL_NumResults(Query) == 1)
7342 {
7343 ID[id] = SQL_ReadResult(Query, MaxClients);
7344 Points[id] = SQL_ReadResult(Query, 2);
7345 Kills[id] = SQL_ReadResult(Query, 3);
7346 Rank[id] = SQL_ReadResult(Query, NULL_STRING);
7347 Level[id] = SQL_ReadResult(Query, 5);
7348 Mvp[id] = SQL_ReadResult(Query, 6);
7349 SQL_ReadResult(Query, 7, clan_name[id], 64);
7350 clan_playerpos[id] = SQL_ReadResult(Query, NULL_VECTOR);
7351 Dusts[id] = SQL_ReadResult(Query, 9);
7352 hasDeathNote[id] = SQL_ReadResult(Query, 10);
7353 SQL_ReadResult(Query, 11, DeathNote[id], 33);
7354 SQL_ReadResult(Query, 12, Skill[id]);
7355 if (1 < strlen(clan_name[id]))
7356 {
7357 clan_inclan[id] = 1;
7358 }
7359 }
7360 return 1;
7361}
7362
7363public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7364{
7365 SQL_FreeHandle(Query);
7366 return 1;
7367}
7368
7369bool:ValidMdl(Mdl[])
7370{
7371 new var1;
7372 if (containi(Mdl, ".mdl") != -1)
7373 {
7374 var1 = true;
7375 }
7376 else
7377 {
7378 var1 = false;
7379 }
7380 return var1;
7381}
7382
7383user_name(id, _arg1)
7384{
7385 new szName[33];
7386 get_user_name(id, szName, 32);
7387 return szName;
7388}
7389
7390user_name_sql(buffer[], size, id)
7391{
7392 new szName[32];
7393 get_user_name(id, szName, 31);
7394 replace_all(szName, 32, "\\", "\\\\");
7395 replace_all(szName, 32, "\0", "\\0");
7396 replace_all(szName, 32, "\n", "\\n");
7397 replace_all(szName, 32, "\r", "\\r");
7398 replace_all(szName, 32, "\x1a", "\Z");
7399 replace_all(szName, 32, 4189660, "\'");
7400 replace_all(szName, 32, 4189680, "\\"");
7401 formatex(buffer, size, "%s", szName);
7402 return 0;
7403}
7404
7405TrimDeathnote(id, buffer[], size)
7406{
7407 replace_all(DeathNote[id], 33, 4189712, 4189720);
7408 replace_all(DeathNote[id], 33, 4189724, "\\"");
7409 formatex(buffer, size, "%s", DeathNote[id]);
7410 return 0;
7411}
7412
7413ExplodeString(string[], output[], olen)
7414{
7415 new len = strlen(string);
7416 if (!len)
7417 {
7418 return 0;
7419 }
7420 new i;
7421 new c;
7422 new j;
7423 new count;
7424 new number[12];
7425 do {
7426 while (string[i] == 32)
7427 {
7428 i++;
7429 }
7430 while (var3 && c != 32)
7431 {
7432 }
7433 count++;
7434 output[count] = str_to_num(number);
7435 j = 0;
7436 new var2;
7437 if (!(i < len && count < olen))
7438 {
7439 return count;
7440 }
7441 } while (var2);
7442 return count;
7443}
7444
7445public UpdateMisc(id)
7446{
7447 new szGraffities[128];
7448 new i;
7449 while (i < 64)
7450 {
7451 format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
7452 i++;
7453 }
7454 new szTemp[2200];
7455 new szName[32];
7456 user_name_sql(szName, 32, id);
7457 new var1;
7458 if (isLogged[id] && isRegistered[id])
7459 {
7460 TrimDeathnote(id, DeathNote[id], 33);
7461 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);
7462 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7463 }
7464 return 0;
7465}
7466
7467public UpdateStats(id)
7468{
7469 new szTemp[2048];
7470 new szName[32];
7471 user_name_sql(szName, 32, id);
7472 new var1;
7473 if (isLogged[id] && isRegistered[id])
7474 {
7475 TrimDeathnote(id, DeathNote[id], 33);
7476 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);
7477 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7478 }
7479 return 0;
7480}
7481
7482public UpdatePlayer(id)
7483{
7484 new szTemp[2048];
7485 new szName[32];
7486 user_name_sql(szName, 32, id);
7487 new var1;
7488 if (isLogged[id])
7489 {
7490 var1 = 1;
7491 }
7492 else
7493 {
7494 var1 = 0;
7495 }
7496 isOnline[id] = var1;
7497 format(szTemp, 2047, "UPDATE `csgo_player` SET `is_online` = '%d' WHERE `username` = '%s';", isOnline[id], szName);
7498 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7499 return 0;
7500}
7501
7502public AddClan(id)
7503{
7504 new szTemp[1024];
7505 new var1;
7506 if (isLogged[id] && isRegistered[id])
7507 {
7508 format(szTemp, 1023, "INSERT INTO `csgo_clan` (`clan_name`) VALUES ('%s');", clan_name[id]);
7509 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7510 }
7511 return 0;
7512}
7513
7514public UpdateSettings(id)
7515{
7516 new szTemp[1024];
7517 new szName[32];
7518 user_name_sql(szName, 32, id);
7519 new var1;
7520 if (isLogged[id] && isRegistered[id])
7521 {
7522 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);
7523 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7524 }
7525 return 0;
7526}
7527
7528public AddSkinToMarket(id)
7529{
7530 new szTemp[1024];
7531 new szName[32];
7532 user_name_sql(szName, 32, id);
7533 new var1;
7534 if (isLogged[id] && isRegistered[id])
7535 {
7536 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]);
7537 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7538 }
7539 return 0;
7540}
7541
7542public AddCKToMarket(id)
7543{
7544 new szTemp[1024];
7545 new szName[32];
7546 user_name_sql(szName, 32, id);
7547 new var1;
7548 if (isLogged[id] && isRegistered[id])
7549 {
7550 new var2;
7551 if (SelectedTypeMarket[id])
7552 {
7553 var2 = SelectedItemMarket[id];
7554 }
7555 else
7556 {
7557 var2 = 0;
7558 }
7559 new var3;
7560 if (!SelectedTypeMarket[id])
7561 {
7562 var3 = SelectedItemMarket[id];
7563 }
7564 else
7565 {
7566 var3 = 0;
7567 }
7568 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]);
7569 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7570 }
7571 return 0;
7572}
7573
7574public UpdateCK(id)
7575{
7576 new szTemp[1024];
7577 new szName[32];
7578 user_name_sql(szName, 32, id);
7579 new var1;
7580 if (isLogged[id] && isRegistered[id])
7581 {
7582 new szChests[128];
7583 new szKeys[128];
7584 new i;
7585 while (i <= 8)
7586 {
7587 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7588 i++;
7589 }
7590 new i;
7591 while (i <= 8)
7592 {
7593 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7594 i++;
7595 }
7596 format(szTemp, 1023, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s' WHERE username = '%s';", szChests, szKeys, szName);
7597 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7598 }
7599 return 0;
7600}
7601
7602public UpdateCKMarket(iNum)
7603{
7604 new szTemp[1024];
7605 replace_all(marketseller[iNum], 1027, 4194408, "\'");
7606 replace_all(marketseller[iNum], 1027, 4194428, "\\"");
7607 format(szTemp, 1023, "UPDATE `csgo_market` SET `quantity` = '%d' WHERE id = '%d';", marketquantity[iNum], marketid[iNum]);
7608 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7609 return 0;
7610}
7611
7612public UpdateItems(id)
7613{
7614 new szTemp[1028];
7615 new szName[32];
7616 user_name_sql(szName, 32, id);
7617 if (isLogged[id])
7618 {
7619 new szSkins[1028];
7620 new szKSkins[1028];
7621 new szUGuns[128];
7622 new szChests[128];
7623 new szKeys[128];
7624 format(szSkins, 1028, 4194740);
7625 format(szKSkins, 1028, 4194744);
7626 format(szUGuns, cvar_SqlUser, 4194748);
7627 format(szChests, cvar_SqlUser, 4194752);
7628 format(szKeys, cvar_SqlUser, 4194756);
7629 new i;
7630 while (i < 300)
7631 {
7632 format(szSkins, 1028, "%s%d ", szSkins, UserSkins[i][id]);
7633 format(szKSkins, 1028, "%s%d ", szKSkins, UserStattrak[i][id]);
7634 i++;
7635 }
7636 new i;
7637 while (i < 32)
7638 {
7639 format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
7640 i++;
7641 }
7642 new i;
7643 while (i <= 8)
7644 {
7645 format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
7646 i++;
7647 }
7648 new i;
7649 while (i <= 8)
7650 {
7651 format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
7652 i++;
7653 }
7654 format(szTemp, 1027, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s', `stattrak` = '%s' WHERE `username` = '%s';", szChests, szKeys, szKSkins, szName);
7655 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7656 format(szTemp, 1027, "UPDATE `csgo_items` SET `skins` = '%s', `skins_used` = '%s' WHERE `username` = '%s';", szSkins, szUGuns, szName);
7657 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7658 }
7659 return 0;
7660}
7661
7662public GetCKData()
7663{
7664 new szTemp[1024];
7665 new Data[1];
7666 format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE quantity = '0' AND skin_id = '0'");
7667 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7668 format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE key_id > 0 OR case_id > 0");
7669 SQL_ThreadQuery(g_SqlTuple, "ck_data", szTemp, Data, 1);
7670 return 0;
7671}
7672
7673public ck_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7674{
7675 if (FailState == -2)
7676 {
7677 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7678 }
7679 else
7680 {
7681 if (FailState == -1)
7682 {
7683 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7684 }
7685 }
7686 new i;
7687 marketckcount = 0;
7688 if (0 < SQL_NumResults(Query))
7689 {
7690 while (SQL_MoreResults(Query))
7691 {
7692 i++;
7693 marketid[i] = SQL_ReadResult(Query, MaxClients);
7694 SQL_ReadResult(Query, 1, marketseller[i], 63);
7695 marketkeys[i] = SQL_ReadResult(Query, NULL_STRING);
7696 marketcases[i] = SQL_ReadResult(Query, 5);
7697 marketquantity[i] = SQL_ReadResult(Query, 6);
7698 marketckprice[i] = SQL_ReadResult(Query, 7);
7699 marketckcount = marketquantity[i][marketckcount];
7700 SQL_NextRow(Query);
7701 }
7702 }
7703 return 1;
7704}
7705
7706public GetClanData(id)
7707{
7708 new szTemp[1024];
7709 new Data[1];
7710 Data[0] = id;
7711 format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE clan_name = '%s' ORDER BY clan_pos DESC", clan_name[id]);
7712 SQL_ThreadQuery(g_SqlTuple, "clan_data", szTemp, Data, 1);
7713 return 0;
7714}
7715
7716public clan_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7717{
7718 if (FailState == -2)
7719 {
7720 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7721 }
7722 else
7723 {
7724 if (FailState == -1)
7725 {
7726 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7727 }
7728 }
7729 new i;
7730 new id = Data[0];
7731 if (0 < SQL_NumResults(Query))
7732 {
7733 while (SQL_MoreResults(Query))
7734 {
7735 SQL_ReadResult(Query, 1, clan_members[id][i], 63);
7736 i++;
7737 SQL_NextRow(Query);
7738 }
7739 }
7740 clan_count[id] = i;
7741 return 1;
7742}
7743
7744public GetSkinData()
7745{
7746 new szTemp[1024];
7747 new Data[1];
7748 format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE skin_id > 0");
7749 SQL_ThreadQuery(g_SqlTuple, "skin_data", szTemp, Data, 1);
7750 return 0;
7751}
7752
7753public skin_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7754{
7755 if (FailState == -2)
7756 {
7757 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7758 }
7759 else
7760 {
7761 if (FailState == -1)
7762 {
7763 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7764 }
7765 }
7766 new i;
7767 if (0 < SQL_NumResults(Query))
7768 {
7769 while (SQL_MoreResults(Query))
7770 {
7771 i++;
7772 marketidskin[i] = SQL_ReadResult(Query, MaxClients);
7773 SQL_ReadResult(Query, 1, marketskinseller[i], 63);
7774 marketwep[i] = SQL_ReadResult(Query, 2);
7775 marketskin[i] = SQL_ReadResult(Query, 3);
7776 marketskinprice[i] = SQL_ReadResult(Query, 7);
7777 SQL_NextRow(Query);
7778 }
7779 }
7780 return 1;
7781}
7782
7783public CheckClanName(id)
7784{
7785 new szTemp[1024];
7786 new Data[1];
7787 Data[0] = id;
7788 replace_all(clan_name[id], 63, 4197792, "\'");
7789 replace_all(clan_name[id], 63, 4197812, "\\"");
7790 format(szTemp, 1023, "SELECT * FROM `csgo_clan` WHERE `clan_name` = '%s'", clan_name[id]);
7791 SQL_ThreadQuery(g_SqlTuple, "clan_check", szTemp, Data, 1);
7792 return 0;
7793}
7794
7795public clan_check(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
7796{
7797 if (FailState == -2)
7798 {
7799 log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
7800 }
7801 else
7802 {
7803 if (FailState == -1)
7804 {
7805 log_amx("Load Query failed. [%d] %s", Errcode, Error);
7806 }
7807 }
7808 new id = Data[0];
7809 if (0 < SQL_NumResults(Query))
7810 {
7811 clan_istaken[id] = 1;
7812 }
7813 else
7814 {
7815 clan_istaken[id] = 0;
7816 }
7817 return 1;
7818}
7819
7820random_item(itemChances[], count)
7821{
7822 static sum;
7823 static i;
7824 static rand;
7825 rand = random(100);
7826 sum = 0;
7827 i = 0;
7828 i = 0;
7829 while (i <= count)
7830 {
7831 sum = itemChances[i][sum];
7832 if (sum > rand)
7833 {
7834 return i;
7835 }
7836 i += 1;
7837 }
7838 return i;
7839}
7840
7841public UpdateStatsOffline(Params[], points)
7842{
7843 replace_all(Params, 63, 4198404, "\'");
7844 replace_all(Params, 63, 4198424, "\\"");
7845 new szTemp[1024];
7846 format(szTemp, 1023, "UPDATE `csgo_stats` SET `points` = points + '%d' WHERE `username` = '%s';", points, Params);
7847 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7848 return 0;
7849}
7850
7851public DeleteFromMarket(playermarketid)
7852{
7853 new szTemp[1024];
7854 format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE `id` = '%d';", playermarketid);
7855 SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
7856 return 0;
7857}
7858
7859public screenfade(id, red, green, blue)
7860{
7861 message_begin(1, get_user_msgid("ScreenFade"), 4199068, id);
7862 write_short(1024);
7863 write_short(1024);
7864 write_short(MaxClients);
7865 write_byte(red);
7866 write_byte(green);
7867 write_byte(blue);
7868 write_byte(75);
7869 message_end();
7870 return 0;
7871}
7872
7873public screenfade_grey(id)
7874{
7875 message_begin(1, get_user_msgid("ScreenFade"), 4199124, id);
7876 write_short(1024);
7877 write_short(1024);
7878 write_short(MaxClients);
7879 write_byte(150);
7880 write_byte(150);
7881 write_byte(150);
7882 write_byte(75);
7883 message_end();
7884 return 0;
7885}
7886
7887public drop_item(id, chance)
7888{
7889 new rNum = random_num(1, 100);
7890 new ck = random_num(1, "amxx_configsdir");
7891 new ckid = random_num(1, NULL_VECTOR);
7892 if (rNum <= chance)
7893 {
7894 if (ck == 1)
7895 {
7896 GraffitiBox[id]++;
7897 user_name(id);
7898
7899/* ERROR! Can't print expression: Heap */
7900 function "drop_item" (number 221)
7901public format_skin_name(buffer[], size, skinid, type)
7902{
7903 switch (type)
7904 {
7905 case 1:
7906 {
7907 if (Weapons[skinid] == 29)
7908 {
7909 replace_all(SkinNames[skinid], 300, "\r", 4199492);
7910 replace_all(SkinNames[skinid], 300, "\y", 4199512);
7911 replace_all(SkinNames[skinid], 300, "\d", 4199532);
7912 replace_all(SkinNames[skinid], 300, "\w", 4199552);
7913 replace_all(SkinNames[skinid], 300, 4199560, "\x01|\x04");
7914 formatex(buffer, size, "%s", SkinNames[skinid]);
7915 }
7916 else
7917 {
7918 formatex(buffer, size, "\x04%s \x01| \x04%s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7919 }
7920 }
7921 case 2:
7922 {
7923 if (Weapons[skinid] == 29)
7924 {
7925 replace_all(SkinNames[skinid], 300, "\r", 4199652);
7926 replace_all(SkinNames[skinid], 300, "\y", 4199668);
7927 replace_all(SkinNames[skinid], 300, "\d", 4199684);
7928 replace_all(SkinNames[skinid], 300, "\w", 4199700);
7929 formatex(buffer, size, "%s", SkinNames[skinid]);
7930 }
7931 else
7932 {
7933 formatex(buffer, size, "%s | %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7934 }
7935 }
7936 case 3:
7937 {
7938 if (Weapons[skinid] == 29)
7939 {
7940 formatex(buffer, size, "%s", SkinNames[skinid]);
7941 }
7942 else
7943 {
7944 formatex(buffer, size, "\r%s \w| %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
7945 }
7946 }
7947 default:
7948 {
7949 }
7950 }
7951 return 0;
7952}
7953
7954public AddPoints(id, amount)
7955{
7956 new lhenabled = get_pcvar_num(cvar_LHEnabled);
7957 new var1;
7958 if (lhenabled && IsLuckyHour())
7959 {
7960 new lhbonus = get_pcvar_num(cvar_LHBonus);
7961 new var2 = Points[id];
7962 var2 = var2[lhbonus * amount];
7963 }
7964 else
7965 {
7966 new var3 = Points[id];
7967 var3 = var3[amount];
7968 }
7969 return 0;
7970}
7971
7972public IsLuckyHour()
7973{
7974 new lhstart = get_pcvar_num(cvar_LHStart);
7975 new lhend = get_pcvar_num(cvar_LHEnd);
7976 new data[3];
7977 get_time("%H", data, 2);
7978 if (lhend > str_to_num(data) >= lhstart)
7979 {
7980 return 1;
7981 }
7982 return 0;
7983}