Как сделать в этом вип меню, так чтобы вместо обычных скинов оружий брались золотые?
Код:
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>
#include <dhudmessage>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
// **************************** Настройки ****************************
#define VIP_TAG (1<<2) //Тег VIP
#define ACCESS_LEVEL_1 ADMIN_LEVEL_H // Флаг для VIP меню [t]
#define ACCESS_LEVEL_2 ADMIN_LEVEL_G // Флаг для Super VIP [s]
#define VIP_TIME_AK47 180 // Через сколько можно взять AK-47
#define VIP_TIME_M4A1 180 // Через сколько можно взять M4A1
#define VIP_TIME_AWP 180 // Через сколько можно взять AWP & Deagle
#define VIP_TIME_MONEY 300 // Через сколько можно взять 16000$
#define VIP_TIME_HEALTH 180 // Через сколько можно взять 255 HP & 255 AP
#define VIP_TIME_SPEED 180 // Через сколько можно взять Скорость
#define VIP_TIME_MENY 40 // Через сколько секунд можно будет меню
// **************************** Настройки ****************************
#define COUNT_TIMER 1488 // не трогать
#define TASKID 100 // не трогать
public plugin_init()
{
register_plugin("VIP Menu", "1.0", "Anonymus");
register_clcmd("vipmenu", "MenuVIP");
register_menucmd(register_menuid("Menu VIP"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8, "VIPMENU");
RegisterHam(Ham_Player_Jump, "player", "CBasePlayer_Jump", false);
register_event("CurWeapon", "WeaponChange", "be", "1=1");
RegisterHam(Ham_Spawn, "player", "CBasePlayer_Spawn", 0);
set_task(1.0, "Timer", COUNT_TIMER, _, _, "b")
}
new g_ak47[33], g_m4a1[33], g_awp[33], g_money[33], g_health[33], g_speed[33],
g_UserSpeed[33], g_doublejump[33], g_iJumpNum[33], g_bunny[33], g_block[33];
new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
public Timer()
{
for(new i; i < 32;i++)
{
if(g_ak47[i] > 0) g_ak47[i]--
if(g_m4a1[i] > 0) g_m4a1[i]--
if(g_awp[i] > 0) g_awp[i]--
if(g_money[i] > 0) g_money[i]--
if(g_health[i] > 0) g_health[i]--
if(g_speed[i] > 0) g_speed[i]--
if(g_block[i] > 0) g_block[i]--
}
}
public MenuVIP(id)
{
if(~get_user_flags(id) & ACCESS_LEVEL_1)
{
client_print_color(id, print_team_default, "^1[^4INFO^1] Только ^3VIP ^4может пользоваться этой командой !");
return PLUGIN_HANDLED;
}
if(g_block[id] > 0)
{
client_print_color(id, print_team_default, "^1[^4INFO^1] Подождите^4 40 ^1сек после входа. ^3!");
return PLUGIN_HANDLED;
}
if(!is_user_alive(id))
{
client_print_color(id, print_team_default, "^1[^4INFO^1] Данное меню ^4Недоступно ^3для мертвых !");
return PLUGIN_HANDLED;
}
new szMenu[1024], iLen = formatex(szMenu, charsmax(szMenu), "\yVIP Меню^n^n"), iKey = MENU_KEY_8;
if(g_ak47[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \wВзять AK-47 \y[\r%d Секунд\y]^n", VIP_TIME_AK47)
iKey |= MENU_KEY_1;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \dВзять AK-47 \y[\rЖдите %d Секунд\y]^n", g_ak47[id])
iKey &= ~MENU_KEY_1;
}
if(g_m4a1[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wВзять M4A1 \y[\r%d Секунд\y]^n", VIP_TIME_M4A1)
iKey |= MENU_KEY_2;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \dВзять M4A1 \y[\rЖдите %d Секунд\y]^n", g_m4a1[id])
iKey &= ~MENU_KEY_2;
}
if(g_awp[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \wВзять AWP & Deagle \y[\r%d Секунд\y]^n", VIP_TIME_AWP)
iKey |= MENU_KEY_3;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \dВзять AWP & Deagle \y[\rЖдите %d Секунд\y]^n", g_awp[id])
iKey &= ~MENU_KEY_3;
}
if(g_money[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \wВзять 16000$ \y[\r%d Секунд\y]^n", VIP_TIME_MONEY)
iKey |= MENU_KEY_4;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \dВзять 16000$ \y[\rЖдите %d Секунд\y]^n", g_money[id])
iKey &= ~MENU_KEY_4;
}
if(g_health[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \wВзять 255HP и 255AP \y[\r%d Секунд\y]^n", VIP_TIME_HEALTH)
iKey |= MENU_KEY_5;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \dВзять 255HP и 255AP \y[\rЖдите %d Секунд\y]^n", g_health[id])
iKey &= ~MENU_KEY_5;
}
if(g_speed[id] == 0)
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \wВзять Скорость \y[\r%d Секунд\y]^n", VIP_TIME_SPEED)
iKey |= MENU_KEY_6;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \dВзять Скорость \y[\rЖдите %d Секунд\y]^n", g_speed[id])
iKey &= ~MENU_KEY_6;
}
if(get_user_flags(id) & ACCESS_LEVEL_2)
{
if(g_doublejump[id])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \wDouble-Jump \r[\yВкл\r]^n")
iKey |= MENU_KEY_7;
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \wDouble-Jump \r[\yВыкл\r]^n")
iKey |= MENU_KEY_7;
}
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \dDouble-Jump \r[\yНет прав!\r]^n")
iKey &= ~MENU_KEY_7
}
if(g_bunny[id])
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r8. \wBunnyHop \r[\yВкл\r]^n^n")
iKey |= MENU_KEY_8
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r8. \wBunnyHop \r[\yВыкл\r]^n^n")
iKey |= MENU_KEY_8
}
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r0. \wВыход^n")
iKey |= MENU_KEY_0;
return show_menu(id, iKey, szMenu, -1, "Menu VIP");
}
public VIPMENU(id, iKey)
{
switch(iKey)
{
case 0:
{
g_ak47[id] = VIP_TIME_AK47;
give_item_ex(id, "weapon_ak47", 90, 1);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 AK-47!");
}
case 1:
{
g_m4a1[id] = VIP_TIME_M4A1;
give_item_ex(id, "weapon_m4a1", 90, 1);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 M4A1!");
}
case 2:
{
g_awp[id] = VIP_TIME_AWP;
give_item_ex(id, "weapon_awp", 30, 1);
give_item_ex(id, "weapon_deagle", 35, 1);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 AWP и Deagle!");
}
case 3:
{
g_money[id] = VIP_TIME_MONEY;
cs_set_user_money(id, cs_get_user_money(id) + 16000);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 16000$!");
}
case 4:
{
g_health[id] = VIP_TIME_HEALTH;
set_user_health(id, 500);
set_user_armor(id, get_user_armor(id) + 255);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 255HP и 255AP!");
}
case 5:
{
g_speed[id] = VIP_TIME_SPEED;
g_UserSpeed[id] = true;
set_user_maxspeed(id, 365.0);
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3взяли^4 Скорость!");
}
case 6:
{
if(!g_doublejump[id])
{
g_doublejump[id] = true;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3включили ^4DoubleJump!");
}
else
{
g_doublejump[id] = false;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3выключили ^4DoubleJump!");
}
}
case 7:
{
if(!g_bunny[id])
{
g_bunny[id] = true;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3включили ^4BunnyHop!");
}
else
{
g_bunny[id] = false;
client_print_color(id, print_team_default, "^1[^4INFO^1] Вы ^3выключили ^4BunnyHop!");
}
}
}
MenuVIP(id);
return PLUGIN_HANDLED;
}
public CBasePlayer_Jump(id)
{
if(g_bunny[id] && pev(id, pev_flags) & (FL_ONGROUND|FL_CONVEYOR))
{
new Float:vecVelocity[3];
pev(id, pev_velocity, vecVelocity);
vecVelocity[2] = 250.0;
set_pev(id, pev_velocity, vecVelocity);
set_pev(id, pev_gaitsequence, 6);
}
new obut = get_user_oldbutton(id); // get_players(id, m_afButtonLast)
new nbut = get_user_button(id)
new iFlags = pev(id, pev_flags);
if(g_doublejump[id] && (nbut & IN_JUMP) && !(obut & IN_JUMP) && ~iFlags & (FL_ONGROUND|FL_CONVEYOR|FL_INWATER))
{
if(g_iJumpNum[id] < 1)
{
g_iJumpNum[id]++
new Float:vecVelocity[3];
pev(id, pev_velocity, vecVelocity);
vecVelocity[2] = 265.0;
set_pev(id, pev_velocity, vecVelocity);
set_pev(id, pev_gaitsequence, 6);
}
}
if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
g_iJumpNum[id] = 0;
}
}
public WeaponChange(id)
{
if(g_UserSpeed[id])
set_user_maxspeed(id, 320.0)
}
public client_putinserver(id)
{
g_doublejump[id] = false;
g_bunny[id] = false;
g_ak47[id] = VIP_TIME_AK47;
g_m4a1[id] = VIP_TIME_M4A1;
g_awp[id] = VIP_TIME_AWP;
g_money[id] = VIP_TIME_MONEY;
g_health[id] = VIP_TIME_HEALTH;
g_speed[id] = VIP_TIME_SPEED;
g_block[id] = VIP_TIME_MENY;
if(get_user_flags(id) & ACCESS_LEVEL_1)
{
set_task(45.0, "Blocked", id+TASKID, .flags = "a");
}
}
public client_disconnect(id)
{
remove_task(id + TASKID) // удаление задачи для конкретного игрока
}
public CBasePlayer_Spawn(id)
{
g_UserSpeed[id] = false;
}
public Blocked(taskid)
{
new id = taskid - TASKID;
if(!is_user_connected(id) || (~get_user_flags(id) & ACCESS_LEVEL_1)) return;
set_dhudmessage(0, 255, 0, -1.0, 0.10, 0, 5.0, 4.0)
show_dhudmessage(id, "Випменю - Активировано!")
}
stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id,weaponsList,weaponsNum);
for (new i;i < weaponsNum;i++)
{
if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
engclient_cmd(id,"drop",weaponName);
}
}
}
fm_give_item(id,currWeaponName);
cs_set_user_bpammo(id,currWeaponID,ammoAmount);
return 1;
}