Добавлено спустя 19 минут 50 секунд:
Забайтили. Немного хардкорно, но пойдет, ибо хз на чем это запускать будут.
- Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
new bool:g_bFreeShots[33];
new g_iItem_FreeShots;
public plugin_init()
{
register_plugin("[ZP] Extra: FreeShoots", "1.0", "fl0wer");
register_event("HLTV", "@EV_RoundStart", "a", "1=0", "2=0");
g_iItem_FreeShots = zp_register_extra_item("Точная стрельба", 6, ZP_TEAM_HUMAN);
for (new i = CSW_P228, weaponName[24]; i <= CSW_P90; i++)
{
if ((1<<i) & ((1<<CSW_KNIFE | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4)))
continue;
if (!get_weaponname(i, weaponName, charsmax(weaponName)))
continue;
RegisterHam(Ham_Weapon_PrimaryAttack, weaponName, "@CWeapon_PrimaryAttack_Post", true);
}
}
public client_putinserver(id)
{
g_bFreeShots[id] = false;
}
@EV_RoundStart()
{
arrayset(g_bFreeShots, false, sizeof(g_bFreeShots));
}
public zp_user_infected_post(id)
{
g_bFreeShots[id] = false;
}
public zp_extra_item_selected(id, item)
{
if (item != g_iItem_FreeShots)
return PLUGIN_CONTINUE;
if (g_bFreeShots[id])
{
client_print(id, print_chat, "Больше нельзя купить");
return ZP_PLUGIN_HANDLED;
}
g_bFreeShots[id] = true;
client_print(id, print_chat, "Вы купили Свободную стрельбу");
return PLUGIN_CONTINUE;
}
@CWeapon_PrimaryAttack_Post(id)
{
new player = get_pdata_cbase(id, 41, 4);
if (!g_bFreeShots[player])
return;
set_pev(player, pev_punchangle, Float:{ 0.0, 0.0, 0.0 });
set_pdata_int(id, 51, get_pdata_int(id, 51, 4) + 1, 4);
}