محل تبلیغات شما
پچ های Anti-cheat Southclaw's و Pottus

تکه های ضد تقلب


هدف، واقعگرایانه: 
Southclaw و من تصمیم گرفتیم که یک منبع از تکه های ضد هک را داشته باشیم که می تواند به راحتی به اسکریپت شما متصل شود. هر پچ بعضی از دستورالعمل های اصلی برای پیاده سازی را دنبال می کند، و همچنین توصیف تقلب هایی که پچ ها مانع آن می شوند. لطفا توجه داشته باشید که اینها به عنوان یک سیستم ضد تقلب طراحی نشده است که به یک سیستم کامل بر اساس یک فرد متکی است و اغلب به طور مستقیم باید به gamemode متصل شود؛ این خود به جای آن این تکه ها به منظور ساخت سیستم ضد تقلب شما با ارائه وسیله ای برای اجرای سریع. 

دستورالعمل: 
- پچ ها باید قبل از YSI طراحی شوند 
- پچ ها تنها حاوی ALS هستند 
- پچ ها دارای یک فراخوانی با پیشوند زیر OnAntiCheat . () ex OnAntiCheatAutoAim (playerid) 
- پچ ها یک توضیح را در رابطه با انتی سایتی خواهند داشت 
- پچ ها می توانند y_iterate را استفاده کنند 

__________________________________________________ ________________________________________________

پچ ها
__________________________________________________ ________________________________________________


نام: Autobullet 
نوع: انیمیشن / اسلحه بهره برداری 
توضیحات: تغییر رفتار سلاح راه رفتن اجازه می دهد که آنها را مانند سلاح های اجرا شده استفاده می شود و همچنین انیمیشن های مجدد بارگذاری می شود. 
روش تشخیص: یک محدوده سرعت وجود دارد که در آن این سوءاستفاده اتفاق می افتد اما با این وجود می توان با استفاده از اشکال اسلایدشده در برخی شرایط با سرعت مشابه دست پیدا کرد. اتفاق نمی افتد. بازیکنانی که 3 تخفیف دریافت می کنند در InAntiCheatAutoBullet () نامیده می شوند. 
Callback: Public OnAntiCheatAutoBullet (پخش، سلاح) 

پیاده روی کد:
// تشخیص سوءاستفاده از Antiautobullet توسط [uL] Pottus
#define MAX_AUTOBULLET_INFRACTIONS 3
#define AUTOBULLET_RESET_DELAY 30

استاتیک AutoBulletInfractions [ MAX_PLAYERS ] ؛
استاتیک LastInfractionTime [ MAX_PLAYERS ] ؛

به جلو OnAntiCheatAutoBullet ( playerid، weaponid ) ؛

عمومی OnPlayerWeaponShot ( playerid، weaponid، hittype، hitid، float : fX، Float : fY، Float : fZ )
{
اگر ( ! IsPlayerInAnyVehicle ( playerid ) )
{
سوئیچ ( سلاح )
{
مورد 27 ، 23 ، 25 ، 29 ، 30 ، 31 ، 33 ، 24 ، 38 :
{
اگر ( CheckSpeed ( playerid ) )
{
اگر ( gettime ( ) - LastInfractionTime [ playerid ] > = AUTOBULLET_RESET_DELAY ) AutoBulletInfractions [ playerid ] = 1 ؛
دیگر AutoBulletInfractions [ playerid ] ++ ؛
LastInfractionTime [ playerid ] = gettime ( ) ؛

اگر ( AutoBulletInfractions [ playerid ] == MAX_AUTOBULLET_INFRACTIONS )
{
AutoBulletInfractions [ playerid ] = 0 ؛
CallLocalFunction ( "OnAntiCheatAutoBullet" ، "ii" ، playerid، weaponid ) ؛
بازگشت 0 ؛
}
}
}
}
}

اگر ( funcidx ( "ACAutoB_OnPlayerWeaponShot" ) = - 1 )
{
بازگشت CallLocalFunction ( "ACAutoB_OnPlayerWeaponShot" ، "iiiifff" ، playerid، weaponid، hittype، hitid، fX، fY، fZ ) ؛
}
بازگشت 1 ؛
}

#if تعریف _ALS_OnPlayerWeaponShot
#undef OnPlayerWeaponShot
#else
#define _ALS_OnPlayerWeaponShot
#endif
#define OnPlayerWeaponShot ACAutoB_OnPlayerWeaponShot

به جلو ACAutoB_OnPlayerWeaponShot ( playerid، weaponid، hittype، hitid، Float : fX، Float : fY، Float : fZ ) ؛

عمومی OnPlayerDisconnect ( playerid، reason )
{
AutoBulletInfractions [ playerid ] = 0 ؛

اگر ( funcidx ( "ACAutoB_OnPlayerDisconnect" ) = - 1 )
{
بازگشت CallLocalFunction ( "ACAutoB_OnPlayerDisconnect" ، "ii" ، playerid، دلیل ) ؛
}
بازگشت 1 ؛
}

#if تعریف _ALS_OnPlayerDisconnect
#undef OnPlayerDisconnect
#else
#define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect ACAutoB_OnPlayerDisconnect

جلو ACAutoB_OnPlayerDisconnect ( playerid، reason ) ؛


CheckSpeed استاتیک ( پخش کننده )
{
کلید های جدید ، ud، lr؛
GetPlayerKeys ( playerid، Keys، ud، lr ) ؛

اگر ( ud == KEY_UP && lr ! = KEY_LEFT && lr ! = KEY_RIGHT )
{
شناور جدید : سرعت [ 3 ] ؛
GetPlayerVelocity ( playerid، Velocity [ 0 ] ، Velocity [ 1 ] ، Velocity [ 2 ] ) ؛
سرعت [ 0 ] = floatsqroot ( سرعت ( 0 ) * سرعت [ 0 ] ) + ( سرعت [ 1 ] * سرعت [ 1 ] ) + ( سرعت [ 2 ] * سرعت [ 2 ] ) ) ؛
اگر ( سرعت [ 0 ] > = 0.11 و & سرعت [ 0 ] <= 0.13 ) بازگشت 1 ؛
}
بازگشت 0 ؛
}

نام: سوء استفاده از اتصال 
نوع: سرور سوء استفاده 
توضیحات: هنگامی که یک بازیکن در حال حاضر متصل است، در 0.3x امکان اتصال به سرور وجود دارد. این باعث می شود که نام بازیکن به نام جعلی تغییر شود. سرورهای غیرقانونی ممکن است به طور بالقوه حساب های پخش شده را دوباره رونویسی کنند. در حال حاضر ناشناخته است اگر این سوءاستفاده در 0.3z وجود داشته باشد، اما فرض بر این است که هنوز هم می تواند به طور بالقوه رخ دهد در هر صورت این پچ فراهم می کند حفاظت از جلوگیری از OnPlayerConnect () از تماس با بقیه از اسکریپت. مهم است اطمینان حاصل کنید که این قبل از هر چیز دیگر شامل آن استفاده از OnPlayerConnect !!!! 
روش تشخیص: هنگامی که بازیکن یک متغیر را متصل می کند تنظیم شده است که آنها متصل هستند، اگر اتصال دیگری اتفاق می افتد در همان ID در حالی که آنها هنوز هم متصل است، این محرمانه محسوب می شود. 
Callback: عمومی OnAntiCheatPlayerSpoof (پخش کننده) 
ویرایش - من این را تایید کرده ام که هنوز ممکن است. 


پیاده روی کد:
// پچ ضد جعل هویت توسط [uL] Pottus

OnAntiCheatPlayerSpoof رو به جلو ( playerid ) ؛

استاتیک بول : PlayerConnected [ MAX_PLAYERS ] ؛
PlayerNames استاتیک [ MAX_PLAYERS ] [ MAX_PLAYER_NAME ] ؛

عمومی OnPlayerConnect ( پخش کننده )
{
// کاربر در حال حاضر متصل به تقلب شناسایی شده است
اگر ( PlayerConnected [ playerid ] )
{
SetPlayerName ( playerid، PlayerNames [ playerid ] ) ؛
CallLocalFunction ( "OnAntiCheatPlayerSpoof" ، "من" ، playerid ) ؛
بازگشت 1 ؛
}
چیز دیگری
{
GetPlayerName ( playerid، PlayerNames [ playerid ] ، MAX_PLAYER_NAME ) ؛
PlayerConnected [ playerid ] = درست است؛
}

اگر ( funcidx ( "AntiSpoof_OnPlayerConnect" ) = - 1 )
{
بازگشت callLocalFunction ( "AntiSpoof_OnPlayerConnect" ، "i" ، playerid ) ؛
}
بازگشت 1 ؛
}

عمومی OnPlayerDisconnect ( playerid، reason )
{
PlayerConnected [ playerid ] = false؛

اگر ( funcidx ( "AntiSpoof_OnPlayerDisconnect" ) ! = - 1 )
{
بازگشت CallLocalFunction ( "AntiSpoof_OnPlayerDisconnect" ، "ii" ، playerid، دلیل ) ؛
}
بازگشت 1 ؛
}


#if _ALS_OnPlayerConnect را تعریف کرد
#undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect AntiSpoof_OnPlayerConnect

جلو AntiSpoof_OnPlayerConnect ( playerid ) ؛

