#include <amxmodx>
#include <engine>
#include <nvault>
#define PLUGIN "Havazik"
#define VERSION "1.0.1"
#define AUTHOR "mforce"
new const PREFIX[] = "Havazik";
new havazas[33] = 1;
new vault;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /ho", "snow_menu");
set_task(183.0, "esikahoocsem", .flags = "b");
vault = nvault_open("havazas");
}
public plugin_precache() {
create_entity("env_snow");
}
public esikahoocsem() {
ChatColor(0, "^4[%s]^1 A szerveren hóesés van, kikapcsolás és állítás: ^3/ho", PREFIX);
}
public snow_menu(id) {
new temp[128], temp2[32];
formatex(temp, charsmax(temp), "\r[\y%s\r] \wHavazás menü by \y%s", PREFIX, AUTHOR);
new menu = menu_create(temp, "snow_menu_h");
formatex(temp, charsmax(temp), "\wHavazás: \r[%s]", havazas[id] == 0 ? "Kikapcsolva":"Bekapcsolva");
menu_additem(menu,temp, "0", 0);
switch(havazas[id]) {
case 0: formatex(temp2, charsmax(temp2), "Nincs");
case 1: formatex(temp2, charsmax(temp2), "Gyenge");
case 2: formatex(temp2, charsmax(temp2), "Közepes");
case 3: formatex(temp2, charsmax(temp2), "Erős");
}
formatex(temp, charsmax(temp), "%sErősség: \r[%s]", havazas[id] == 0 ? "\d":"\w", temp2);
menu_additem(menu,temp, "1", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
}
public snow_menu_h(id, menu, item) {
switch(item) {
case 0: {
if(havazas[id] == 0) {
havazas[id] = 1;
client_cmd(id, "cl_weather 1");
}
else {
havazas[id] = 0;
client_cmd(id, "cl_weather 0");
}
mentes(id);
snow_menu(id);
}
case 1: {
switch(havazas[id]) {
case 1: {
havazas[id] = 2;
client_cmd(id, "cl_weather 2");
}
case 2: {
havazas[id] = 3;
client_cmd(id, "cl_weather 3");
}
case 3: {
havazas[id] = 1;
client_cmd(id, "cl_weather 1");
}
}
mentes(id);
snow_menu(id);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_authorized(id) {
if(!is_user_bot(id) && !is_user_hltv(id)) {
betoltes(id);
}
}
public client_disconnect(id) {
havazas[id] = 1;
}
public mentes(id) {
new vaultkey[32], vaultdata[128];
get_user_authid(id, vaultkey, charsmax(vaultkey));
formatex(vaultdata, charsmax(vaultdata), "%i", havazas[id]);
nvault_set(vault, vaultkey, vaultdata);
}
public betoltes(id) {
new vaultkey[32], vaultdata[128];
get_user_authid(id, vaultkey, charsmax(vaultkey));
formatex(vaultdata, charsmax(vaultdata), "%i", havazas[id]);
if(nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata))) {
new ho[8];
parse(vaultdata, ho, charsmax(ho));
havazas[id] = str_to_num(ho);
switch(havazas[id]) {
case 0: client_cmd(id, "cl_weather 0");
case 1: client_cmd(id, "cl_weather 1");
case 2: client_cmd(id, "cl_weather 2");
case 3: client_cmd(id, "cl_weather 3");
}
}
else {
havazas[id] = 1;
client_cmd(id, "cl_weather 1");
}
}
public plugin_end() {
nvault_close(vault);
}
stock ChatColor(const id, const szMessage[], any:...) {
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id) {
if(!is_user_connected(id)) return;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++) {
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
}