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);