#if تعریف _ALS_OnPlayerDisconnect
#undef OnPlayerDisconnect
#else
#define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect AntiSpoof_OnPlayerDisconnect

جلو AntiSpoof_OnPlayerDisconnect ( playerid، reason ) ؛

نام: جعلی اتصال NPC 
نوع: سرور سوء استفاده 
توضیحات: این بسیار شبیه به سوء استفاده اتصال است و یک مشکل در 0.3x بود، فرض می شود که هنوز در نسخه جدید SAMP امکان پذیر است. این نتیجه اتصال NPC جعلی به سرور خواهد بود. مهم است اطمینان حاصل کنید که این قبل از هر چیز دیگر شامل آن استفاده از OnPlayerConnect !!!! 
روش تشخیص: تمام اتصالات NPC واقعی تنها در IP ممکن است رخ دهد: 127.0.0.1 اگر IP متفاوت باشد پس یک اتصال NPC جعلی است 
Callback: Public OnAntiCheatNPCSpoof (پخش کننده)

پیاده روی کد:
// ضد NPC جعلی توسط [uL] Pottus

OnAntiCheatNPCSpoof رو به جلو ( playerid ) ؛

عمومی OnPlayerConnect ( پخش کننده )
{
اگر ( IsPlayerNPC ( playerid ) )
{
ip جدید [ 16 ] ؛
GetPlayerIp ( playerid، ip، sizeof ( ip ) ) ؛
اگر ( ! strcmp ( ip، "127.0.0.1" ) )
{
نام جدید [ MAX_PLAYER_NAME ] ؛
فرمت ( name، sizeof ( نام ) ، "٪ i" ، gettime ( ) ) ؛
SetPlayerName ( پخش کننده، نام ) ؛
CallLocalFunction ( "OnAntiCheatNPCSpoof" ، "من" ، playerid ) ؛
بازگشت 1 ؛
}
}
اگر ( funcidx ( AntiNPC_OnPlayerConnect ) ! = - 1 )
{
بازگشت CallLocalFunction ( "AntiNPC_OnPlayerConnect" ، "من" ، playerid ) ؛
}
بازگشت 1 ؛
}

#if _ALS_OnPlayerConnect را تعریف کرد
#undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect AntiNPC_OnPlayerConnect

جلو AntiNPC_OnPlayerConnect ( playerid ) ؛

نام: لا ترول 
نوع: خودرو تقلب 
توضیحات: این تقلب به نظر می رسد بسته های جعلی را به سرور در سریعترین زمان با کپی موقعیت وسیله مورد نظر ارسال می کند که نتیجتا تأثیر نوع تاخیر است. 
Callback: عمومی OnAntiCheatLagTroll (پخش کننده) 

پیاده روی کد:
#define MAX_VEHICLE_ID_CHANGES 5

Static LastVehicleID [ MAX_PLAYERS ] ؛
VehicleIDChanges ایستا [ MAX_PLAYERS ] ؛
VehicleIDChangeTime ایستا [ MAX_PLAYERS ] ؛

جلو OnAntiCheatLagTroll ( playerid ) ؛

عمومی OnPlayerUpdate ( پخش کننده )
{
جدید vid = GetPlayerVehicleID ( playerid ) ؛
اگر ( vid > 0 )
{
اگر ( vid ! = LastVehicleID [ playerid ] )
{
اگر ( GetTickCount ( ) - VehicleIDChangeTime [ playerid ] < 5000 )
{
VehicleIDChanges [ playerid ] ++ ؛
اگر ( VehicleIDChanges [ playerid ] > MAX_VEHICLE_ID_CHANGES )
{
CallLocalFunction ( "OnAntiCheatLagTroll" ، "من" ، پخش کننده ) ؛
بازگشت 0 ؛
}
}
دیگر VehicleIDChanges [ playerid ] = 1 ؛
}
LastVehicleID [ playerid ] = vid؛
VehicleIDChangeTime [ playerid ] = GetTickCount ( ) ؛
}

اگر ( funcidx ( AntiLT_OnPlayerUpdate ) ! = - 1 )
{
بازگشت CallLocalFunction ( "AntiLT_OnPlayerUpdate" ، "i" ، playerid ) ؛
}
بازگشت 1 ؛
}

#if تعریف _ALS_OnPlayerUpdate
#undef OnPlayerUpdate
#else
#define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate AntiLT_OnPlayerUpdate

جلو AntiLT_OnPlayerUpdate ( playerid ) ؛

مرجع سمپ جی تی آی سن اندریاس آنلاین

مشخصات

تبلیغات

محل تبلیغات شما

آخرین مطالب این وبلاگ

آخرین ارسال ها

محل تبلیغات شما محل تبلیغات شما

برترین جستجو ها

آخرین جستجو ها