Написал для своего сервера анти +С, выкладываю сюда.
Добавим ко всем new переменную для таймера (GetTickCount):
PHP код:
new AntiCFired[MAX_PLAYERS];
В public OnPlayerKeyStateChange добавим проверку на использование +с
PHP код:
switch (GetPlayerWeapon (playerid))
{
case 24, 25, 33, 34, 27: //проверка на "С-шное" оружие
{
if((newkeys == 132)||(newkeys == 4)||newkeys == 4)AntiCFired[playerid]=GetTickCount();
if (((GetTickCount () - AntiCFired[playerid]) < 1000) && (newkeys == 2))
{
ApplyAnimation(playerid,"PED","getup_front",4.0,0,0,1,0,0);
}
}
}
Как работает: Если игрок нажимает ПКМ+ЛКМ или просто ЛКМ, то активируется таймер. Если при нажатии на клавишу С таймер будет меньше 1000 (А именно столько "экономят" +Сшники), то активируется анимация падения.
Вариант для борьбы с заядлыми +Сшниками:
Ко всем new:
PHP код:
new AntiCFired[MAX_PLAYERS];//ну эта наша первая переменная
new WaringC[MAX_PLAYERS] = 0;//отвечает за предупреждения
В public OnPlayerConnect добавить:
PHP код:
WaringC[playerid] = 0;//обнулить
В public OnPlayerSpawn добавить:
PHP код:
WaringC[playerid] = 0;//обнулить
ну и сама Анти +С:
В public OnPlayerKeyStateChange добавляем:
PHP код:
switch (GetPlayerWeapon (playerid))
{
case 24, 25, 33, 34, 27:
{
if(WaringC[playerid] != -1)
{
if ((newkeys == 132) || (newkeys == 4) || newkeys == 4) AntiCFired[playerid] = GetTickCount ();
if (((GetTickCount () - AntiCFired[playerid]) < 1000) && (newkeys == 2))
{
ApplyAnimation(playerid,"PED","getup_front",4.0,0,0,1,0,0);
if(WaringC[playerid] > 2)
{
SetPlayerHealth(playerid, 0);
WaringC[playerid] = -1;
SendClientMessage(playerid,-1,"Прекратите использовать +С");
return 0;
}
WaringC[playerid] ++;
}
}
}
}
Ну вот и все