YellowFace1
Компетентный
Сразу к делу.
Добавляем переменные в начале мода:
Добавляем в таймер с 3х секундным обновлением это:
Добавляем в паблик "OnPlayerWeaponShot":
Далее в паблик "OnPlayerTakeDamage":
Заменяем стандартные функции "SetPlayerHealth" и "SetPlayerArmour" на эти:
Строго не судите, старался для вас)
Если есть где-то ошибки или великая нагрузка, то пишите в комментарии, разберёмся!
Добавляем переменные в начале мода:
PHP:
new TakeDamageTime[MAX_PLAYERS];
new ShotsTotal[MAX_PLAYERS];
new CheatGM[MAX_PLAYERS];
new OldGun[MAX_PLAYERS], Float: OldHP[MAX_PLAYERS];
new Float:pHealth[MAX_PLAYERS];
new Float:pArmor[MAX_PLAYERS];
new shotTime[MAX_PLAYERS];
PHP:
CheatGM[playerid]=0;
PHP:
if(hittype == 1)
{
if(OldGun[playerid] != weaponid) { OldGun[playerid]=weaponid; ShotsTotal[playerid]=0; }
if(GetTickCount() - shotTime[playerid] <= 120 || InAFK(hitid) || GetTickCount() - shotTime[playerid] >= 3000) { ShotsTotal[playerid]=0; } //InAFK - ваша проверка на АФК
new Float: x, Float: y, Float: z; GetPlayerPos(hitid,x,y,z);
if((weaponid == 25 || weaponid == 31) && GetPlayerDistanceFromPoint(playerid,x,y,z) >= 35) { ShotsTotal[playerid]=0; }
if((weaponid == 24 || weaponid == 23) && GetPlayerDistanceFromPoint(playerid,x,y,z) >= 30) { ShotsTotal[playerid]=0; }
if(weaponid == 29 && GetPlayerDistanceFromPoint(playerid,x,y,z) >= 40) { ShotsTotal[playerid]=0; }
if(weaponid == 30 && GetPlayerDistanceFromPoint(playerid,x,y,z) >= 55) { ShotsTotal[playerid]=0; }
if(weaponid == 33 && GetPlayerDistanceFromPoint(playerid,x,y,z) >= 90) { ShotsTotal[playerid]=0; }
switch(OldGun[playerid])
{
case 23,24,25,33: { if(ShotsTotal[playerid] == 3) { KickEx(hitid); } }
case 31,30,29: { if(ShotsTotal[playerid] == 5) { KickEx(hitid); } }
}
ShotsTotal[playerid]++;
}
shotTime[playerid] = GetTickCount();
PHP:
if(issuerid == INVALID_PLAYER_ID) { pHealth[playerid]-=amount; }
else
{
ShotsTotal[issuerid] = 0;
if(pArmor[playerid] > 0)
{
if(pArmor[playerid]-amount <= 0) { SetPlayerArmourAC(playerid,0.0); }
else { SetPlayerArmourAC(playerid,pArmor[playerid]-amount); }
}
else
{
new Float: Health; GetPlayerHealth(playerid, Health);
if(OldHP[playerid] == Health && GetTickCount() - TakeDamageTime[playerid] > 120) { CheatGM[playerid]++; if(CheatGM[playerid]==2) { KickEx(playerid); } }
pHealth[playerid]-=amount; OldHP[playerid]=Health; TakeDamageTime[playerid]=GetTickCount();
}
}
PHP:
stock SetPlayerHealthAC(playerid, Float: amount) { pHealth[playerid]=amount; return SetPlayerHealth(playerid,amount); }
stock SetPlayerArmourAC(playerid, Float: Arm) { pArmor[playerid]=Arm; return SetPlayerArmour(playerid, Arm); }
Если есть где-то ошибки или великая нагрузка, то пишите в комментарии, разберёмся!
Последнее редактирование:
