Witam.
Niżej macie kod przy którym łatwo zatrzymać atak a także dodać od siebie parę bajerów typu rakiety itp. (na razie jest dodana tylko animacja dla glock'a, taki ala "fejk szot") ![]()
Do rzeczy, niżej macie kod, blokuje on pierwszorzędny atak, tzn. że nie zablokuje "prawego" ataku z noża, ale to dodam wkrótce ![]()
Brawa dla G[o]Q za wykrycie można powiedzieć buga, po którym kod (wg. mnie) musiał wyglądać inaczej.
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
new const g_iBlockedWeaponId = CSW_GLOCK18; //Id broni do zablokowania
new const g_szBlockedWeaponName[] = "weapon_glock18"; //Nazwa broni do zablokowania
new const Float:g_fAttackTime = 1.1; //Czas ataku (tzn. po ilu sekundach od zaatakowania, mozna atakowac znowu :))
new Float:g_fTimeToNextPlayerAttack[33];
public plugin_init()
{
register_plugin("Fejk szot", "0.1", "d0naciak");
register_forward(FM_CmdStart, "fw_CmdStart_Post", 1);
RegisterHam(Ham_Item_Deploy, g_szBlockedWeaponName, "fw_ItemDeploy_Post", 1);
}
public fw_CmdStart_Post(id, iUc)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
if(get_user_weapon(id) != g_iBlockedWeaponId)
return FMRES_IGNORED;
static iButtons, iOldButtons;
iButtons = get_uc(iUc, UC_Buttons);
iOldButtons = pev(id, pev_oldbuttons);
if(iButtons & IN_ATTACK && !(iOldButtons & IN_ATTACK))
{
if(get_gametime() < g_fTimeToNextPlayerAttack[id])
return FMRES_IGNORED;
//Co sie ma zdarzyc po ataku?
client_print(id, print_center, "ATAK!") //Tutaj atakujacy dostanie wiadomosc: ATAK!
g_fTimeToNextPlayerAttack[id] = get_gametime() + g_fAttackTime;
}
return FMRES_IGNORED;
}
public fw_ItemDeploy_Post(iEnt)
set_pdata_float(iEnt, 46, 999.0, 4);


Dodatki SourceMod

















