Античит на оружие и патроны

Статус
В этой теме нельзя размещать новые ответы.

gcode

нестандартное звание звание звание звание звани...
Автор темы
Друг
789
357
Дошли руки написать действительно нормальный античит на оружие B)
Ловит все виды читов на оружие. (Вплоть до dgun ^^ )

Создаём переменные

PHP:
new bool:weapcheat[MAX_PLAYERS];
new WeaponInfo[MAX_PLAYERS][13];
new AmmoInfo[MAX_PLAYERS][13];
new pWeaponInfo[MAX_PLAYERS][13];
new pAmmoInfo[MAX_PLAYERS][13];

В ваш любимый таймер (у меня 1 раз в сек) либо в OnPlayerUpdate вставляем такой код

PHP:
for (new i = 1; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, pWeaponInfo[playerid][i], pAmmoInfo[playerid][i]);
if (!(pWeaponInfo[playerid][i] == WeaponInfo[playerid][i]))
{
SendClientMessage(playerid, 0xFF8BABFF, "[CheatHere]: {EAEAEA}Обнаружен чит на {ff8bab}оружие{EAEAEA}.");
weapcheat[playerid] = true;
break;
}
if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid]) && (pAmmoInfo[playerid] == 0))
{
SetTimerEx("dgun",1000,false,playerid,GetPlayerWeapon(playerid),i);
}
if (pAmmoInfo[playerid][i] > AmmoInfo[playerid][i])
{
SendClientMessage(playerid, 0xFF8BABFF, "[CheatHere]: {EAEAEA}Обнаружен чит на {ff8bab}патроны{EAEAEA}.");
weapcheat[playerid] = true;
break;
} else {
AmmoInfo[playerid][i] = pAmmoInfo[playerid][i];
}
}
if (weapcheat[playerid])
{
weapcheat[playerid] = false;
Kick(playerid);
}

Все GivePlayerWeapon заменяем на GiveAntiWeapon, а ResetPlayerWeapon на ResetAnti.
А также добавляем паблик и стоки

PHP:
public dgun(playerid,weap,cntr)
{
GetPlayerWeaponData(playerid, cntr, pWeaponInfo[playerid][cntr], pAmmoInfo[playerid][cntr]);
if ((GetPlayerWeapon(playerid) == weap) && (pAmmoInfo[playerid][cntr] == 0))
{
SendClientMessage(playerid, 0xFF8BABFF, "[CheatHere]: {EAEAEA}Обнаружен чит на {ff8bab}оружие{EAEAEA}.");
weapcheat[playerid] = true;
}
}
 
stock GiveAntiWeapon(playerid,weapid,ammo)
{
new slot;
slot = GetWeaponSlot(weapid);
WeaponInfo[playerid][slot] = weapid;
AmmoInfo[playerid][slot] = ammo;
GivePlayerWeapon(playerid,weapid,ammo);
return;
}
 
stock ResetAnti(playerid)
{
ResetPlayerWeapon(playerid);
for (new i = 1; i < 13; i++)
{
WeaponInfo[playerid][i] = 0;
AmmoInfo[playerid][i] = 0;
}
return;
}
 
stock GetWeaponSlot(weaponid)
{
new slot;
switch(weaponid)
{
case 0,1: slot = 0;
case 2 .. 9: slot = 1;
case 10 .. 15: slot = 10;
case 16 .. 18, 39: slot = 8;
case 22 .. 24: slot =2;
case 25 .. 27: slot = 3;
case 28, 29, 32: slot = 4;
case 30, 31: slot = 5;
case 33, 34: slot = 6;
case 35 .. 38: slot = 7;
case 40: slot = 12;
case 41 .. 43: slot = 9;
case 44 .. 46: slot = 11;
}
return slot;
}
 
  • Нравится
Реакции: Gabriel__

gcode

нестандартное звание звание звание звание звани...
Автор темы
Друг
789
357
Переделал, теперь ловит абсолютно все виды читов на оружие :)
 

Vitalkakr4

Новичок
9
0
Переделал, теперь ловит абсолютно все виды читов на оружие :)

Выдает ошибки
Код:
(11906) : error 001: expected token: ")", but found "-identifier-"
(11906) : error 017: undefined symbol "AND"
(11906) : error 029: invalid expression, assumed zero
(11906) : fatal error 107: too many error messages on one line
Вот строчка
Код:
 if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid][i]) AND (pAmmoInfo[playerid][i] == 0))
 

gcode

нестандартное звание звание звание звание звани...
Автор темы
Друг
789
357
Выдает ошибки
Код:
(11906) : error 001: expected token: ")", but found "-identifier-"
(11906) : error 017: undefined symbol "AND"
(11906) : error 029: invalid expression, assumed zero
(11906) : fatal error 107: too many error messages on one line
Вот строчка
Код:
 if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid][i]) AND (pAmmoInfo[playerid][i] == 0))
if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid]) && (pAmmoInfo[playerid] == 0))
 

Vitalkakr4

Новичок
9
0
if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid]) && (pAmmoInfo[playerid] == 0))

Код:
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(3140) : error 033: array must be indexed (variable "pWeaponInfo")
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(3142) : error 035: argument type mismatch (argument 4)
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(5094) : warning 235: public function lacks forward declaration (symbol "dgun")
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(5126) : error 017: undefined symbol "ResetPlayerWeapon"
Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase
 
 
3 Errors.
Код:
Строчка 3140
if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid]) && (pAmmoInfo[playerid] == 0))
 
Строчка 3142
SetTimerEx("dgun",1000,false,playerid,GetPlayerWeapon(playerid),i);
 
Строчка 5094
ResetPlayerWeapon(playerid);
 
И варнинг
public dgun(playerid,weap,cntr)
 

kaZax

samp.work
Проверенный
150
23
Код:
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(3140) : error 033: array must be indexed (variable "pWeaponInfo")
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(3142) : error 035: argument type mismatch (argument 4)
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(5094) : warning 235: public function lacks forward declaration (symbol "dgun")
C:\Users\³òàë³ê\Desktop\DM Server 0.3z\1\gamemodes\dm.pwn(5126) : error 017: undefined symbol "ResetPlayerWeapon"
Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase
 
 
3 Errors.
Код:
Строчка 3140
if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid]) && (pAmmoInfo[playerid] == 0))
 
Строчка 3142
SetTimerEx("dgun",1000,false,playerid,GetPlayerWeapon(playerid),i);
 
Строчка 5094
ResetPlayerWeapon(playerid);
 
И варнинг
public dgun(playerid,weap,cntr)
PHP:
if ((GetPlayerWeapon(playerid) == pWeaponInfo[playerid][I][I]) && (pAmmoInfo[playerid][I] == 0))// замена[/I][/I][/I]
 
ResetPlayerWeapons(playerid);// замена
 
forward dgun(playerid,weap,cntr);//в начало мода
 

F0X

Новичок
19
0
Извеняюсь конечно,я новичек,Куда его бросать подскажите?
 

Maddy

Известный
35
11
Важная штука
Код:
if(pAmmoInfo[playerid][i] < 0 ) Kick(playerid);
if(pWeaponInfo[playerid][0] > 0) Kick(playerid);
 

AlexMr

Новичок
1
0
error 035: argument type mismatch (argument 4)

SetTimerEx("dgun",1000,false,playerid,GetPlayerWeapon(playerid),i);
 

0pc0d3R

Потрачен
550
270
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Статус
В этой теме нельзя размещать новые ответы.