Advertisement
Guest User

Untitled

a guest
Mar 17th, 2019
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 196.50 KB | None | 0 0
  1. new MaxClients;
  2. new NULL_STRING[1];
  3. new Float:NULL_VECTOR[3];
  4. new cvar_SqlHost;
  5. new xs__ITaskId;
  6. new 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. };
  10. new xs__TaskFlags[5] =
  11. {
  12. 0, 0, 0, 0, 98
  13. };
  14. new 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. };
  18. new xs__TaskId;
  19. new Float:xs__TaskInterval;
  20. new 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. };
  24. new xs__TaskRepeat;
  25. new xs__global_null;
  26. new xs__internalseed;
  27. new 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. };
  48. new xs__maxnum;
  49. new 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. };
  53. new cvar_SqlUser;
  54. new cvar_SqlPass;
  55. new cvar_SqlDb;
  56. new g_szSoundFile[18] =
  57. {
  58. 98, 117, 116, 116, 111, 110, 115, 47, 98, 101, 108, 108, 49, 46, 119, 97, 118, 0
  59. };
  60. new g_szSoundFileCO[18] =
  61. {
  62. 99, 115, 103, 111, 47, 99, 97, 115, 101, 111, 112, 101, 110, 46, 119, 97, 118, 0
  63. };
  64. new g_szSoundFileSpray[18] =
  65. {
  66. 99, 115, 103, 111, 47, 103, 114, 97, 102, 102, 105, 116, 105, 46, 119, 97, 118, 0
  67. };
  68. new Handle:g_SqlTuple;
  69. new g_Error[512];
  70. new COLCHAR[3][2] =
  71. {
  72. {
  73. 3, 0
  74. },
  75. {
  76. 4, 0
  77. },
  78. {
  79. 1, 0
  80. }
  81. };
  82. new g_iRank[33];
  83. new g_iCount;
  84. new flipBet[33];
  85. new bool:inFlip[33];
  86. new flipOpponent[33];
  87. new g_iEnemiesKilled[33];
  88. new g_iEnemiesHS[33];
  89. new g_iBombPlanter;
  90. new g_iBombDefuser;
  91. new bool:mvpShown;
  92. new bool:graffitiCooldown[33];
  93. new UserGraffiti[64][33];
  94. new GraffitiBox[33];
  95. new SelectedGraffiti[33];
  96. new bool:RoundStarted;
  97. new cvar_Advert;
  98. new cvar_LvlSkin;
  99. new cvar_MaxLvlCases;
  100. new cvar_MaxLvlKeys;
  101. new cvar_MaxLvlPoints;
  102. new cvar_LvlBonus;
  103. new cvar_MvpPlayers;
  104. new cvar_RestartRank;
  105. new cvar_RestartCost;
  106. new cvar_MvpRewardVIP;
  107. new cvar_MvpPointsAmount;
  108. new bool:g_bBombExploded;
  109. new Rounds;
  110. new cvar_RemoveGraffiti;
  111. new RankFile[48];
  112. new LevelFile[48];
  113. new SkinFile[48];
  114. new DefFile[48];
  115. new SoundFile[48];
  116. new FactionFile[48];
  117. new Folder[48];
  118. new cvar_ShowTips;
  119. new cvar_ChatRank;
  120. new cvar_VipChatColor;
  121. new cvar_ReviewTime;
  122. new cvar_CasePrice;
  123. new cvar_KeyPrice;
  124. new cvar_ShowPass;
  125. new cvar_TopUrl;
  126. new cvar_ClanUrl;
  127. new cvar_MinMVPPlayers;
  128. new cvar_ClanCost;
  129. new cvar_EnablePModels;
  130. new cvar_EnableWModels;
  131. new cvar_GraffitiCD;
  132. new cvar_LHStart;
  133. new cvar_LHEnd;
  134. new cvar_LHBonus;
  135. new cvar_LHEnabled;
  136. new cvar_InkPrice;
  137. new cvar_EnableRankSprites;
  138. new cvar_RankSpriteMode;
  139. new cvar_vipenablebonus;
  140. new cvar_vipkillbonus;
  141. new cvar_viphsbonus;
  142. new cvar_vipdefusebonus;
  143. new cvar_vipplantbonus;
  144. new cvar_vipdropchance;
  145. new cvar_adminenablebonus;
  146. new cvar_adminkillbonus;
  147. new cvar_adminhsbonus;
  148. new cvar_admindefusebonus;
  149. new cvar_adminplantbonus;
  150. new cvar_admindropchance;
  151. new cvar_killpts;
  152. new cvar_hspts;
  153. new cvar_defusepts;
  154. new cvar_plantpts;
  155. new cvar_DustKnife;
  156. new cvar_DustERare;
  157. new cvar_DustRare;
  158. new cvar_DustUncommon;
  159. new cvar_DustCommon;
  160. new cvar_MinDusts;
  161. new cvar_CalibrationKills;
  162. new cvar_DNPrice;
  163. new cvar_dropchance;
  164. new cvar_vipFlag;
  165. new cvar_adminFlag;
  166. new cvar_KillsRequired;
  167. new cvar_KeyForKills;
  168. new iDay[33];
  169. new g_iDay;
  170. new cvar_RewardMin;
  171. new cvar_RewardMax;
  172. new Rewarded[33];
  173. new ChatInk[33];
  174. new ChatTag[33][64];
  175. new Ranks[30][32];
  176. new Float:RankELO[30];
  177. new Rank[33];
  178. new g_bUsingGuns[33][32];
  179. new Keys[33][9];
  180. new Cases[33][9];
  181. new Levels[45][32];
  182. new KillsForLvl[45];
  183. new Level[33];
  184. new Float:Skill[33];
  185. new Points[33];
  186. new Kills[33];
  187. new Mvp[33];
  188. new UserSkins[300][33];
  189. new UserStattrak[300][33];
  190. new bool:isLogged[33];
  191. new Password[33][64];
  192. new bool:isRegistered[33];
  193. new isOnline[33];
  194. new sqlPassword[33][64];
  195. new cfgPassword[33][64];
  196. new DeathNote[33][128];
  197. new hasDeathNote[33];
  198. new passwordMatches[33];
  199. new ID[33];
  200. new HudEnabled[33];
  201. new MVPSound[33];
  202. new MVPSounds[50][128];
  203. new MVPSoundPath[50][128];
  204. new AllSounds;
  205. new MVPSoundVIP[50];
  206. new MVPEnabled[33];
  207. new Odds[5] =
  208. {
  209. 1, 4, 15, 35, 45
  210. };
  211. new skinID[300];
  212. new SkinNames[300][64];
  213. new WeaponMdls[300][128];
  214. new WeaponMdlsP[300][128];
  215. new WeaponMdlsW[300][128];
  216. new Weapons[300];
  217. new WeaponCase[300];
  218. new WeaponDrop[300];
  219. new Chance[300];
  220. new AllWeapon;
  221. new Price[300];
  222. new SkinRarity[300];
  223. new chestSkins[9][128];
  224. new DefaultSkin[33][300];
  225. new DefaultSkinP[33][300];
  226. new DefaultSkinW[33][300];
  227. new chestsList[9][128][512];
  228. new chestsChance[9][128];
  229. new chestChance[9][128];
  230. new cChance[9][300];
  231. new itemtype[33];
  232. new marketskinid[33];
  233. new marketwepid[33];
  234. new marketcases[1028];
  235. new marketkeys[1028];
  236. new marketquantity[1028];
  237. new marketckprice[1028];
  238. new marketseller[1028][64];
  239. new marketid[1028];
  240. new marketckcount;
  241. new marketwep[1028];
  242. new marketskin[1028];
  243. new marketskinprice[1028];
  244. new marketskinseller[1028][64];
  245. new marketidskin[1028];
  246. new SelectedType[33];
  247. new SelectedItem[33];
  248. new SelectedTypeMarket[33];
  249. new SelectedItemMarket[33];
  250. new ck_quantity[33];
  251. new ckm_quantity[33];
  252. new market_cost[33];
  253. new receiver_id[33];
  254. new skingift_id[33];
  255. new ckgift_item[33];
  256. new ckgift_type[33];
  257. new giftitemtype[33];
  258. new skingiftwep_id[33];
  259. new gift_quantity[33];
  260. new clan_name[64][33];
  261. new clan_playerpos[33];
  262. new clan_inclan[33];
  263. new clan_istaken[33];
  264. new clan_members[33][15][64];
  265. new clan_count[33];
  266. new Dusts[33];
  267. new tradetarget[33];
  268. new tradeskin[33];
  269. new tradeskin_wepid[33];
  270. new tradeskinget[33];
  271. new tradeskinget_wepid[33];
  272. new intrade[33];
  273. new tradesender[33];
  274. new FactionT[33];
  275. new FactionCT[33];
  276. new FactionLVL[33];
  277. new Factions[100][128];
  278. new FactionPath[100][128];
  279. new FactionTeam[33];
  280. new AllFactions;
  281. new FactionVIP[100];
  282. new cvar_RollMaxBet;
  283. new cvar_RollCooldown;
  284. new Float:rCounter[33];
  285. new Float:rSpeed[33];
  286. new rStartingNum[33];
  287. new Float:rSpinLen[33];
  288. new rSelection[33];
  289. new rInput[33];
  290. new rCooldown[33];
  291. new rNumbers[15] =
  292. {
  293. 1, 14, 2, 13, 3, 12, 4, 0, 11, 5, 10, 6, 9, 7, 8
  294. };
  295. new rOptions[3][0] =
  296. {
  297. {
  298. 48, ...
  299. },
  300. {
  301. 49, ...
  302. },
  303. {
  304. 56, ...
  305. }
  306. };
  307. new 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. };
  403. new 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. };
  499. new 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. };
  694. new 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. };
  790. new 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. };
  886. new 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. };
  890. new SkinExists[32];
  891. new 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. };
  921. new p_allchat;
  922. new p_alltalk;
  923. new p_hidestat;
  924. new p_teamchat;
  925. new alv_sndr;
  926. new alv_str2[26];
  927. new alv_str4[101];
  928. new msg[513];
  929. Float:operator/(Float:,_:)(Float:oper1, oper2)
  930. {
  931. return floatdiv(oper1, float(oper2));
  932. }
  933.  
  934. bool:operator>=(Float:,Float:)(Float:oper1, Float:oper2)
  935. {
  936. return 0 <= floatcmp(oper1, oper2);
  937. }
  938.  
  939. bool:operator<(Float:,Float:)(Float:oper1, Float:oper2)
  940. {
  941. return 0 > floatcmp(oper1, oper2);
  942. }
  943.  
  944. bool:operator<=(Float:,Float:)(Float:oper1, Float:oper2)
  945. {
  946. return 0 >= floatcmp(oper1, oper2);
  947. }
  948.  
  949. replace_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.  
  980. get_configsdir(name[], len)
  981. {
  982. return get_localinfo("amxx_configsdir", name, len);
  983. }
  984.  
  985. has_all_flags(id, flags[])
  986. {
  987. new FlagsNumber = read_flags(flags);
  988. return FlagsNumber == FlagsNumber & get_user_flags(id, MaxClients);
  989. }
  990.  
  991. public __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.  
  1013. public 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.  
  1022. public 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.  
  1238. public 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.  
  1250. public 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.  
  1380. public OffSound(id)
  1381. {
  1382. MVPEnabled[id] = 0;
  1383. client_cmd(id, "stopsound");
  1384. client_cmd(id, "mp3 stop");
  1385. return 0;
  1386. }
  1387.  
  1388. public 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.  
  1404. public 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.  
  1473. public 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.  
  1482. public 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)
  1562. public 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.  
  1572. public 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.  
  1594. public 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.  
  1606. public 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.  
  1616. public 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.  
  1626. public 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.  
  1636. public 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.  
  1683. public client_impulse(id, impulse)
  1684. {
  1685. if (impulse == 201)
  1686. {
  1687. return 1;
  1688. }
  1689. return 0;
  1690. }
  1691.  
  1692. public 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.  
  1702. public 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.  
  1751. public RemoveCooldown(id)
  1752. {
  1753. graffitiCooldown[id] = 0;
  1754. return 0;
  1755. }
  1756.  
  1757. public 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.  
  1776. PlayAnimation(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.  
  1786. public 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.  
  1803. public 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.  
  1816. public 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.  
  1832. public 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.  
  1852. public 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.  
  1872. public 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.  
  1892. public 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.  
  1912. public 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.  
  1932. public 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.  
  1949. public 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.  
  1968. public 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.  
  1986. public 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.  
  2004. public 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.  
  2057. public 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.  
  2147. public 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)
  2155. public Call_Back(id, menu, item)
  2156. {
  2157. return 2;
  2158. }
  2159.  
  2160. public 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.  
  2242. public 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.  
  2341. public 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.  
  2365. public 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.  
  2408. public 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.  
  2478. public 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.  
  2738. public 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.  
  2747. public 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.  
  2780. public 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)
  2816. public 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.  
  2837. public 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)
  2855. public 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)
  2886. public 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)
  2896. public 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)
  2929. public 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.  
  2951. public 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.  
  2971. public 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.  
  3018. public 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.  
  3044. public 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.  
  3066. public 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.  
  3086. public 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.  
  3133. public 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.  
  3159. public 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.  
  3195. public 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)
  3240. public 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.  
  3259. public 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)
  3278. public 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)
  3292. public 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)
  3319. public 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.  
  3340. public 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.  
  3352. public 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.  
  3365. public 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.  
  3394. public 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.  
  3430. public 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.  
  3438. public 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.  
  3446. public 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.  
  3461. public 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)
  3489. public 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.  
  3511. public 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.  
  3531. public 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.  
  3605. public 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.  
  3663. public 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.  
  3724. public 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.  
  3777. public 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.  
  3810. public 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.  
  3851. public 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.  
  3897. public 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.  
  3952. public 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.  
  4023. public 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)
  4080. public 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)
  4116. public 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.  
  4137. public 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.  
  4194. public 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.  
  4322. public 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.  
  4342. public 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.  
  4355. public 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.  
  4381. public 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.  
  4416. public 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)
  4443. public 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)
  4462. public 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)
  4470. public 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)
  4495. public 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.  
  4530. public 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.  
  4563. public 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.  
  4591. public 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.  
  4613. public 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.  
  4660. public 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.  
  4688. public 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.  
  4787. public 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)
  4835. public 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.  
  4868. public 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.  
  4895. public 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)
  4918. public 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.  
  4977. public 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)
  5002. public 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.  
  5050. public SetSkin(id)
  5051. {
  5052. screenfade_grey(id);
  5053. user_name(id);
  5054.  
  5055. /* ERROR! Can't print expression: Heap */
  5056. function "SetSkin" (number 121)
  5057. public 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.  
  5117. public 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.  
  5206. public 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.  
  5234. public 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.  
  5255. public 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.  
  5283. public 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.  
  5305. public 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.  
  5340. public 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.  
  5372. public 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.  
  5405. public 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.  
  5438. public 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.  
  5480. public 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)
  5566. public 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.  
  5594. public 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)
  5635. public 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.  
  5666. public 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.  
  5686. public 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.  
  5733. public 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.  
  5759. public 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.  
  5815. public 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)
  5861. public 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.  
  5901. public 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.  
  5938. public 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.  
  5956. public 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.  
  6039. public 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.  
  6095. public col_changer(msg_id, msg_dest, rcvr)
  6096. {
  6097. new str2[26];
  6098. get_msg_arg_string(2, str2, 25);
  6099. if (equal(str2, "#Cstrike_Chat", 13))
  6100. {
  6101. new str3[22];
  6102. get_msg_arg_string(3, str3, 21);
  6103. if (!strlen(str3))
  6104. {
  6105. new str4[101];
  6106. get_msg_arg_string(NULL_STRING, str4, 100);
  6107. new sndr = get_msg_arg_int(1);
  6108. decl bool:is_team_msg;
  6109. is_team_msg = !equal(str2, "#Cstrike_Chat_All", 17);
  6110. new sndr_team = get_user_team(sndr, {0}, MaxClients);
  6111. decl bool:is_sndr_spec;
  6112. is_sndr_spec = !0 < sndr_team < 3;
  6113. decl bool:same_as_last;
  6114. new var1;
  6115. same_as_last = sndr == alv_sndr && equal(alv_str2, str2, MaxClients) && equal(alv_str4, str4, MaxClients);
  6116. if (!same_as_last)
  6117. {
  6118. new allchat = clamp(get_pcvar_num(p_allchat), MaxClients, 2);
  6119. new var3;
  6120. if (allchat == 2 || (allchat == 1 && clamp(get_pcvar_num(p_alltalk), MaxClients, 1) == 1))
  6121. {
  6122. new var6;
  6123. if (is_team_msg && (is_sndr_spec || (is_team_msg && get_pcvar_num(p_teamchat))))
  6124. {
  6125. new flags[5];
  6126. new team[10];
  6127. if (is_user_alive(sndr))
  6128. {
  6129. flags = {98,99,104,0};
  6130. }
  6131. else
  6132. {
  6133. flags = {97,99,104,0};
  6134. }
  6135. if (is_team_msg)
  6136. {
  6137. add(flags[strlen(flags)], NULL_STRING, 4167532, MaxClients);
  6138. if (sndr_team == 1)
  6139. {
  6140. team = {84,69,82,82,79,82,73,83,84,0};
  6141. }
  6142. team = {67,84,0};
  6143. }
  6144. new players[32];
  6145. new num;
  6146. get_players(players, num, flags, team);
  6147. buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
  6148. new i;
  6149. while (i < num)
  6150. {
  6151. message_begin(1, get_user_msgid("SayText"), 4123124, players[i]);
  6152. write_byte(sndr);
  6153. write_string(msg);
  6154. message_end();
  6155. i++;
  6156. }
  6157. }
  6158. alv_sndr = sndr;
  6159. if (task_exists(411, MaxClients))
  6160. {
  6161. remove_task(411, MaxClients);
  6162. }
  6163. set_task(1036831949, "task_clear_antiloop_vars", 411, 4109032, MaxClients, 4109036, MaxClients);
  6164. }
  6165. }
  6166. if (is_user_connected(sndr))
  6167. {
  6168. if (!same_as_last)
  6169. {
  6170. buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4);
  6171. }
  6172. set_msg_arg_string(2, msg);
  6173. set_msg_arg_string(NULL_STRING, 4167724);
  6174. }
  6175. }
  6176. }
  6177. return 0;
  6178. }
  6179.  
  6180. public buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[])
  6181. {
  6182. new sndr_name[33];
  6183. new szMsg[128];
  6184. get_user_name(sndr, sndr_name, 32);
  6185. new chatrank = get_pcvar_num(cvar_ChatRank);
  6186. new vipFlag[32];
  6187. get_pcvar_string(cvar_vipFlag, vipFlag, 32);
  6188. decl hasTag;
  6189. new var1;
  6190. if (strlen(ChatTag[sndr]) > 2)
  6191. {
  6192. var1 = 1;
  6193. }
  6194. else
  6195. {
  6196. var1 = 0;
  6197. }
  6198. hasTag = var1;
  6199. decl hasClan;
  6200. new var2;
  6201. if (strlen(clan_name[sndr]) > 1)
  6202. {
  6203. var2 = 1;
  6204. }
  6205. else
  6206. {
  6207. var2 = 0;
  6208. }
  6209. hasClan = var2;
  6210. new prefix[256] = {1,0};
  6211. if (!(get_pcvar_num(p_hidestat)))
  6212. {
  6213. if (is_sndr_spec)
  6214. {
  6215. prefix = {1,42,83,80,69,67,42,32,0};
  6216. }
  6217. if (!is_user_alive(sndr))
  6218. {
  6219. prefix = {1,42,68,69,65,68,42,32,0};
  6220. }
  6221. }
  6222. if (is_team_msg)
  6223. {
  6224. if (is_sndr_spec)
  6225. {
  6226. prefix = {1,40,83,112,101,99,116,97,116,111,114,41,32,0};
  6227. }
  6228. if (sndr_team == 1)
  6229. {
  6230. add(prefix[strlen(prefix) - 1], 29, "\x01(Terrorist) ", MaxClients);
  6231. }
  6232. if (sndr_team == 2)
  6233. {
  6234. add(prefix[strlen(prefix) - 1], 29, "\x01(Counter-Terrorist) ", MaxClients);
  6235. }
  6236. }
  6237. if (isLogged[sndr])
  6238. {
  6239. if (hasTag)
  6240. {
  6241. new var3;
  6242. if (hasClan)
  6243. {
  6244. var3 = clan_name[sndr];
  6245. }
  6246. else
  6247. {
  6248. var3 = 4168104;
  6249. }
  6250. new var4;
  6251. if (hasClan)
  6252. {
  6253. var4 = 4168092;
  6254. }
  6255. else
  6256. {
  6257. var4 = 4168100;
  6258. }
  6259. format(szMsg, 127, "\x01[\x04%s\x01] [\x03%s\x01]%s\x01%s ", Ranks[Rank[sndr]], ChatTag[sndr], var4, var3);
  6260. add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
  6261. }
  6262. else
  6263. {
  6264. new var5;
  6265. if (hasClan)
  6266. {
  6267. var5 = clan_name[sndr];
  6268. }
  6269. else
  6270. {
  6271. var5 = 4168176;
  6272. }
  6273. new var6;
  6274. if (hasClan)
  6275. {
  6276. var6 = 4168164;
  6277. }
  6278. else
  6279. {
  6280. var6 = 4168172;
  6281. }
  6282. format(szMsg, 127, "\x01[\x04%s\x01]%s\x01%s ", Ranks[Rank[sndr]], var6, var5);
  6283. add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
  6284. }
  6285. }
  6286. else
  6287. {
  6288. format(szMsg, 127, "\x01[\x04%L\x01] ", -1, "NOT_LOGGED");
  6289. add(prefix[strlen(prefix) - 1], cvar_SqlUser, szMsg, MaxClients);
  6290. }
  6291. new var7;
  6292. if (has_all_flags(sndr, vipFlag) && get_pcvar_num(cvar_VipChatColor))
  6293. {
  6294. new var8;
  6295. if (strlen(prefix) > 1)
  6296. {
  6297. var8 = prefix;
  6298. }
  6299. else
  6300. {
  6301. var8 = 4168316;
  6302. }
  6303. format(msg, 512, "%s%s%s \x01: \x04%s", var8, COLCHAR[namecol], sndr_name, str4);
  6304. }
  6305. else
  6306. {
  6307. new var9;
  6308. if (strlen(prefix) > 1)
  6309. {
  6310. var9 = prefix;
  6311. }
  6312. else
  6313. {
  6314. var9 = 4168376;
  6315. }
  6316. format(msg, 512, "%s%s%s \x01: \x01%s", var9, COLCHAR[namecol], sndr_name, str4);
  6317. }
  6318. return 1;
  6319. }
  6320.  
  6321. public task_clear_antiloop_vars()
  6322. {
  6323. alv_sndr = 0;
  6324. return 1;
  6325. }
  6326.  
  6327. public Debug(id)
  6328. {
  6329. new szKText[256];
  6330. formatex(szKText, 256, "\n%L", id, "KILL_COUNTER", Kills[id] % get_pcvar_num(cvar_KillsRequired), get_pcvar_num(cvar_KillsRequired));
  6331. client_print_color(id, MaxClients, "%s", szKText);
  6332. return 1;
  6333. }
  6334.  
  6335. public Reminder(id)
  6336. {
  6337. client_print_color(id, -2, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_REMINDER");
  6338. return 0;
  6339. }
  6340.  
  6341. public Event_DeathMsg()
  6342. {
  6343. new iKiller = read_data(1);
  6344. new iVictim = read_data(2);
  6345. removeEntity(iVictim);
  6346. new var1;
  6347. if (iVictim != iKiller && !isLogged[iKiller])
  6348. {
  6349. return 1;
  6350. }
  6351. g_iEnemiesKilled[iKiller]++;
  6352. Kills[iKiller]++;
  6353. new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
  6354. if (get_pcvar_num(cvar_KeyForKills))
  6355. {
  6356. new kfk = get_pcvar_num(cvar_KillsRequired);
  6357. if (Kills[iKiller] % kfk)
  6358. {
  6359. }
  6360. else
  6361. {
  6362. new rkey = random_num(1, NULL_VECTOR);
  6363. Keys[iKiller][rkey]++;
  6364. client_print_color(iKiller, MaxClients, "%L %L", iKiller, "PREFIX_CHAT", iKiller, "KEY_FOR_KILLS", szCKNames[rkey]);
  6365. }
  6366. }
  6367. if (1 < strlen(DeathNote[iKiller]))
  6368. {
  6369. set_dhudmessage(255, 255, 255, -1082130432, 1049247089, 1, 1086324736, 1077936128, 1036831949, 1069547520);
  6370. show_dhudmessage(iVictim, "%s", DeathNote[iKiller]);
  6371. }
  6372. if (CalibrationKills > Kills[iKiller])
  6373. {
  6374. Rank[iKiller] = 0;
  6375. }
  6376. new Float:diff = 0.0;
  6377. new Float:total = 0.0;
  6378. if (!isLogged[iVictim])
  6379. {
  6380. diff = 100.0;
  6381. }
  6382. else
  6383. {
  6384. diff = Skill[iVictim];
  6385. }
  6386. new Float:delta = floatdiv(1065353216, floatadd(1065353216, floatpower(1092616192, floatdiv(floatsub(Skill[iKiller], diff), 1120403456))));
  6387. new Float:koeff = 0.0;
  6388. if (CalibrationKills > Kills[iKiller])
  6389. {
  6390. koeff = 2.0;
  6391. total = floatmul(koeff, delta);
  6392. new var7 = Skill[iKiller];
  6393. var7 = floatadd(var7, total);
  6394. new var8 = Skill[iVictim];
  6395. var8 = floatsub(var8, total);
  6396. user_name(iVictim);
  6397.  
  6398. /* ERROR! Can't print expression: Heap */
  6399. function "Event_DeathMsg" (number 152)
  6400. public Event_NewRound()
  6401. {
  6402. RoundStarted = false;
  6403. Rounds += 1;
  6404. new counter = get_pcvar_num(cvar_RemoveGraffiti);
  6405. mvpShown = false;
  6406. g_iBombPlanter = 9191;
  6407. g_iBombDefuser = 1919;
  6408. g_bBombExploded = false;
  6409. arrayset(g_iEnemiesHS, MaxClients, 33);
  6410. arrayset(g_iEnemiesKilled, MaxClients, 33);
  6411. arrayset(graffitiCooldown, MaxClients, 33);
  6412. if (!(Rounds % counter))
  6413. {
  6414. removeGraffiti();
  6415. }
  6416. return 0;
  6417. }
  6418.  
  6419. public logevent_round_start()
  6420. {
  6421. RoundStarted = true;
  6422. new spritesEnabled = get_pcvar_num(cvar_EnableRankSprites);
  6423. if (spritesEnabled)
  6424. {
  6425. new spritesMode = get_pcvar_num(cvar_RankSpriteMode);
  6426. if (!spritesMode)
  6427. {
  6428. removeEntities();
  6429. }
  6430. }
  6431. return 0;
  6432. }
  6433.  
  6434. public Event_RoundWon_T()
  6435. {
  6436. set_task(1056964608, "CheckTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
  6437. return 0;
  6438. }
  6439.  
  6440. public CheckTConditions()
  6441. {
  6442. new var1;
  6443. if (g_iBombPlanter != 9191 && g_bBombExploded == true)
  6444. {
  6445. ShowMVPMessage(g_iBombPlanter, 3);
  6446. }
  6447. else
  6448. {
  6449. new iTopKiller = GetTopKiller(1);
  6450. ShowMVPMessage(iTopKiller, 1);
  6451. }
  6452. return 0;
  6453. }
  6454.  
  6455. public Event_RoundWon_CT()
  6456. {
  6457. set_task(1056964608, "CheckCTConditions", MaxClients, 4109032, MaxClients, 4109036, MaxClients);
  6458. return 0;
  6459. }
  6460.  
  6461. public CheckCTConditions()
  6462. {
  6463. if (g_iBombDefuser != 1919)
  6464. {
  6465. ShowMVPMessage(g_iBombDefuser, 2);
  6466. }
  6467. else
  6468. {
  6469. new iTopKiller = GetTopKiller(2);
  6470. ShowMVPMessage(iTopKiller, 1);
  6471. }
  6472. return 0;
  6473. }
  6474.  
  6475. public bomb_planted(iPlanter)
  6476. {
  6477. new flags = user_flags(iPlanter);
  6478. new ptsplant = get_pcvar_num(cvar_plantpts);
  6479. new vptsplant = get_pcvar_num(cvar_vipplantbonus);
  6480. new aptsplant = get_pcvar_num(cvar_adminplantbonus);
  6481. new vipenabled = get_pcvar_num(cvar_vipenablebonus);
  6482. new adminenabled = get_pcvar_num(cvar_adminenablebonus);
  6483. set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
  6484. new var1;
  6485. if (flags == 2 && !adminenabled)
  6486. {
  6487. if (vipenabled)
  6488. {
  6489. flags = 1;
  6490. }
  6491. flags = 0;
  6492. }
  6493. new var2;
  6494. if (flags == 1 && !vipenabled)
  6495. {
  6496. flags = 0;
  6497. }
  6498. switch (flags)
  6499. {
  6500. case 0:
  6501. {
  6502. show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_KILL", ptsplant);
  6503. AddPoints(iPlanter, ptsplant);
  6504. }
  6505. case 1:
  6506. {
  6507. show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_VIPKILL", ptsplant, vptsplant);
  6508. AddPoints(iPlanter, vptsplant + ptsplant);
  6509. }
  6510. case 2:
  6511. {
  6512. show_hudmessage(iPlanter, "%L", iPlanter, "POINTS_ADMINKILL", ptsplant, aptsplant);
  6513. AddPoints(iPlanter, aptsplant + ptsplant);
  6514. }
  6515. default:
  6516. {
  6517. }
  6518. }
  6519. UpdateStats(iPlanter);
  6520. g_iBombPlanter = iPlanter;
  6521. return 0;
  6522. }
  6523.  
  6524. public bomb_explode(iPlanter, iDefuser)
  6525. {
  6526. g_bBombExploded = true;
  6527. return 0;
  6528. }
  6529.  
  6530. public bomb_defused(iDefuser)
  6531. {
  6532. new flags = user_flags(iDefuser);
  6533. new ptsplant = get_pcvar_num(cvar_defusepts);
  6534. new vptsplant = get_pcvar_num(cvar_vipdefusebonus);
  6535. new aptsplant = get_pcvar_num(cvar_admindefusebonus);
  6536. new vipenabled = get_pcvar_num(cvar_vipenablebonus);
  6537. new adminenabled = get_pcvar_num(cvar_adminenablebonus);
  6538. set_hudmessage(255, MaxClients, MaxClients, -1082130432, 1049247089, 2, 1073741824, 1073741824, 1036831949, 1045220557, -1);
  6539. new var1;
  6540. if (flags == 2 && !adminenabled)
  6541. {
  6542. if (vipenabled)
  6543. {
  6544. flags = 1;
  6545. }
  6546. flags = 0;
  6547. }
  6548. new var2;
  6549. if (flags == 1 && !vipenabled)
  6550. {
  6551. flags = 0;
  6552. }
  6553. switch (flags)
  6554. {
  6555. case 0:
  6556. {
  6557. show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_KILL", ptsplant);
  6558. AddPoints(iDefuser, ptsplant);
  6559. }
  6560. case 1:
  6561. {
  6562. show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_VIPKILL", ptsplant, vptsplant);
  6563. AddPoints(iDefuser, vptsplant + ptsplant);
  6564. }
  6565. case 2:
  6566. {
  6567. show_hudmessage(iDefuser, "%L", iDefuser, "POINTS_ADMINKILL", ptsplant, aptsplant);
  6568. AddPoints(iDefuser, aptsplant + ptsplant);
  6569. }
  6570. default:
  6571. {
  6572. }
  6573. }
  6574. UpdateStats(iDefuser);
  6575. g_iBombDefuser = iDefuser;
  6576. return 0;
  6577. }
  6578.  
  6579. ShowMVPMessage(iMVP, iReason)
  6580. {
  6581. new playerCount = get_pcvar_num(cvar_MvpPlayers);
  6582. if (playerCount > get_playersnum(MaxClients))
  6583. {
  6584. return 1;
  6585. }
  6586. new red = random_num(1, 255);
  6587. new green = random_num(1, 255);
  6588. new blue = random_num(1, 255);
  6589. new players[32];
  6590. new pnum;
  6591. new tempid;
  6592. get_players(players, pnum, "ch", 4130124);
  6593. new szMVPName[32];
  6594. new pointsamount = get_pcvar_num(cvar_MvpPointsAmount);
  6595. new minmvp = get_pcvar_num(cvar_MinMVPPlayers);
  6596. get_user_name(iMVP, szMVPName, 31);
  6597. set_dhudmessage(red, green, blue, -1082130432, 1059481190, 1, 1086324736, 1077936128, 1036831949, 1069547520);
  6598. new isWav = equali(MVPSoundPath[MVPSound[iMVP]][strlen(MVPSoundPath[MVPSound[iMVP]]) - 4], ".wav", MaxClients);
  6599. new var1;
  6600. if (isLogged[iMVP] && !mvpShown)
  6601. {
  6602. mvpShown = true;
  6603. switch (iReason)
  6604. {
  6605. case 1:
  6606. {
  6607. if (1 > g_iEnemiesKilled[iMVP])
  6608. {
  6609. return 1;
  6610. }
  6611. show_dhudmessage(MaxClients, "%L", -1, "MVP_KILLS", szMVPName, g_iEnemiesKilled[iMVP], g_iEnemiesHS[iMVP], MVPSounds[MVPSound[iMVP]]);
  6612. }
  6613. case 2:
  6614. {
  6615. show_dhudmessage(MaxClients, "%L", -1, "MVP_DEFUSE", szMVPName, MVPSounds[MVPSound[iMVP]]);
  6616. }
  6617. case 3:
  6618. {
  6619. show_dhudmessage(MaxClients, "%L", -1, "MVP_PLANT", szMVPName, MVPSounds[MVPSound[iMVP]]);
  6620. }
  6621. default:
  6622. {
  6623. }
  6624. }
  6625. new i;
  6626. while (i < pnum)
  6627. {
  6628. tempid = players[i];
  6629. if (MVPEnabled[tempid])
  6630. {
  6631. client_cmd(tempid, "stopsound");
  6632. client_cmd(tempid, "mp3 stop");
  6633. if (isWav)
  6634. {
  6635. client_cmd(tempid, "spk %s", MVPSoundPath[MVPSound[iMVP]]);
  6636. }
  6637. else
  6638. {
  6639. client_cmd(tempid, "mp3 play sound/%s", MVPSoundPath[MVPSound[iMVP]]);
  6640. }
  6641. }
  6642. i++;
  6643. }
  6644. Mvp[iMVP]++;
  6645. new vipFlag[32];
  6646. get_pcvar_string(cvar_vipFlag, vipFlag, 32);
  6647. new var2;
  6648. if (get_pcvar_num(cvar_MvpRewardVIP) && get_playersnum(MaxClients) >= minmvp)
  6649. {
  6650. if (has_all_flags(iMVP, vipFlag))
  6651. {
  6652. new var3 = Points[iMVP];
  6653. var3 = var3[pointsamount];
  6654. client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS_VIP", pointsamount);
  6655. }
  6656. }
  6657. else
  6658. {
  6659. if (minmvp <= get_playersnum(MaxClients))
  6660. {
  6661. new var4 = Points[iMVP];
  6662. var4 = var4[pointsamount];
  6663. client_print_color(iMVP, MaxClients, "%L %L", iMVP, "PREFIX_CHAT", iMVP, "MVPBONUS", pointsamount);
  6664. }
  6665. }
  6666. }
  6667. UpdateStats(iMVP);
  6668. return 1;
  6669. }
  6670.  
  6671. GetTopKiller(iTeam)
  6672. {
  6673. new iPlayers[32];
  6674. new iPlayersnum;
  6675. new var1;
  6676. if (iTeam == 1)
  6677. {
  6678. var1 = 4171484;
  6679. }
  6680. else
  6681. {
  6682. var1 = 4171524;
  6683. }
  6684. get_players(iPlayers, iPlayersnum, 4171476, var1);
  6685. SortCustom1D(iPlayers, iPlayersnum, "SortByKills", {0}, MaxClients);
  6686. return iPlayers[0];
  6687. }
  6688.  
  6689. public SortByKills(elem1, elem2)
  6690. {
  6691. if (g_iEnemiesKilled[elem2] < g_iEnemiesKilled[elem1])
  6692. {
  6693. return -1;
  6694. }
  6695. return 1;
  6696. }
  6697.  
  6698. public PlayerData(id)
  6699. {
  6700. new var1;
  6701. if (isLogged[id] && HudEnabled[id])
  6702. {
  6703. new szText[256];
  6704. new wId = get_user_weapon(id, 0, 0);
  6705. new iSpecPlayer = pev(id, 101);
  6706. new SkinName[128];
  6707. set_hudmessage(64, 64, 64, 1028443341, 1041865114, MaxClients, MaxClients, floatadd(1065353216, 1036831949), MaxClients, MaxClients, -1);
  6708. new var2;
  6709. if (is_user_alive(iSpecPlayer) && !is_user_alive(id))
  6710. {
  6711. if (g_bUsingGuns[iSpecPlayer][wId])
  6712. {
  6713. format_skin_name(SkinName, 128, g_bUsingGuns[iSpecPlayer][wId], 2);
  6714. new var3;
  6715. if (clan_inclan[iSpecPlayer])
  6716. {
  6717. var3 = clan_name[iSpecPlayer];
  6718. }
  6719. else
  6720. {
  6721. var3 = 4171840;
  6722. }
  6723. user_name(iSpecPlayer);
  6724.  
  6725. /* ERROR! Can't print expression: Heap */
  6726. function "PlayerData" (number 165)
  6727. user_flags(id)
  6728. {
  6729. new vipFlag[32];
  6730. get_pcvar_string(cvar_vipFlag, vipFlag, 32);
  6731. new adminFlag[32];
  6732. get_pcvar_string(cvar_adminFlag, adminFlag, 32);
  6733. if (has_all_flags(id, adminFlag))
  6734. {
  6735. return 2;
  6736. }
  6737. if (has_all_flags(id, vipFlag))
  6738. {
  6739. return 1;
  6740. }
  6741. return 0;
  6742. }
  6743.  
  6744. public NameChange(id)
  6745. {
  6746. new var1;
  6747. if (!is_user_connected(id) || is_user_bot(id))
  6748. {
  6749. return 1;
  6750. }
  6751. new OldName[32];
  6752. new NewName[32];
  6753. new Name[32];
  6754. get_user_name(id, Name, 31);
  6755. pev(id, 6, OldName, 31);
  6756. if (OldName[0])
  6757. {
  6758. get_user_info(id, "name", NewName, 31);
  6759. if (!equal(OldName, NewName, MaxClients))
  6760. {
  6761. set_user_info(id, "name", OldName);
  6762. client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "NAMECHANGE_DISABLED");
  6763. return 2;
  6764. }
  6765. }
  6766. return 1;
  6767. }
  6768.  
  6769. public native_set_user_points(id, amount)
  6770. {
  6771. Points[id] = amount;
  6772. UpdateStats(id);
  6773. return 0;
  6774. }
  6775.  
  6776. public native_get_user_points(id)
  6777. {
  6778. return Points[id];
  6779. }
  6780.  
  6781. public native_get_usergo_id(id)
  6782. {
  6783. return ID[id];
  6784. }
  6785.  
  6786. public native_set_user_ck(id, ck, num, amount)
  6787. {
  6788. if (ck)
  6789. {
  6790. new var1 = Keys[id][num];
  6791. var1 = var1[amount];
  6792. }
  6793. else
  6794. {
  6795. new var2 = Cases[id][num];
  6796. var2 = var2[amount];
  6797. }
  6798. UpdateItems(id);
  6799. return 0;
  6800. }
  6801.  
  6802. public native_is_user_logged(id)
  6803. {
  6804. if (isLogged[id])
  6805. {
  6806. return 1;
  6807. }
  6808. return 0;
  6809. }
  6810.  
  6811. public SavePass(id)
  6812. {
  6813. set_user_info(id, "gopw", Password[id]);
  6814. client_cmd(id, "setinfo gopw %s", Password[id]);
  6815. client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "PASS_SAVED");
  6816. return 1;
  6817. }
  6818.  
  6819. public Rankz(id)
  6820. {
  6821. new Data[1];
  6822. Data[0] = id;
  6823. new szTemp[512];
  6824. format(szTemp, 511, "SELECT COUNT(*) FROM csgo_stats WHERE `skill` >= '%.2f'", Skill[id]);
  6825. SQL_ThreadQuery(g_SqlTuple, "Rank_QueryHandler", szTemp, Data, 1);
  6826. return 0;
  6827. }
  6828.  
  6829. public Rank_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  6830. {
  6831. if (FailState == -2)
  6832. {
  6833. return 1;
  6834. }
  6835. new id = Data[0];
  6836. g_iRank[id] = SQL_ReadResult(Query, MaxClients);
  6837. TotalRows(id);
  6838. return 1;
  6839. }
  6840.  
  6841. public TotalRows(id)
  6842. {
  6843. new Data[1];
  6844. Data[0] = id;
  6845. new szTemp[128];
  6846. format(szTemp, 127, "SELECT COUNT(*) FROM csgo_stats");
  6847. SQL_ThreadQuery(g_SqlTuple, "TotalRows_QueryHandler", szTemp, Data, 1);
  6848. return 0;
  6849. }
  6850.  
  6851. public TotalRows_QueryHandler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  6852. {
  6853. if (FailState == -2)
  6854. {
  6855. return 1;
  6856. }
  6857. new id = Data[0];
  6858. g_iCount = SQL_ReadResult(Query, MaxClients);
  6859. new CalibrationKills = get_pcvar_num(cvar_CalibrationKills);
  6860. if (CalibrationKills <= Kills[id])
  6861. {
  6862. if (!g_iRank[id])
  6863. {
  6864. g_iRank[id] = 1;
  6865. }
  6866. client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK", g_iRank[id], g_iCount, Kills[id], Skill[id]);
  6867. }
  6868. else
  6869. {
  6870. client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "RANK_UNRANKED", CalibrationKills - Kills[id]);
  6871. }
  6872. return 1;
  6873. }
  6874.  
  6875. public MySql_Init()
  6876. {
  6877. new host[128];
  6878. new user[128];
  6879. new pass[128];
  6880. new db[128];
  6881. get_pcvar_string(cvar_SqlHost, host, cvar_SqlUser);
  6882. get_pcvar_string(cvar_SqlUser, user, cvar_SqlUser);
  6883. get_pcvar_string(cvar_SqlPass, pass, cvar_SqlUser);
  6884. get_pcvar_string(cvar_SqlDb, db, cvar_SqlUser);
  6885. g_SqlTuple = SQL_MakeDbTuple(host, user, pass, db, MaxClients);
  6886. SQL_SetCharset(g_SqlTuple, "utf8");
  6887. new ErrorCode;
  6888. new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, g_Error, 511);
  6889. if (!SqlConnection)
  6890. {
  6891. set_fail_state(g_Error);
  6892. }
  6893. new Handle:Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_player (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE, password varchar(255) COLLATE utf8_lithuanian_ci, ip varchar(255), steamid varchar(255), created_at date, is_online INT(1));");
  6894. SQL_Execute(Queries);
  6895. Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_stats (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE, points INT(11), kills INT(11), rank INT(11), level INT(11), mvp INT(11), clan_name varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, clan_pos INT(1), dusts INT(11), deathnote INT(1), deathnote_msg varchar(128) COLLATE utf8_lithuanian_ci, skill FLOAT(5,2));");
  6896. SQL_Execute(Queries);
  6897. Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_items (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE, cases varchar(255), keyz varchar(255), skins varchar(1024), skins_used varchar(255), stattrak varchar(1024));");
  6898. SQL_Execute(Queries);
  6899. Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_market (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, weapon_id INT(3), skin_id INT(3), key_id INT(2), case_id INT(2), quantity INT(11), price INT(11));");
  6900. SQL_Execute(Queries);
  6901. Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_settings (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, hud_enabled INT(1), mvp_trackid INT(3), mvp_enabled INT(1), faction_t INT(1), faction_ct INT(1));");
  6902. SQL_Execute(Queries);
  6903. Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_clan (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, clan_name varchar(255) COLLATE utf8_lithuanian_ci NOT NULL UNIQUE);");
  6904. SQL_Execute(Queries);
  6905. Queries = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS csgo_misc (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, username varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, chat_ink INT(11), chat_tag varchar(255) COLLATE utf8_lithuanian_ci NOT NULL, graffiti INT(2), graffities varchar(255), graffiti_box INT(11), day INT(2));");
  6906. SQL_Execute(Queries);
  6907. if (!SQL_Execute(Queries))
  6908. {
  6909. SQL_QueryError(Queries, g_Error, 511);
  6910. set_fail_state(g_Error);
  6911. }
  6912. SQL_FreeHandle(Queries);
  6913. SQL_FreeHandle(SqlConnection);
  6914. GetCKData();
  6915. GetSkinData();
  6916. return 0;
  6917. }
  6918.  
  6919. public plugin_end()
  6920. {
  6921. SQL_FreeHandle(g_SqlTuple);
  6922. return 0;
  6923. }
  6924.  
  6925. public sql_IsRegister(id)
  6926. {
  6927. new szTemp[1024];
  6928. new Data[1];
  6929. Data[0] = id;
  6930. new szName[32];
  6931. user_name_sql(szName, 32, id);
  6932. format(szTemp, 1023, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
  6933. SQL_ThreadQuery(g_SqlTuple, "check_client", szTemp, Data, 1);
  6934. return 0;
  6935. }
  6936.  
  6937. public check_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  6938. {
  6939. new id = Data[0];
  6940. if (1 > SQL_NumResults(Query))
  6941. {
  6942. isRegistered[id] = 0;
  6943. }
  6944. else
  6945. {
  6946. isRegistered[id] = 1;
  6947. get_user_info(id, "gopw", cfgPassword[id], 32);
  6948. ID[id] = SQL_ReadResult(Query, MaxClients);
  6949. SQL_ReadResult(Query, 2, sqlPassword[id], 32);
  6950. if (equal(cfgPassword[id], sqlPassword[id], MaxClients))
  6951. {
  6952. passwordMatches[id] = 1;
  6953. isLogged[id] = 1;
  6954. UpdatePlayer(id);
  6955. set_task(1065353216, "PlayerData", id, 4109032, MaxClients, 4181660, MaxClients);
  6956. client_print_color(id, MaxClients, "%L %L", id, "PREFIX_CHAT", id, "LOGIN_SUCCESS");
  6957. sql_RetrieveUserItems(id);
  6958. sql_RetrieveUserStats(id);
  6959. sql_RetrieveUserSettings(id);
  6960. sql_RetrieveUserMisc(id);
  6961. set_task(1072064102, "GetClanData", id, 4109032, MaxClients, 4109036, MaxClients);
  6962. set_task(1072064102, "SetSkin", id, 4109032, MaxClients, 4109036, MaxClients);
  6963. if (is_user_alive(id))
  6964. {
  6965. set_task(1072064102, "MainMenu", id, 4109032, MaxClients, 4109036, MaxClients);
  6966. }
  6967. client_print(id, NULL_STRING, "%L", id, "DATA_LOADING");
  6968. }
  6969. }
  6970. return 1;
  6971. }
  6972.  
  6973. public sql_RegisterUser(id)
  6974. {
  6975. new szTemp[2048];
  6976. new Data[1];
  6977. Data[0] = id;
  6978. new szName[32];
  6979. user_name_sql(szName, 32, id);
  6980. format(szTemp, 2047, "SELECT * FROM `csgo_player` WHERE (`csgo_player`.`username` = '%s')", szName);
  6981. SQL_ThreadQuery(g_SqlTuple, "register_client", szTemp, Data, 1);
  6982. return 0;
  6983. }
  6984.  
  6985. public register_client(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  6986. {
  6987. if (FailState == -2)
  6988. {
  6989. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  6990. }
  6991. else
  6992. {
  6993. if (FailState == -1)
  6994. {
  6995. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  6996. }
  6997. }
  6998. new id = Data[0];
  6999. new year;
  7000. new month;
  7001. new day;
  7002. date(year, month, day);
  7003. new szSteamId[32];
  7004. new szIP[40];
  7005. new szName[32];
  7006. user_name_sql(szName, 32, id);
  7007. get_user_authid(id, szSteamId, 31);
  7008. get_user_ip(id, szIP, 39, 1);
  7009. if (1 > SQL_NumResults(Query))
  7010. {
  7011. new szTemp[2048];
  7012. new szSkins[512];
  7013. new szKSkins[512];
  7014. new szUGuns[128];
  7015. new szChests[128];
  7016. new szKeys[128];
  7017. new szGraffities[128];
  7018. format(szSkins, 512, 4182624);
  7019. format(szKSkins, 512, 4182628);
  7020. format(szUGuns, cvar_SqlUser, 4182632);
  7021. format(szChests, cvar_SqlUser, 4182636);
  7022. format(szKeys, cvar_SqlUser, 4182640);
  7023. new i;
  7024. while (i < 300)
  7025. {
  7026. format(szSkins, 512, "%s%d ", szSkins, UserSkins[i][id]);
  7027. format(szKSkins, 512, "%s%d ", szKSkins, UserStattrak[i][id]);
  7028. i++;
  7029. }
  7030. new i;
  7031. while (i < 32)
  7032. {
  7033. format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
  7034. i++;
  7035. }
  7036. new i;
  7037. while (i <= 8)
  7038. {
  7039. format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
  7040. i++;
  7041. }
  7042. new i;
  7043. while (i <= 8)
  7044. {
  7045. format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
  7046. i++;
  7047. }
  7048. new i;
  7049. while (i < 64)
  7050. {
  7051. format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
  7052. i++;
  7053. }
  7054. new rSong = random_num(1, AllSounds);
  7055. while (MVPSoundVIP[rSong])
  7056. {
  7057. rSong = random_num(1, AllSounds);
  7058. }
  7059. format(szTemp, 2047, "INSERT INTO `csgo_player` (`username` , `password`, `ip`, `steamid`, `created_at`) VALUES ('%s','%s','%s','%s','%d-%d-%d');", szName, Password[id], szIP, szSteamId, year, month, day);
  7060. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7061. format(szTemp, 2047, "INSERT INTO `csgo_stats` (`username` , `points`, `kills`, `rank`, `level`, `mvp`, `clan_name`, `clan_pos`, `dusts`, `deathnote`, `deathnote_msg`, `skill`) VALUES ('%s','0','0','0','0','0','0','0','0','0','','100.00');", szName);
  7062. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7063. format(szTemp, 2047, "INSERT INTO `csgo_items` (`username` , `cases`, `keyz`, `skins`, `skins_used`, `stattrak`) VALUES ('%s','%s','%s','%s','%s','%s');", szName, szChests, szKeys, szSkins, szUGuns, szKSkins);
  7064. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7065. format(szTemp, 2047, "INSERT INTO `csgo_settings` (`username` , `hud_enabled`, `mvp_trackid`, `mvp_enabled`, `faction_t`, `faction_ct`) VALUES ('%s','1','%d','1','0','0');", szName, rSong);
  7066. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7067. format(szTemp, 2047, "INSERT INTO `csgo_misc` (`username` , `chat_ink`, `chat_tag`, `graffiti`, `graffities`, `graffiti_box`, `day`) VALUES ('%s','%d','%s','%d','%s','%d', '%d');", szName, ChatInk[id], ChatTag[id], SelectedGraffiti[id], szGraffities, GraffitiBox[id], iDay[id]);
  7068. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7069. }
  7070. else
  7071. {
  7072. ID[id] = SQL_ReadResult(Query, MaxClients);
  7073. }
  7074. return 1;
  7075. }
  7076.  
  7077. public sql_RetrieveUserMisc(id)
  7078. {
  7079. new szTemp[1024];
  7080. new Data[1];
  7081. Data[0] = id;
  7082. new szName[32];
  7083. user_name_sql(szName, 32, id);
  7084. format(szTemp, 1023, "SELECT * FROM `csgo_misc` WHERE (`csgo_misc`.`username` = '%s')", szName);
  7085. SQL_ThreadQuery(g_SqlTuple, "retrieve_user_misc", szTemp, Data, 1);
  7086. return 0;
  7087. }
  7088.  
  7089. public retrieve_user_misc(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7090. {
  7091. if (FailState == -2)
  7092. {
  7093. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7094. }
  7095. else
  7096. {
  7097. if (FailState == -1)
  7098. {
  7099. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7100. }
  7101. }
  7102. new id;
  7103. new szTemp[512];
  7104. id = Data[0];
  7105. new szGraffities[128];
  7106. new szName[32];
  7107. user_name_sql(szName, 32, id);
  7108. if (SQL_NumResults(Query) == 1)
  7109. {
  7110. ChatInk[id] = SQL_ReadResult(Query, 2);
  7111. SQL_ReadResult(Query, 3, ChatTag[id], 33);
  7112. SelectedGraffiti[id] = SQL_ReadResult(Query, NULL_STRING);
  7113. SQL_ReadResult(Query, 5, szGraffities, 128);
  7114. GraffitiBox[id] = SQL_ReadResult(Query, 6);
  7115. iDay[id] = SQL_ReadResult(Query, 7);
  7116. if (g_iDay == iDay[id])
  7117. {
  7118. Rewarded[id] = 1;
  7119. }
  7120. new myNumbers[256];
  7121. new count = ExplodeString(szGraffities, myNumbers, 256);
  7122. if (count)
  7123. {
  7124. new i = 1;
  7125. while (i < 64)
  7126. {
  7127. UserGraffiti[i][id] = myNumbers[i];
  7128. i++;
  7129. }
  7130. }
  7131. if (1 < strlen(clan_name[id]))
  7132. {
  7133. clan_inclan[id] = 1;
  7134. }
  7135. }
  7136. else
  7137. {
  7138. format(szTemp, 511, "INSERT INTO `csgo_misc` (`username`, `chat_ink`, `chat_tag`, `graffiti`, `graffities`, `graffiti_box`, `day`) VALUES ('%s','%d','%s','%d','%s','%d', '%d');", szName, ChatInk[id], ChatTag[id], SelectedGraffiti[id], szGraffities, GraffitiBox[id], iDay[id]);
  7139. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7140. }
  7141. return 1;
  7142. }
  7143.  
  7144. public sql_RetrieveUserItems(id)
  7145. {
  7146. new szTemp[1024];
  7147. new Data[1];
  7148. Data[0] = id;
  7149. new szName[32];
  7150. user_name_sql(szName, 32, id);
  7151. format(szTemp, 1023, "SELECT * FROM `csgo_items` WHERE (`csgo_items`.`username` = '%s')", szName);
  7152. SQL_ThreadQuery(g_SqlTuple, "retrieve_user_items", szTemp, Data, 1);
  7153. return 0;
  7154. }
  7155.  
  7156. public retrieve_user_items(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7157. {
  7158. if (FailState == -2)
  7159. {
  7160. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7161. }
  7162. else
  7163. {
  7164. if (FailState == -1)
  7165. {
  7166. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7167. }
  7168. }
  7169. new id = Data[0];
  7170. new year;
  7171. new month;
  7172. new day;
  7173. date(year, month, day);
  7174. new szSteamId[32];
  7175. new szIP[40];
  7176. get_user_authid(id, szSteamId, 31);
  7177. get_user_ip(id, szIP, 39, 1);
  7178. if (SQL_NumResults(Query) == 1)
  7179. {
  7180. new szSkins[812];
  7181. new szKSkins[812];
  7182. new szUGuns[256];
  7183. new szChests[128];
  7184. new szKeys[128];
  7185. SQL_ReadResult(Query, 2, szChests, 128);
  7186. SQL_ReadResult(Query, 3, szKeys, 128);
  7187. SQL_ReadResult(Query, NULL_STRING, szSkins, 812);
  7188. SQL_ReadResult(Query, 5, szUGuns, 256);
  7189. SQL_ReadResult(Query, 6, szKSkins, 812);
  7190. SQL_NextRow(Query);
  7191. new myNumbers[812];
  7192. new count = ExplodeString(szSkins, myNumbers, 812);
  7193. if (count)
  7194. {
  7195. new i = 1;
  7196. while (i < 300)
  7197. {
  7198. UserSkins[i][id] = myNumbers[i];
  7199. i++;
  7200. }
  7201. }
  7202. count = ExplodeString(szKSkins, myNumbers, 812);
  7203. if (count)
  7204. {
  7205. new i = 1;
  7206. while (i < 300)
  7207. {
  7208. UserStattrak[i][id] = myNumbers[i];
  7209. i++;
  7210. }
  7211. }
  7212. count = ExplodeString(szUGuns, myNumbers, 812);
  7213. if (count)
  7214. {
  7215. new i = 1;
  7216. while (i < 32)
  7217. {
  7218. if (300 >= myNumbers[i])
  7219. {
  7220. new var1;
  7221. if (UserSkins[myNumbers[i]][id] && Weapons[myNumbers[i]] == i)
  7222. {
  7223. g_bUsingGuns[id][i] = myNumbers[i];
  7224. }
  7225. }
  7226. i++;
  7227. }
  7228. }
  7229. count = ExplodeString(szChests, myNumbers, 812);
  7230. if (count)
  7231. {
  7232. new i = 1;
  7233. while (i <= 8)
  7234. {
  7235. Cases[id][i] = myNumbers[i];
  7236. i++;
  7237. }
  7238. }
  7239. count = ExplodeString(szKeys, myNumbers, 812);
  7240. if (count)
  7241. {
  7242. new i = 1;
  7243. while (i <= 8)
  7244. {
  7245. Keys[id][i] = myNumbers[i];
  7246. i++;
  7247. }
  7248. }
  7249. }
  7250. return 1;
  7251. }
  7252.  
  7253. public sql_RetrieveUserSettings(id)
  7254. {
  7255. new szTemp[1024];
  7256. new Data[1];
  7257. Data[0] = id;
  7258. new szName[32];
  7259. user_name_sql(szName, 32, id);
  7260. format(szTemp, 1023, "SELECT * FROM `csgo_settings` WHERE (`csgo_settings`.`username` = '%s')", szName);
  7261. SQL_ThreadQuery(g_SqlTuple, "retrieve_user_settings", szTemp, Data, 1);
  7262. return 0;
  7263. }
  7264.  
  7265. public retrieve_user_settings(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7266. {
  7267. if (FailState == -2)
  7268. {
  7269. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7270. }
  7271. else
  7272. {
  7273. if (FailState == -1)
  7274. {
  7275. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7276. }
  7277. }
  7278. new id = Data[0];
  7279. new vipFlag[32];
  7280. get_pcvar_string(cvar_vipFlag, vipFlag, 32);
  7281. new year;
  7282. new month;
  7283. new day;
  7284. date(year, month, day);
  7285. new szSteamId[32];
  7286. new szIP[40];
  7287. get_user_authid(id, szSteamId, 31);
  7288. get_user_ip(id, szIP, 39, 1);
  7289. if (SQL_NumResults(Query) == 1)
  7290. {
  7291. HudEnabled[id] = SQL_ReadResult(Query, 2);
  7292. MVPSound[id] = SQL_ReadResult(Query, 3);
  7293. MVPEnabled[id] = SQL_ReadResult(Query, NULL_STRING);
  7294. FactionT[id] = SQL_ReadResult(Query, 5);
  7295. FactionCT[id] = SQL_ReadResult(Query, 6);
  7296. }
  7297. new var1;
  7298. if (!has_all_flags(id, vipFlag) && MVPSoundVIP[MVPSound[id]])
  7299. {
  7300. MVPSound[id] = 0;
  7301. }
  7302. return 1;
  7303. }
  7304.  
  7305. public sql_RetrieveUserStats(id)
  7306. {
  7307. new szTemp[1024];
  7308. new Data[1];
  7309. Data[0] = id;
  7310. new szName[32];
  7311. user_name_sql(szName, 32, id);
  7312. format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE (`csgo_stats`.`username` = '%s')", szName);
  7313. SQL_ThreadQuery(g_SqlTuple, "retrieve_user_stats", szTemp, Data, 1);
  7314. return 0;
  7315. }
  7316.  
  7317. public retrieve_user_stats(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7318. {
  7319. if (FailState == -2)
  7320. {
  7321. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7322. }
  7323. else
  7324. {
  7325. if (FailState == -1)
  7326. {
  7327. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7328. }
  7329. }
  7330. new id = Data[0];
  7331. new year;
  7332. new month;
  7333. new day;
  7334. date(year, month, day);
  7335. new szSteamId[32];
  7336. new szIP[40];
  7337. get_user_authid(id, szSteamId, 31);
  7338. get_user_ip(id, szIP, 39, 1);
  7339. if (SQL_NumResults(Query) == 1)
  7340. {
  7341. ID[id] = SQL_ReadResult(Query, MaxClients);
  7342. Points[id] = SQL_ReadResult(Query, 2);
  7343. Kills[id] = SQL_ReadResult(Query, 3);
  7344. Rank[id] = SQL_ReadResult(Query, NULL_STRING);
  7345. Level[id] = SQL_ReadResult(Query, 5);
  7346. Mvp[id] = SQL_ReadResult(Query, 6);
  7347. SQL_ReadResult(Query, 7, clan_name[id], 64);
  7348. clan_playerpos[id] = SQL_ReadResult(Query, NULL_VECTOR);
  7349. Dusts[id] = SQL_ReadResult(Query, 9);
  7350. hasDeathNote[id] = SQL_ReadResult(Query, 10);
  7351. SQL_ReadResult(Query, 11, DeathNote[id], 33);
  7352. SQL_ReadResult(Query, 12, Skill[id]);
  7353. if (1 < strlen(clan_name[id]))
  7354. {
  7355. clan_inclan[id] = 1;
  7356. }
  7357. }
  7358. return 1;
  7359. }
  7360.  
  7361. public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7362. {
  7363. SQL_FreeHandle(Query);
  7364. return 1;
  7365. }
  7366.  
  7367. bool:ValidMdl(Mdl[])
  7368. {
  7369. new var1;
  7370. if (containi(Mdl, ".mdl") != -1)
  7371. {
  7372. var1 = true;
  7373. }
  7374. else
  7375. {
  7376. var1 = false;
  7377. }
  7378. return var1;
  7379. }
  7380.  
  7381. user_name(id, _arg1)
  7382. {
  7383. new szName[33];
  7384. get_user_name(id, szName, 32);
  7385. return szName;
  7386. }
  7387.  
  7388. user_name_sql(buffer[], size, id)
  7389. {
  7390. new szName[32];
  7391. get_user_name(id, szName, 31);
  7392. replace_all(szName, 32, "\\", "\\\\");
  7393. replace_all(szName, 32, "\0", "\\0");
  7394. replace_all(szName, 32, "\n", "\\n");
  7395. replace_all(szName, 32, "\r", "\\r");
  7396. replace_all(szName, 32, "\x1a", "\Z");
  7397. replace_all(szName, 32, 4189660, "\'");
  7398. replace_all(szName, 32, 4189680, "\\"");
  7399. formatex(buffer, size, "%s", szName);
  7400. return 0;
  7401. }
  7402.  
  7403. TrimDeathnote(id, buffer[], size)
  7404. {
  7405. replace_all(DeathNote[id], 33, 4189712, 4189720);
  7406. replace_all(DeathNote[id], 33, 4189724, "\\"");
  7407. formatex(buffer, size, "%s", DeathNote[id]);
  7408. return 0;
  7409. }
  7410.  
  7411. ExplodeString(string[], output[], olen)
  7412. {
  7413. new len = strlen(string);
  7414. if (!len)
  7415. {
  7416. return 0;
  7417. }
  7418. new i;
  7419. new c;
  7420. new j;
  7421. new count;
  7422. new number[12];
  7423. do {
  7424. while (string[i] == 32)
  7425. {
  7426. i++;
  7427. }
  7428. while (var3 && c != 32)
  7429. {
  7430. }
  7431. count++;
  7432. output[count] = str_to_num(number);
  7433. j = 0;
  7434. new var2;
  7435. if (!(i < len && count < olen))
  7436. {
  7437. return count;
  7438. }
  7439. } while (var2);
  7440. return count;
  7441. }
  7442.  
  7443. public UpdateMisc(id)
  7444. {
  7445. new szGraffities[128];
  7446. new i;
  7447. while (i < 64)
  7448. {
  7449. format(szGraffities, cvar_SqlUser, "%s%d ", szGraffities, UserGraffiti[i][id]);
  7450. i++;
  7451. }
  7452. new szTemp[2200];
  7453. new szName[32];
  7454. user_name_sql(szName, 32, id);
  7455. new var1;
  7456. if (isLogged[id] && isRegistered[id])
  7457. {
  7458. TrimDeathnote(id, DeathNote[id], 33);
  7459. format(szTemp, 2199, "UPDATE `csgo_misc` SET `chat_ink` = '%d', `chat_tag` = '%s', `graffiti` = '%d', `graffities` = '%s', `graffiti_box` = '%d', `day` = '%d' WHERE `username` = '%s';", ChatInk[id], ChatTag[id], SelectedGraffiti[id], szGraffities, GraffitiBox[id], iDay[id], szName);
  7460. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7461. }
  7462. return 0;
  7463. }
  7464.  
  7465. public UpdateStats(id)
  7466. {
  7467. new szTemp[2048];
  7468. new szName[32];
  7469. user_name_sql(szName, 32, id);
  7470. new var1;
  7471. if (isLogged[id] && isRegistered[id])
  7472. {
  7473. TrimDeathnote(id, DeathNote[id], 33);
  7474. format(szTemp, 2047, "UPDATE `csgo_stats` SET `points` = '%d', `kills` = '%d', `rank` = '%d', `level` = '%d', `mvp` = '%d', `clan_name` = '%s', `clan_pos` = '%d', `dusts` = '%d', `deathnote` = '%d', `deathnote_msg` = '%s', `skill` = '%.2f' WHERE `username` = '%s';", Points[id], Kills[id], Rank[id], Level[id], Mvp[id], clan_name[id], clan_playerpos[id], Dusts[id], hasDeathNote[id], DeathNote[id], Skill[id], szName);
  7475. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7476. }
  7477. return 0;
  7478. }
  7479.  
  7480. public UpdatePlayer(id)
  7481. {
  7482. new szTemp[2048];
  7483. new szName[32];
  7484. user_name_sql(szName, 32, id);
  7485. new var1;
  7486. if (isLogged[id])
  7487. {
  7488. var1 = 1;
  7489. }
  7490. else
  7491. {
  7492. var1 = 0;
  7493. }
  7494. isOnline[id] = var1;
  7495. format(szTemp, 2047, "UPDATE `csgo_player` SET `is_online` = '%d' WHERE `username` = '%s';", isOnline[id], szName);
  7496. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7497. return 0;
  7498. }
  7499.  
  7500. public AddClan(id)
  7501. {
  7502. new szTemp[1024];
  7503. new var1;
  7504. if (isLogged[id] && isRegistered[id])
  7505. {
  7506. format(szTemp, 1023, "INSERT INTO `csgo_clan` (`clan_name`) VALUES ('%s');", clan_name[id]);
  7507. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7508. }
  7509. return 0;
  7510. }
  7511.  
  7512. public UpdateSettings(id)
  7513. {
  7514. new szTemp[1024];
  7515. new szName[32];
  7516. user_name_sql(szName, 32, id);
  7517. new var1;
  7518. if (isLogged[id] && isRegistered[id])
  7519. {
  7520. format(szTemp, 1023, "UPDATE `csgo_settings` SET `hud_enabled` = '%d', `mvp_trackid` = '%d', `mvp_enabled` = '%d', `faction_t` = '%d', `faction_ct` = '%d' WHERE `username` = '%s';", HudEnabled[id], MVPSound[id], MVPEnabled[id], FactionT[id], FactionCT[id], szName);
  7521. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7522. }
  7523. return 0;
  7524. }
  7525.  
  7526. public AddSkinToMarket(id)
  7527. {
  7528. new szTemp[1024];
  7529. new szName[32];
  7530. user_name_sql(szName, 32, id);
  7531. new var1;
  7532. if (isLogged[id] && isRegistered[id])
  7533. {
  7534. format(szTemp, 1023, "INSERT INTO `csgo_market` (username, weapon_id, skin_id, key_id, case_id, quantity, price) VALUES ('%s', '%d', '%d', '0', '0', '0', '%d');", szName, marketwepid[id], marketskinid[id], market_cost[id]);
  7535. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7536. }
  7537. return 0;
  7538. }
  7539.  
  7540. public AddCKToMarket(id)
  7541. {
  7542. new szTemp[1024];
  7543. new szName[32];
  7544. user_name_sql(szName, 32, id);
  7545. new var1;
  7546. if (isLogged[id] && isRegistered[id])
  7547. {
  7548. new var2;
  7549. if (SelectedTypeMarket[id])
  7550. {
  7551. var2 = SelectedItemMarket[id];
  7552. }
  7553. else
  7554. {
  7555. var2 = 0;
  7556. }
  7557. new var3;
  7558. if (!SelectedTypeMarket[id])
  7559. {
  7560. var3 = SelectedItemMarket[id];
  7561. }
  7562. else
  7563. {
  7564. var3 = 0;
  7565. }
  7566. format(szTemp, 1023, "INSERT INTO `csgo_market` (username, weapon_id, skin_id, key_id, case_id, quantity, price) VALUES ('%s', '0', '0', '%d', '%d', '%d', '%d');", szName, var3, var2, ckm_quantity[id], market_cost[id]);
  7567. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7568. }
  7569. return 0;
  7570. }
  7571.  
  7572. public UpdateCK(id)
  7573. {
  7574. new szTemp[1024];
  7575. new szName[32];
  7576. user_name_sql(szName, 32, id);
  7577. new var1;
  7578. if (isLogged[id] && isRegistered[id])
  7579. {
  7580. new szChests[128];
  7581. new szKeys[128];
  7582. new i;
  7583. while (i <= 8)
  7584. {
  7585. format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
  7586. i++;
  7587. }
  7588. new i;
  7589. while (i <= 8)
  7590. {
  7591. format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
  7592. i++;
  7593. }
  7594. format(szTemp, 1023, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s' WHERE username = '%s';", szChests, szKeys, szName);
  7595. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7596. }
  7597. return 0;
  7598. }
  7599.  
  7600. public UpdateCKMarket(iNum)
  7601. {
  7602. new szTemp[1024];
  7603. replace_all(marketseller[iNum], 1027, 4194408, "\'");
  7604. replace_all(marketseller[iNum], 1027, 4194428, "\\"");
  7605. format(szTemp, 1023, "UPDATE `csgo_market` SET `quantity` = '%d' WHERE id = '%d';", marketquantity[iNum], marketid[iNum]);
  7606. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7607. return 0;
  7608. }
  7609.  
  7610. public UpdateItems(id)
  7611. {
  7612. new szTemp[1028];
  7613. new szName[32];
  7614. user_name_sql(szName, 32, id);
  7615. if (isLogged[id])
  7616. {
  7617. new szSkins[1028];
  7618. new szKSkins[1028];
  7619. new szUGuns[128];
  7620. new szChests[128];
  7621. new szKeys[128];
  7622. format(szSkins, 1028, 4194740);
  7623. format(szKSkins, 1028, 4194744);
  7624. format(szUGuns, cvar_SqlUser, 4194748);
  7625. format(szChests, cvar_SqlUser, 4194752);
  7626. format(szKeys, cvar_SqlUser, 4194756);
  7627. new i;
  7628. while (i < 300)
  7629. {
  7630. format(szSkins, 1028, "%s%d ", szSkins, UserSkins[i][id]);
  7631. format(szKSkins, 1028, "%s%d ", szKSkins, UserStattrak[i][id]);
  7632. i++;
  7633. }
  7634. new i;
  7635. while (i < 32)
  7636. {
  7637. format(szUGuns, cvar_SqlUser, "%s%d ", szUGuns, g_bUsingGuns[id][i]);
  7638. i++;
  7639. }
  7640. new i;
  7641. while (i <= 8)
  7642. {
  7643. format(szChests, cvar_SqlUser, "%s%d ", szChests, Cases[id][i]);
  7644. i++;
  7645. }
  7646. new i;
  7647. while (i <= 8)
  7648. {
  7649. format(szKeys, cvar_SqlUser, "%s%d ", szKeys, Keys[id][i]);
  7650. i++;
  7651. }
  7652. format(szTemp, 1027, "UPDATE `csgo_items` SET `cases` = '%s', `keyz` = '%s', `stattrak` = '%s' WHERE `username` = '%s';", szChests, szKeys, szKSkins, szName);
  7653. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7654. format(szTemp, 1027, "UPDATE `csgo_items` SET `skins` = '%s', `skins_used` = '%s' WHERE `username` = '%s';", szSkins, szUGuns, szName);
  7655. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7656. }
  7657. return 0;
  7658. }
  7659.  
  7660. public GetCKData()
  7661. {
  7662. new szTemp[1024];
  7663. new Data[1];
  7664. format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE quantity = '0' AND skin_id = '0'");
  7665. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7666. format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE key_id > 0 OR case_id > 0");
  7667. SQL_ThreadQuery(g_SqlTuple, "ck_data", szTemp, Data, 1);
  7668. return 0;
  7669. }
  7670.  
  7671. public ck_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7672. {
  7673. if (FailState == -2)
  7674. {
  7675. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7676. }
  7677. else
  7678. {
  7679. if (FailState == -1)
  7680. {
  7681. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7682. }
  7683. }
  7684. new i;
  7685. marketckcount = 0;
  7686. if (0 < SQL_NumResults(Query))
  7687. {
  7688. while (SQL_MoreResults(Query))
  7689. {
  7690. i++;
  7691. marketid[i] = SQL_ReadResult(Query, MaxClients);
  7692. SQL_ReadResult(Query, 1, marketseller[i], 63);
  7693. marketkeys[i] = SQL_ReadResult(Query, NULL_STRING);
  7694. marketcases[i] = SQL_ReadResult(Query, 5);
  7695. marketquantity[i] = SQL_ReadResult(Query, 6);
  7696. marketckprice[i] = SQL_ReadResult(Query, 7);
  7697. marketckcount = marketquantity[i][marketckcount];
  7698. SQL_NextRow(Query);
  7699. }
  7700. }
  7701. return 1;
  7702. }
  7703.  
  7704. public GetClanData(id)
  7705. {
  7706. new szTemp[1024];
  7707. new Data[1];
  7708. Data[0] = id;
  7709. format(szTemp, 1023, "SELECT * FROM `csgo_stats` WHERE clan_name = '%s' ORDER BY clan_pos DESC", clan_name[id]);
  7710. SQL_ThreadQuery(g_SqlTuple, "clan_data", szTemp, Data, 1);
  7711. return 0;
  7712. }
  7713.  
  7714. public clan_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7715. {
  7716. if (FailState == -2)
  7717. {
  7718. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7719. }
  7720. else
  7721. {
  7722. if (FailState == -1)
  7723. {
  7724. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7725. }
  7726. }
  7727. new i;
  7728. new id = Data[0];
  7729. if (0 < SQL_NumResults(Query))
  7730. {
  7731. while (SQL_MoreResults(Query))
  7732. {
  7733. SQL_ReadResult(Query, 1, clan_members[id][i], 63);
  7734. i++;
  7735. SQL_NextRow(Query);
  7736. }
  7737. }
  7738. clan_count[id] = i;
  7739. return 1;
  7740. }
  7741.  
  7742. public GetSkinData()
  7743. {
  7744. new szTemp[1024];
  7745. new Data[1];
  7746. format(szTemp, 1023, "SELECT * FROM `csgo_market` WHERE skin_id > 0");
  7747. SQL_ThreadQuery(g_SqlTuple, "skin_data", szTemp, Data, 1);
  7748. return 0;
  7749. }
  7750.  
  7751. public skin_data(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7752. {
  7753. if (FailState == -2)
  7754. {
  7755. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7756. }
  7757. else
  7758. {
  7759. if (FailState == -1)
  7760. {
  7761. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7762. }
  7763. }
  7764. new i;
  7765. if (0 < SQL_NumResults(Query))
  7766. {
  7767. while (SQL_MoreResults(Query))
  7768. {
  7769. i++;
  7770. marketidskin[i] = SQL_ReadResult(Query, MaxClients);
  7771. SQL_ReadResult(Query, 1, marketskinseller[i], 63);
  7772. marketwep[i] = SQL_ReadResult(Query, 2);
  7773. marketskin[i] = SQL_ReadResult(Query, 3);
  7774. marketskinprice[i] = SQL_ReadResult(Query, 7);
  7775. SQL_NextRow(Query);
  7776. }
  7777. }
  7778. return 1;
  7779. }
  7780.  
  7781. public CheckClanName(id)
  7782. {
  7783. new szTemp[1024];
  7784. new Data[1];
  7785. Data[0] = id;
  7786. replace_all(clan_name[id], 63, 4197792, "\'");
  7787. replace_all(clan_name[id], 63, 4197812, "\\"");
  7788. format(szTemp, 1023, "SELECT * FROM `csgo_clan` WHERE `clan_name` = '%s'", clan_name[id]);
  7789. SQL_ThreadQuery(g_SqlTuple, "clan_check", szTemp, Data, 1);
  7790. return 0;
  7791. }
  7792.  
  7793. public clan_check(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  7794. {
  7795. if (FailState == -2)
  7796. {
  7797. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  7798. }
  7799. else
  7800. {
  7801. if (FailState == -1)
  7802. {
  7803. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  7804. }
  7805. }
  7806. new id = Data[0];
  7807. if (0 < SQL_NumResults(Query))
  7808. {
  7809. clan_istaken[id] = 1;
  7810. }
  7811. else
  7812. {
  7813. clan_istaken[id] = 0;
  7814. }
  7815. return 1;
  7816. }
  7817.  
  7818. random_item(itemChances[], count)
  7819. {
  7820. static sum;
  7821. static i;
  7822. static rand;
  7823. rand = random(100);
  7824. sum = 0;
  7825. i = 0;
  7826. i = 0;
  7827. while (i <= count)
  7828. {
  7829. sum = itemChances[i][sum];
  7830. if (sum > rand)
  7831. {
  7832. return i;
  7833. }
  7834. i += 1;
  7835. }
  7836. return i;
  7837. }
  7838.  
  7839. public UpdateStatsOffline(Params[], points)
  7840. {
  7841. replace_all(Params, 63, 4198404, "\'");
  7842. replace_all(Params, 63, 4198424, "\\"");
  7843. new szTemp[1024];
  7844. format(szTemp, 1023, "UPDATE `csgo_stats` SET `points` = points + '%d' WHERE `username` = '%s';", points, Params);
  7845. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7846. return 0;
  7847. }
  7848.  
  7849. public DeleteFromMarket(playermarketid)
  7850. {
  7851. new szTemp[1024];
  7852. format(szTemp, 1023, "DELETE FROM `csgo_market` WHERE `id` = '%d';", playermarketid);
  7853. SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp, 4148216, MaxClients);
  7854. return 0;
  7855. }
  7856.  
  7857. public screenfade(id, red, green, blue)
  7858. {
  7859. message_begin(1, get_user_msgid("ScreenFade"), 4199068, id);
  7860. write_short(1024);
  7861. write_short(1024);
  7862. write_short(MaxClients);
  7863. write_byte(red);
  7864. write_byte(green);
  7865. write_byte(blue);
  7866. write_byte(75);
  7867. message_end();
  7868. return 0;
  7869. }
  7870.  
  7871. public screenfade_grey(id)
  7872. {
  7873. message_begin(1, get_user_msgid("ScreenFade"), 4199124, id);
  7874. write_short(1024);
  7875. write_short(1024);
  7876. write_short(MaxClients);
  7877. write_byte(150);
  7878. write_byte(150);
  7879. write_byte(150);
  7880. write_byte(75);
  7881. message_end();
  7882. return 0;
  7883. }
  7884.  
  7885. public drop_item(id, chance)
  7886. {
  7887. new rNum = random_num(1, 100);
  7888. new ck = random_num(1, "amxx_configsdir");
  7889. new ckid = random_num(1, NULL_VECTOR);
  7890. if (rNum <= chance)
  7891. {
  7892. if (ck == 1)
  7893. {
  7894. GraffitiBox[id]++;
  7895. user_name(id);
  7896.  
  7897. /* ERROR! Can't print expression: Heap */
  7898. function "drop_item" (number 221)
  7899. public format_skin_name(buffer[], size, skinid, type)
  7900. {
  7901. switch (type)
  7902. {
  7903. case 1:
  7904. {
  7905. if (Weapons[skinid] == 29)
  7906. {
  7907. replace_all(SkinNames[skinid], 300, "\r", 4199492);
  7908. replace_all(SkinNames[skinid], 300, "\y", 4199512);
  7909. replace_all(SkinNames[skinid], 300, "\d", 4199532);
  7910. replace_all(SkinNames[skinid], 300, "\w", 4199552);
  7911. replace_all(SkinNames[skinid], 300, 4199560, "\x01|\x04");
  7912. formatex(buffer, size, "%s", SkinNames[skinid]);
  7913. }
  7914. else
  7915. {
  7916. formatex(buffer, size, "\x04%s \x01| \x04%s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
  7917. }
  7918. }
  7919. case 2:
  7920. {
  7921. if (Weapons[skinid] == 29)
  7922. {
  7923. replace_all(SkinNames[skinid], 300, "\r", 4199652);
  7924. replace_all(SkinNames[skinid], 300, "\y", 4199668);
  7925. replace_all(SkinNames[skinid], 300, "\d", 4199684);
  7926. replace_all(SkinNames[skinid], 300, "\w", 4199700);
  7927. formatex(buffer, size, "%s", SkinNames[skinid]);
  7928. }
  7929. else
  7930. {
  7931. formatex(buffer, size, "%s | %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
  7932. }
  7933. }
  7934. case 3:
  7935. {
  7936. if (Weapons[skinid] == 29)
  7937. {
  7938. formatex(buffer, size, "%s", SkinNames[skinid]);
  7939. }
  7940. else
  7941. {
  7942. formatex(buffer, size, "\r%s \w| %s", szWepNames[Weapons[skinid]], SkinNames[skinid]);
  7943. }
  7944. }
  7945. default:
  7946. {
  7947. }
  7948. }
  7949. return 0;
  7950. }
  7951.  
  7952. public AddPoints(id, amount)
  7953. {
  7954. new lhenabled = get_pcvar_num(cvar_LHEnabled);
  7955. new var1;
  7956. if (lhenabled && IsLuckyHour())
  7957. {
  7958. new lhbonus = get_pcvar_num(cvar_LHBonus);
  7959. new var2 = Points[id];
  7960. var2 = var2[lhbonus * amount];
  7961. }
  7962. else
  7963. {
  7964. new var3 = Points[id];
  7965. var3 = var3[amount];
  7966. }
  7967. return 0;
  7968. }
  7969.  
  7970. public IsLuckyHour()
  7971. {
  7972. new lhstart = get_pcvar_num(cvar_LHStart);
  7973. new lhend = get_pcvar_num(cvar_LHEnd);
  7974. new data[3];
  7975. get_time("%H", data, 2);
  7976. if (lhend > str_to_num(data) >= lhstart)
  7977. {
  7978. return 1;
  7979. }
  7980. return 0;
  7981. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement