HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <nvault>
  4.  
  5. #define PLUGIN "Havazik"
  6. #define VERSION "1.0.1"
  7. #define AUTHOR "mforce"
  8.  
  9. new const PREFIX[] = "Havazik";
  10.  
  11. new havazas[33] = 1;
  12. new vault;
  13.  
  14. public plugin_init() {
  15. register_plugin(PLUGIN, VERSION, AUTHOR);
  16. register_clcmd("say /ho", "snow_menu");
  17. set_task(183.0, "esikahoocsem", .flags = "b");
  18. vault = nvault_open("havazas");
  19. }
  20.  
  21. public plugin_precache() {
  22. create_entity("env_snow");
  23. }
  24.  
  25. public esikahoocsem() {
  26. ChatColor(0, "^4[%s]^1 A szerveren hóesés van, kikapcsolás és állítás: ^3/ho", PREFIX);
  27. }
  28.  
  29. public snow_menu(id) {
  30. new temp[128], temp2[32];
  31. formatex(temp, charsmax(temp), "\r[\y%s\r] \wHavazás menü by \y%s", PREFIX, AUTHOR);
  32. new menu = menu_create(temp, "snow_menu_h");
  33.  
  34. formatex(temp, charsmax(temp), "\wHavazás: \r[%s]", havazas[id] == 0 ? "Kikapcsolva":"Bekapcsolva");
  35. menu_additem(menu,temp, "0", 0);
  36. switch(havazas[id]) {
  37. case 0: formatex(temp2, charsmax(temp2), "Nincs");
  38. case 1: formatex(temp2, charsmax(temp2), "Gyenge");
  39. case 2: formatex(temp2, charsmax(temp2), "Közepes");
  40. case 3: formatex(temp2, charsmax(temp2), "Erős");
  41. }
  42. formatex(temp, charsmax(temp), "%sErősség: \r[%s]", havazas[id] == 0 ? "\d":"\w", temp2);
  43. menu_additem(menu,temp, "1", 0);
  44.  
  45. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  46. menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  47. menu_display(id, menu, 0);
  48. }
  49.  
  50. public snow_menu_h(id, menu, item) {
  51. switch(item) {
  52. case 0: {
  53. if(havazas[id] == 0) {
  54. havazas[id] = 1;
  55. client_cmd(id, "cl_weather 1");
  56. }
  57. else {
  58. havazas[id] = 0;
  59. client_cmd(id, "cl_weather 0");
  60. }
  61. mentes(id);
  62. snow_menu(id);
  63. }
  64. case 1: {
  65. switch(havazas[id]) {
  66. case 1: {
  67. havazas[id] = 2;
  68. client_cmd(id, "cl_weather 2");
  69. }
  70. case 2: {
  71. havazas[id] = 3;
  72. client_cmd(id, "cl_weather 3");
  73. }
  74. case 3: {
  75. havazas[id] = 1;
  76. client_cmd(id, "cl_weather 1");
  77. }
  78. }
  79. mentes(id);
  80. snow_menu(id);
  81. }
  82. }
  83.  
  84. menu_destroy(menu);
  85. return PLUGIN_HANDLED;
  86. }
  87.  
  88. public client_authorized(id) {
  89. if(!is_user_bot(id) && !is_user_hltv(id)) {
  90. betoltes(id);
  91. }
  92. }
  93.  
  94. public client_disconnect(id) {
  95. havazas[id] = 1;
  96. }
  97.  
  98. public mentes(id) {
  99. new vaultkey[32], vaultdata[128];
  100. get_user_authid(id, vaultkey, charsmax(vaultkey));
  101. formatex(vaultdata, charsmax(vaultdata), "%i", havazas[id]);
  102. nvault_set(vault, vaultkey, vaultdata);
  103. }
  104.  
  105. public betoltes(id) {
  106. new vaultkey[32], vaultdata[128];
  107. get_user_authid(id, vaultkey, charsmax(vaultkey));
  108. formatex(vaultdata, charsmax(vaultdata), "%i", havazas[id]);
  109. if(nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata))) {
  110. new ho[8];
  111. parse(vaultdata, ho, charsmax(ho));
  112. havazas[id] = str_to_num(ho);
  113. switch(havazas[id]) {
  114. case 0: client_cmd(id, "cl_weather 0");
  115. case 1: client_cmd(id, "cl_weather 1");
  116. case 2: client_cmd(id, "cl_weather 2");
  117. case 3: client_cmd(id, "cl_weather 3");
  118. }
  119. }
  120. else {
  121. havazas[id] = 1;
  122. client_cmd(id, "cl_weather 1");
  123. }
  124. }
  125.  
  126. public plugin_end() {
  127. nvault_close(vault);
  128. }
  129.  
  130. stock ChatColor(const id, const szMessage[], any:...) {
  131. static pnum, players[32], szMsg[190], IdMsg;
  132. vformat(szMsg, charsmax(szMsg), szMessage, 3);
  133.  
  134. if(!IdMsg) IdMsg = get_user_msgid("SayText");
  135.  
  136. if(id) {
  137. if(!is_user_connected(id)) return;
  138. players[0] = id;
  139. pnum = 1;
  140. }
  141. else get_players(players, pnum, "ch");
  142.  
  143. for(new i; i < pnum; i++) {
  144. message_begin(MSG_ONE, IdMsg, .player = players[i]);
  145. write_byte(players[i]);
  146. write_string(szMsg);
  147. message_end();
  148. }
  149. }