чуть конкретней если можно)@Колян, OnPlayerRunCmd
public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon, int &subtype, int &cmdnum, int &tickcount, int &seed, int mouse[2])
{
if (IsPlayerAlive(client))
{
if (buttons & IN_ATTACK2)
{
static char class[32];
GetClientWeapon(client, class, sizeof(class));
if(StrContains(class, "knife") != -1 || StrContains(class, "bayonet") != -1)
{
buttons &= ~IN_ATTACK2;
buttons |= IN_ATTACK; // замена на левую, вроде должно работать
return Plugin_Changed;
}
}
}
return Plugin_Continue;
}
физически это запретить?
m_flNextPrimaryAttack
m_flNextSecondaryAttack
Клавиша IN_ATTACK2. Только нужно ещё проверить применяемое оружие. Оффтопчуть конкретней
Вызов для игроков, а не entity - индекс не перевалит. И игрок всегда валиден.0 < client<= MaxClients && IsClientInGame(client)
Обязательно static.char class[32];
можно через эти параметры выставить время через которое игра позволит нажать ЛКМ и ПКМ, соответственновот это не понял)))
Кнопку бы заранее получать, чтобы оружие зря не узнавать. Массив поменьше.
StrContains(class, "knife") != -1
strncmp(class[7], "knife", 5) == 0
вот это не понял
SetEntPropFloat(weapon, Prop_Send, "m_flNextPrimaryAttack", 99999999.9);
SetEntPropFloat(weapon, Prop_Send, "m_flNextSecondaryAttack", 99999999.9);
лучше через int &weapon, но как через это значение определить тип оружия я не в курсеКнопку бы заранее получать, чтобы оружие зря не узнавать. Массив поменьше.И второе оружие обычным сравнением строк.PHP:strncmp(class[7], "knife", 5) == 0
Замена хоть работать будет?
buttons |= IN_ATTACK;