nexiustailer / nex-ac Goto Github PK
View Code? Open in Web Editor NEWAnticheat system
Home Page: https://pawn.wiki/index.php?/topic/27641-nex-ac/
License: GNU Lesser General Public License v3.0
Anticheat system
Home Page: https://pawn.wiki/index.php?/topic/27641-nex-ac/
License: GNU Lesser General Public License v3.0
Reason: 49(27).
It started happening since 19.25,
It happens while players are driving.
It does it while driving fats (I think), and it does it for 10-20 seconds.
I will provide more information if I see more
Thank you,
rt-2
Could you do an anti-airbreak for those versions where the speed of the player always returns to 0.0
? Example on S0beit Slono Boyko when using AirBreak, GetPlayerVelocity returns to 0.0
v1.9.27
Hi,
C:\xampp\htdocs\lsmem\pawno\include\nex-ac.inc(3097) : warning 202: number of arguments does not match definition
C:\xampp\htdocs\lsmem\pawno\include\nex-ac.inc(3111) : error 025: function heading differs from prototype
with :
#include <a_samp>
#include <a_mysql>
#include <YSI\y_hooks>
#include
#include
#include
#include
#include
#include
how i can fix this ?
thanks
Hello all, when i try to spawn it show like that :
This is a picture : https://s13.postimg.org/t7czmax4n/sa-mp-012.png
nex-ac.inc(2683) : error 021: symbol already defined: "@yH_OnGameModeInit@024"
nex-ac.inc(3440) : error 021: symbol already defined: "@yH_OnPlayerUpdate@024"
nex-ac.inc(4506) : error 021: symbol already defined: "@yH_OnPlayerKeyStateChange@024"
There is no documentation about acSet, it is an array of 15, but I cannot know what is inside.
I need to work with [0]. [12] and [14] because they are part of the anti-interior hack, and the anti-interior hack is bugged.
But I would like to know what I am working with.
What is all the information stored in acSet please?
Thank you,
Привет, тут у тебя ошибочки, идет более 31 символа в названии, исправь в дальнейшем. =)
nex-ac.inc(5998) : warning 200: symbol "_ALS_OnPlayerEnterRaceCheckpoin" is truncated to 31 characters nex-ac.inc(6035) : warning 200: symbol "_ALS_OnPlayerLeaveRaceCheckpoin" is truncated to 31 characters nex-ac.inc(6076) : warning 200: symbol "_ALS_OnPlayerClickPlayerTextDra" is truncated to 31 characters nex-ac.inc(6117) : warning 200: symbol "_ALS_OnVehicleDamageStatusUpdat" is truncated to 31 characters nex-ac.inc(6202) : warning 200: symbol "_ALS_OnPlayerSelectDynamicObjec" is truncated to 31 characters
Hi,
Since I updated to 1.9.26 from 1.9.25, sometimes my players get kicked for "TP hack (on foot)" when connecting.
Here is some samples:
[17/07/2017 10:57:54] [LOGIN]: Spawning [1]saif_ibrahim(3) at position x:2348.164062, y:-1621.695678, z:12.640971, i:0 with skin 30
[17/07/2017 10:57:59] [Nex-AC debug] Distance: 900.133178, pos z: 12.640971
[17/07/2017 10:57:59] [Nex-AC] Suspicious player, ID 3. Reason code: 002 (2)
[17/07/2017 10:57:59] [NEXT-AC]: ac_OnCheatDetected(playerid:3, ip_address:, type:0, code:2) called.
[17/07/2017 10:57:59] [NAC]: Packet loss: 8.73; Tick Diff: 484/1000; Server rate:137
[17/07/2017 10:57:59] [ADMIN]: saif_ibrahim(3) have been kicked for "Teleport hack (onfoot) (ACV4: NA002)"
[17/07/2017 06:28:02] [LOGIN]: Spawning [0]Joao_Lopes(0) at position x:455.279724, y:1403.041137, z:1084.307983, i:2 with skin 24
[17/07/2017 06:28:03] [Nex-AC debug] Distance: 4509.151367, pos z: 1084.307983
[17/07/2017 06:28:03] [Nex-AC] Suspicious player, ID 0. Reason code: 002 (2)
[17/07/2017 06:28:03] [NEXT-AC]: ac_OnCheatDetected(playerid:0, ip_address:, type:0, code:2) called.
[17/07/2017 06:28:03] [NAC]: Packet loss: 2.19; Tick Diff: 107/1000; Server rate:173
[17/07/2017 06:28:03] [ADMIN]: Joao_Lopes(0) have been kicked for "Teleport hack (onfoot) (ACV4: NA002)"
[16/07/2017 19:36:12] [LOGIN]: Spawning [0]Joao_Lopes(2) at position x:2522.911865, y:-1498.821166, z:23.570447, i:0 with skin 24
[16/07/2017 19:36:13] [Nex-AC debug] Distance: 1027.552978, pos z: 23.570447
[16/07/2017 19:36:13] [Nex-AC] Suspicious player, ID 2. Reason code: 002 (2)
[16/07/2017 19:36:13] [NEXT-AC]: ac_OnCheatDetected(playerid:2, ip_address:, type:0, code:2) called.
[16/07/2017 19:36:13] [NAC]: Packet loss: 9.04; Tick Diff: 770/1000; Server rate:125
[16/07/2017 19:36:13] [ADMIN]: Joao_Lopes(2) have been kicked for "Teleport hack (onfoot) (ACV4: NA002)"
[16/07/2017 13:14:41] [LOGIN]: Spawning [0]Mind_Blaster(2) at position x:2475.700439, y:-1667.505371, z:13.066169, i:0 with skin 37
[16/07/2017 13:14:42] [Nex-AC debug] Distance: 855.106140, pos z: 13.322867
[16/07/2017 13:14:42] [Nex-AC] Suspicious player, ID 2. Reason code: 002 (2)
[16/07/2017 13:14:42] [NEXT-AC]: ac_OnCheatDetected(playerid:2, ip_address:, type:0, code:2) called.
[16/07/2017 13:14:42] [NAC]: Packet loss: 0.00; Tick Diff: 894/1000; Server rate:169
[16/07/2017 13:14:42] [ADMIN]: Mind_Blaster(2) have been kicked for "Teleport hack (onfoot) (ACV4: NA002)"
Sometimes, people cannot reconnect, it just keep and keep kicking them. One player said it happened when a player would connect at the same position than a vehicle, therefore teleporting him over the vehicle. But it happened to me once when I connected and I was not near a vehicle.
I tried to check the difference between the two version, but didn't find myself.
Thank you,
rt-2
In Nex-AC/src/v1.9/v1.9.22/r2/nex-ac.inc
,
The line 6424
if(ac_gpp > AC_MAX_PING)
Should be :
if(ac_gpp > AC_MAX_PING && ac_gpp != 65535)
Sometime on connection, the ping of a player may be 65535, so to avoid a false flag I added this condition.
This is documented on this page http://wiki.sa-mp.com/wiki/GetPlayerPing.
Thank you,
rt-2
Hi,
There are minor bug in OnPlayerWeaponShot hittype 2 at line 4229.
My MAX_PLAYERS setted to 150.
Log :
[00:56:48] [debug] Run time error 4: "Array index out of bounds"
[00:56:48] [debug] Accessing element at index 205 past array upper bound 149
[00:56:48] [debug] AMX backtrace:
[00:56:48] [debug] #0 000195dc in public OnPlayerWeaponShot (playerid=4, weaponid=24, hittype=2, hitid=205, Float:fX=-0.24609, Float:fY=-0.23706, Float:fZ=0.28811) at ...\pawno\include\nex-ac.inc:4229
Cand intru intr-un Dynamic Pickup primesc kick, cum rezolv asta
Античит очень слабо ловит читера при изменение гравитации, т.е читер может изменять гравитацию и прыгать высоко.
А так же не кикает если бежишь с увеличенной скоростью игры. Но если прыгнешь 1 раз то сразу кикает.
Hi,
I normally test my server with 2 computer at the same time, a laptop, and my desktop.
I obviously deactivated "40 Protection from the sandbox".
Once including Nex-AC, I started having problems when using more than one player. Notably, when I connect a character from computer 1, then I connect another character with computer 2, when I disconnect computer 2, both loses connection.
Thank you,
rt-2
Directory\pawno\include\nex-ac.inc(2690) : error 021: symbol already defined: "@yH_OnGameModeInit@002"
Directory\pawno\include\nex-ac.inc(2694) : error 021: symbol already defined: "@yH_OnGameModeInit@002"
Directory\pawno\include\nex-ac.inc(2741) : error 021: symbol already defined: "@yH_OnGameModeExit@002"
Directory\pawno\include\nex-ac.inc(2745) : error 021: symbol already defined: "@yH_OnGameModeExit@002"
Directory\pawno\include\nex-ac.inc(2778) : error 021: symbol already defined: "@yH_OnPlayerConnect@002"
Directory\pawno\include\nex-ac.inc(2782) : error 021: symbol already defined: "@yH_OnPlayerConnect@002"
Directory\pawno\include\nex-ac.inc(2884) : error 021: symbol already defined: "@yH_OnPlayerDisconnect@002"
Directory\pawno\include\nex-ac.inc(2888) : error 021: symbol already defined: "@yH_OnPlayerDisconnect@002"
The maximum player per vehicle is not adapted for the train wagon (model 570).
I wanted to fix it by myself but I can't understand the functioning of 'ac_MaxPassengers'
Thank you,
rt-2
Приветствую, можете добавить поддержку CreateDynamicVehicle (http://forum.sa-mp.com/showthread.php?t=580937) в античите, а то при каждом обновление переписывать античит не хочется.
Hi,
I get this kind of often I don,t know why :
[23/06/2017 23:19:57] [debug] Run time error 4: "Array index out of bounds"
[23/06/2017 23:19:57] [debug] AMX backtrace:
[23/06/2017 23:19:57] [debug] #0 00061050 in public ac_Timer (0) from SAarp.amx
Sorry for the lack of information.
Thank you,
rt-2
In Nex-AC/src/v1.9/v1.9.22/r2/nex-ac.inc
,
Starting at line 4508
if(ACInfo[playerid][acKicked]) return 0;
new ac_i = GetTickCount();
if(ACInfo[playerid][acACAllow][49])
{
if(ac_i < ACInfo[playerid][acCall][4] + ac_Mtfc[4][0]) return ac_FloodDetect(playerid, 4);
if(ac_i < ACInfo[playerid][acCall][27] + ac_Mtfc[27][0]) ac_FloodDetect(playerid, 27);
else ACInfo[playerid][acFloodCount][4] = ACInfo[playerid][acFloodCount][27] = 0;
}
ACInfo[playerid][acCall][27] = ACInfo[playerid][acCall][4] = ac_i;
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnPlayerClickTextDraw
return ac_OnPlayerClickTextDraw(playerid, clickedid);
#else
return 1;
#endif
Should be :
if(ACInfo[playerid][acKicked]) return 1;
new ac_i = GetTickCount();
if(ACInfo[playerid][acACAllow][49])
{
if(ac_i < ACInfo[playerid][acCall][4] + ac_Mtfc[4][0]) return ac_FloodDetect(playerid, 4);
if(ac_i < ACInfo[playerid][acCall][27] + ac_Mtfc[27][0]) ac_FloodDetect(playerid, 27);
else ACInfo[playerid][acFloodCount][4] = ACInfo[playerid][acFloodCount][27] = 0;
}
ACInfo[playerid][acCall][27] = ACInfo[playerid][acCall][4] = ac_i;
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnPlayerClickTextDraw
return ac_OnPlayerClickTextDraw(playerid, clickedid);
#else
return 0;
#endif
Default value for function OnPlayerClickTextDraw is 0 not 1.
Thank you,
rt-2
Код 49, если в лодке быстро садиться и вставать с водительского места.
#include <streamer>
#include <foreach>
#include <YSI\y_utils>
#include <YSI\y_va>
#include <YSI\y_timers>
#include <YSI\y_hooks>
#define FILTERSCRIPT
#include <nex-ac>
Hi. I use Nex-AС on my Stage RolePlay server with an online 200-300. Maybe I incorrectly connected something, but when I first started on the main server, I got a lot of false positives. I configured and made changes the anti-cheat to bring it to a more or less stable state. But until now some false positives are still available and the setting here will not help. I do not want to change the source code much, because it will cause problems with the update.
I can constantly provide detailed logs for false positives to help with the correction. It seems to me that the developer of this anticheat is Russian and that's why I propose to contact me on ВКонтакте (vk.com/kot_brain).
If not, I can create themes here, but it's not very convenient for me.
This anticheat not using y_hook when we use YSI 4.0
_inc_y_hooks
isn't working anymore for YSI 4.0 i do this simple test:
public OnGameModeInit()
{
#if defined _INC_y_hooks
print("y_hook used 0 ");
#endif
#if defined _inc_y_hooks
print("y_hook used 1 ");
#endif
return 1;
}
It only print y_hook used 0. so you need add _INC_y_hooks too if statement, and dont remove _inc_y_hook because it is still useful for YSI 3.0 ( most people still using it ).
Sorry for my bad grammar, i have no time for correct it, and sorry not create it in pull request section, i have no time to write it.
for make sure you can test it. ( using YSI : https://github.com/Misiur/YSI-Includes )
So for a few time I saw a lot of "[003] Teleport hack (in vehicle)" kicks.
Today I was with one of my bus driver doing a training a he got kicked while driving the bus normally.
Here is the debug prints:
[25/05/2017 18:03:38] [Nex-AC debug] Distance: 17.277877, old pos diff: 3.964201, vehicleid: 167
[25/05/2017 18:03:38] [Nex-AC] Suspicious player, ID 1. Reason code: 003 (2)
[25/05/2017 18:03:38] [NEXT-AC]: ac_OnCheatDetected(playerid:1, ip_address:, type:0, code:3) called.
I could give more prints, a lot of 'good players' are kicked a lot for that but those are unverified.
Thank you,
rt-2
Is it possible to extract Anti-Airbreak from this include? I just need him :(
How do I increase to a maximum of 2 accounts / ip and at 3rd to kick you
После использования PutPlayerInVehicle
В данном транспорте HP устанавливается на 0 и срабатывает естественно античит:
[Nex-AC debug] AC veh health: 0.000000, veh health: 1000.000000, vehicleid: ????, playerid: 0
Тестировалось на дефолтном grandlarc.pwn
UPD: работает не только с PutPlayerInVehicle, если сесть просто в машину - HP тоже на 0 ставит.
Если через пару секунд сесть в тоже самое авто, хп не изменяется.
P.S. Машины созданы через AddStaticVehicleEx
Video: https://youtu.be/TJsJ-FAinuU
In Nex-AC/src/v1.9/v1.9.22/r2/nex-ac.inc
,
Starting at line 6091
if(ACInfo[playerid][acKicked]) return 0;
new ac_i = GetTickCount();
if(ACInfo[playerid][acACAllow][49])
{
if(ac_i < ACInfo[playerid][acCall][23] + ac_Mtfc[23][0]) return ac_FloodDetect(playerid, 23);
if(ac_i < ACInfo[playerid][acCall][27] + ac_Mtfc[27][0]) ac_FloodDetect(playerid, 27);
else ACInfo[playerid][acFloodCount][23] = ACInfo[playerid][acFloodCount][27] = 0;
}
ACInfo[playerid][acCall][27] = ACInfo[playerid][acCall][23] = ac_i;
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnPlayerClickPlayerTextDraw
return ac_OnPlayerClickPlayerTextDraw(playerid, playertextid);
#else
return 1;
#endif
Should be :
if(ACInfo[playerid][acKicked]) return 1;
new ac_i = GetTickCount();
if(ACInfo[playerid][acACAllow][49])
{
if(ac_i < ACInfo[playerid][acCall][23] + ac_Mtfc[23][0]) return ac_FloodDetect(playerid, 23);
if(ac_i < ACInfo[playerid][acCall][27] + ac_Mtfc[27][0]) ac_FloodDetect(playerid, 27);
else ACInfo[playerid][acFloodCount][23] = ACInfo[playerid][acFloodCount][27] = 0;
}
ACInfo[playerid][acCall][27] = ACInfo[playerid][acCall][23] = ac_i;
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnPlayerClickPlayerTextDraw
return ac_OnPlayerClickPlayerTextDraw(playerid, playertextid);
#else
return 0;
#endif
Default value for function OnPlayerClickPlayerTextDraw is 0 not 1.
Thank you,
rt-2
Hello, I post question on SA-MP forum but no body replies :D never mind, I am using modular gamemode, in which I am using OnPlayerSpawn in separate module. But when I respawn after death I got kicked out for Ammo hack (infinity), I tried to include anticheat into module but no result, still same issue, so now I am asking is nex-ac working on modular gamemodes?
Hi, so I recently updated and got this error:
[09/11/2017 11:28:34] [connection] incoming connection: 96.22.69.173:62426 id: 1
[09/11/2017 11:28:36] [join] Yanick_Coulombe has joined the server (1:96.22.69.173)
[09/11/2017 11:28:36] [debug] Run time error 6: "Invalid instruction"
[09/11/2017 11:28:36] [debug] Unknown opcode 0x78000000 at address 0x00000005
[09/11/2017 11:28:36] [debug] AMX backtrace:
[09/11/2017 11:28:36] [debug] #0 00000000 in public OnPlayerConnect ()
with this gamemode, but it seems to only do the error when the second player connects:
#include <a_samp>
#include <YSI\y_hooks>
#include <nex-ac>
main() { }
Everything seems to work normally after that...
Thank you,
rt-2
Hi,
I have problem with SetPlayerPos. ac_SetPlayerPos is hooked great.
serverlog:
[12:23:30] 0, 2003.117797, 1015.194824, 33.007999
[12:23:30] [Nex-AC] Suspicious player, ID 0. Reason code: 000��
Positions are just debug if hook works.
ac_fpublic: ac_SetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
printf("%d, %f, %f, %f", playerid, x, y, z);
So it's hooked but I will be kicked after SetPlayerPos
Cheers, @NexiusTailer
In Nex-AC/src/v1.9/v1.9.22/r2/nex-ac.inc
,
Starting at line 3059
if(ACInfo[playerid][acKicked]) return 0;
ACInfo[playerid][acDeathRes] = true;
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnPlayerTakeDamage
return ac_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
#else
return 1;
#endif
Should be :
if(ACInfo[playerid][acKicked]) return 1;
ACInfo[playerid][acDeathRes] = true;
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnPlayerTakeDamage
return ac_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
#else
return 0;
#endif
Default value for function OnPlayerTakeDamage is 0 not 1.
Thank you,
rt-2
Вышел новый чит с JetPack-ом, затестил у себя на сервере, на версий античита 1.9.13, не кикает.
На этом видео всё показано: https://www.youtube.com/watch?v=jNwANBUAKNo
Hello, I made this gamemode to test:
//
// Nex-Ac Test Script #3 (GivePlayerMoney not working)
// by: rt-2
// date: 2017-05-06
//
//This script will fail to give you your money when spawning (using GivePlayerMoney)
//
// Main Libraries
#include <a_samp>
#include <crashdetect>
//Anticheat
#include <nex-ac>
public OnGameModeInit()
{
SetGameModeText("Test Script");
AddPlayerClass(random(100), 1757.00, -1946.00, 13.56, 360.00, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnPlayerSpawn(playerid)
{
GivePlayerMoney(playerid, 1337);
return 1;
}
main()
{
print("\n----------------------------------");
printf(" 'Nex-Ac Test Script' by rt-2 ");
print("----------------------------------\n");
}
And the player receive the money briefly, but then it goes away, unfortunately I do not have time to investigate this, as I am currently investigating a possible bug with tuning.
Tell me if you have the bug also?
Thank you,
rt-2
If you equip the jet-pack, then press the ENTER/EXIT button, the jet-pack drops on the ground, but the anti-cheat detects this as a 018.
Thank you,
rt-2
pawno\include\nex-ac.inc(227) : error 020: invalid symbol name ""
pawno\include\nex-ac.inc(227) : error 001: expected token: ";", but found "const"
pawno\include\nex-ac.inc(282) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(290) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(297) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(310) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(327) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(337) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(484) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(492) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(502) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(511) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(527) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(608) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(684) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(690) : error 010: invalid function or declaration
pawno\include\nex-ac.inc(887) : warning 219: local variable "ac_i" shadows a variable at a preceding level
pawno\include\nex-ac.inc(889) : error 017: undefined symbol "ac_wModel"
pawno\include\nex-ac.inc(889) : warning 215: expression has no effect
pawno\include\nex-ac.inc(889) : error 001: expected token: ";", but found "]"
pawno\include\nex-ac.inc(889) : error 029: invalid expression, assumed zero
pawno\include\nex-ac.inc(889) : fatal error 107: too many error messages on one line
В 1.9.13 такого не было
Before it's what must be placed (streamer) and what more?
Hi,
There's problem with anti ammo hack (detonator). When I have 50x "Satchel Charge" and I drop 5 bombs I get detonator - it's okay. But when I detonate the bombs I have still detonator because I have still 45x "Satchel Charge" but AC kick me for ammo hack (add) [detonator].
In simplicity: When I have still "Stachel" detonator doesn't remove after use.
Cheers
TO TEST:
next-ac_test-rt2.pwn:
//
// Nex-Ac Test Script #5(Anti-Invisible hack detected with a non conventionnal connection script)
// by: rt-2
// date: 2017-05-19
//
//This script will kick you if you
// connect to the server.
// Main Libraries
#include <a_samp>
#include <crashdetect>
#include <nex-ac>
#include <YSI\y_timers>
#include <SKY>
#include <weapon-config>
#include <YSF>
public OnGameModeInit()
{
SetGameModeText("Test Script");
return 1;
}
public OnPlayerConnect(playerid)
{
SetSpawnInfo(playerid, NO_TEAM, 252, 1757.00, -1946.00, 13.56, 0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
defer AnotherFunction(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid, 1757.00, -1946.00, 13.56);
return 1;
}
timer AnotherFunction[333](playerid)
{
TogglePlayerSpectating(playerid, 1);
SetCameraBehindPlayer(playerid);
InterpolateCameraPos(playerid, 2161.4900, -964.5700, 114.8100, 2161.4900, -964.5700, 114.8100, 1000, CAMERA_MOVE);
InterpolateCameraLookAt(playerid, 2160.6804, -965.1769, 114.6250, 2160.6804, -965.1769, 114.6250, 1000, CAMERA_MOVE);
return 1;
}
main()
{
print("\n----------------------------------");
printf(" 'Nex-Ac Test Script' by rt-2 ");
print("----------------------------------\n");
}
server.cfg:
echo Executing Server Config...
lanmode 0
rcon_password 1337
maxplayers 170
port 7778
hostname [SAARP] SA-MP 0.3 Test Server
plugins crashdetect SKY YSF
gamemode0 next-ac_test-rt2 1
filterscripts
announce 0
chatlogging 0
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 120
logtimeformat [%H:%M:%S]
language English
I understand that you don't want to guarantee compatibility with weapon-config, but is there a way I could modify something?
Thank you,
rt-2
Hi,
In my server I have a zombie script with many NPCs,
The AC started kicking players sometimes when they were hunting zombies.
I did my investigation, and I found that with a lot of NPCs near (from FCNPC), there was a very high chance of false positive for AirBreak.
I investigated more and the combination of around 100 NPC from FCNPC with MapAndreas, YSI and YSF is causing false positive.
I made this gamemode to help test, I tried to remove everything I could. I am not sure but I think if you remove one of the include it will not happen, but I am not sure, I tested for a long time already and I came up with this:
//
// Nex-Ac Test Script #1 (100 NPC cause player to be kicked for airbreak very easily)
// by: rt-2
// date: 2017-04-06
//
//This script will kick you for airbreak(#000) if
// you sprint for some time when all NPC are spawned
//
// Main Libraries
#include <a_samp>
#include <crashdetect>
//Anticheat
#include <nex-ac>
//NPCs
#include <mapandreas>
#include <FCNPC>
#include <YSI\y_master>
#include <YSF>
new npc_nb = 0;
forward CreateMyNPC();
public CreateMyNPC()
{
if(npc_nb < 120)
{
new name1[16];
format(name1, 16, "NPC_%i", npc_nb++);
FCNPC_Create(name1);
}
return 1;
}
public OnGameModeInit()
{
MapAndreas_Init(MAP_ANDREAS_MODE_FULL);
FCNPC_InitMapAndreas(MapAndreas_GetAddress());
SetGameModeText("Test Script");
AddPlayerClass(random(100), 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
SetTimer("CreateMyNPC", 7000, true);
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public FCNPC_OnCreate(npcid)
{
FCNPC_Spawn(npcid, random(100), 1958.3783, 1344.1572, 15.3746);
}
main()
{
print("\n----------------------------------");
printf(" 'Nex-Ac Test Script' by rt-2 ");
print("----------------------------------\n");
}
In this gamemode, when all the NPC will be spawned, you wont be able to run around for more than a couple minutes, sometime seconds, without being kicked for AirBreak (code #00). Also I think bunny hoping will help to get kicked but I'm not sure.
Here is link to the includes needed, they are all updated in my test:
https://github.com/ziggi/FCNPC
http://forum.sa-mp.com/showpost.php?p=3130004&postcount=153
https://github.com/Misiur/YSI-Includes
I know the problem might be in one of those includes, and it is probably, but you are the only one who will be able to tell, all I know is that with this combination (that is needed for my server script), we will get kicked for AirBreak when near a large number of NPCs.
I tested this with 2 server, my main one on the internet, and also I tested from my own computer and connected to myself.
Sometime it can take 5-10minutes max to get kicked, sometimes 5-10 seconds, but you will always get kicked at some point if you run around in short streaming distance of the NPCs for an extended period of time.
Thank you,
rt-2
Hi,
I find bug. When someone is in vehicle and I teleport his somewhere without vehicle he will be kicked. Reason "#3 Anti-teleport hack (in vehicle)"
Solution: in ac_SetPlayerPos add check if player is in vehicle or just reset variable with saved vehicleid.
Cheers @NexiusTailer
pawno\include\nex-ac.inc(4797) : warning 201: redefinition of constant/macro (symbol "OnPlayerPickUpDynamicPickup")
How to solve this problem, please help me.
I solved all errors and warnings but this i can not.
Thank you if you can help me :) <3
Sometiems when you drive thru a looping, you get kicked because of fly hacking, i'd consider that a bug ;D
Why don't you use git versioning for nex-ac.inc file?
I think it would be better, to have one file, and creating releases in https://github.com/NexiusTailer/Nex-AC/releases.
With that, users of Nex-AC will be able to see changes in code on the github page.
https://github.com/NexiusTailer/Nex-AC/blob/master/src/v1.8/v1.8.7/nex-ac.inc
This code is bugged.
sscanf(ac_string, "i'//'i", ac_j, ac_i);
It gives error.
sscanf error: System not initialised.
I am using sscanf2 2.8.1
http://forum.sa-mp.com/showthread.php?t=570927
How can we solve it?
I'm using weapon-config include. And it has it's own health system. So Nex-AC is kicking me for health hack. How can i fix this or disable health hack protection?
(I already tried setting 0 to 12. and 13. options in nex-ac_settings.cfg. But it didn't work)
Hi,
I think anticheat for "Keep trailer attached" should be useful.
BTW How about compatibility with WeaponConfig by Slice? http://forum.sa-mp.com/showthread.php?t=563387
Cheers @NexiusTailer
In Nex-AC/src/v1.9/v1.9.22/r2/nex-ac.inc
,
Starting at line 3122
if(ACInfo[playerid][acKicked]) return 0;
new ac_i = GetTickCount();
if(ACInfo[playerid][acACAllow][49])
{
if(ac_i < ACInfo[playerid][acCall][0] + ac_Mtfc[0][0]) ac_FloodDetect(playerid, 0);
else if(ac_i < ACInfo[playerid][acCall][27] + ac_Mtfc[27][0]) ac_FloodDetect(playerid, 27);
else ACInfo[playerid][acFloodCount][0] = ACInfo[playerid][acFloodCount][27] = 0;
}
if(ACInfo[playerid][acACAllow][39] && dialogid != ACInfo[playerid][acDialog])
{
#if defined DEBUG
printf("[Nex-AC debug] AC dialog: %d, dialogid: %d", ACInfo[playerid][acDialog], dialogid);
#endif
#if defined OnCheatDetected
ac_KickWithCode(playerid, "", 0, 39);
#else
return ac_KickWithCode(playerid, "", 0, 39);
#endif
}
ACInfo[playerid][acDialog] = -1;
ACInfo[playerid][acCall][27] = ACInfo[playerid][acCall][0] = ac_i;
if(ACInfo[playerid][acACAllow][45])
{
for(ac_i = strlen(inputtext) - 1; ac_i > -1; --ac_i)
{
if(inputtext[ac_i] == '%') strdel(inputtext, ac_i, ac_i + 1);
}
}
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnDialogResponse
return ac_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
#else
return 1;
#endif
Should be :
if(ACInfo[playerid][acKicked]) return 1;
new ac_i = GetTickCount();
if(ACInfo[playerid][acACAllow][49])
{
if(ac_i < ACInfo[playerid][acCall][0] + ac_Mtfc[0][0]) ac_FloodDetect(playerid, 0);
else if(ac_i < ACInfo[playerid][acCall][27] + ac_Mtfc[27][0]) ac_FloodDetect(playerid, 27);
else ACInfo[playerid][acFloodCount][0] = ACInfo[playerid][acFloodCount][27] = 0;
}
if(ACInfo[playerid][acACAllow][39] && dialogid != ACInfo[playerid][acDialog])
{
#if defined DEBUG
printf("[Nex-AC debug] AC dialog: %d, dialogid: %d", ACInfo[playerid][acDialog], dialogid);
#endif
#if defined OnCheatDetected
ac_KickWithCode(playerid, "", 0, 39);
#else
return ac_KickWithCode(playerid, "", 0, 39);
#endif
}
ACInfo[playerid][acDialog] = -1;
ACInfo[playerid][acCall][27] = ACInfo[playerid][acCall][0] = ac_i;
if(ACInfo[playerid][acACAllow][45])
{
for(ac_i = strlen(inputtext) - 1; ac_i > -1; --ac_i)
{
if(inputtext[ac_i] == '%') strdel(inputtext, ac_i, ac_i + 1);
}
}
#if !defined _inc_y_hooks && !defined _INC_y_hooks\
&& defined ac_OnDialogResponse
return ac_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
#else
return 0;
#endif
Default value for function OnDialogResponse is 0 not 1.
Thank you,
rt-2
F:\Works\Serevr\pawn-editor\include\nex-ac.inc(2332) : warning 201: redefinition of constant/macro (symbol "RepairVehicle")
F:\Works\Serevr\pawn-editor\include\nex-ac.inc(4660) : warning 202: number of arguments does not match definition
F:\Works\Serevr\pawn-editor\include\nex-ac.inc(4674) : error 025: function heading differs from prototype
F:\Works\Serevr\pawn-editor\include\nex-ac.inc(6029) : warning 201: redefinition of constant/macro (symbol "OnVehicleDamageStatusUpdate")
these are the errors coming up
i have took the 1.9.27 version nex-ac
...... deleted
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.