Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #if defined _ANTIBUG_INCLUDED
- #endinput
- #endif
- #define _ANTIBUG_INCLUDED
- #if !defined PRESSED
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- #endif
- static const magazines[] = {34, 17, 7, 1, 4, 7, 100, 30, 30, 50, 100};
- new
- ANTIBUG_g_shots[MAX_PLAYERS][13],
- ANTIBUG_g_muni[MAX_PLAYERS][13],
- ANTIBUG_g_lastCrouch[MAX_PLAYERS],
- oldw[MAX_PLAYERS]
- ;
- stock ANTIBUG_GivePlayerWeapon(playerid, weaponid, ammo)
- {
- if(22 <= weaponid <= 32)
- {
- new stockage[2][13];
- for(new s = 0; s < 13; s++)
- {
- GetPlayerWeaponData(playerid, s, stockage[0][s], stockage[1][s]);
- if(stockage[0][s] == weaponid) ANTIBUG_g_muni[playerid][weaponid-22] += ammo, break;
- }
- ANTIBUG_g_muni[playerid][weaponid-22] = ammo;
- }
- GivePlayerWeapon(playerid, weaponid, ammo);
- return 1;
- }
- #if defined _ALS_GivePlayerWeapon
- #undef GivePlayerWeapon
- #else
- #define _ALS_GivePlayerWeapon
- #endif
- #define GivePlayerWeapon ANTIBUG_GivePlayerWeapon
- stock ANTIBUG_ResetPlayerWeapons(playerid)
- {
- for(new s = 0; s < 13; s++) ANTIBUG_g_muni[playerid][s] = 0, ANTIBUG_g_shots[playerid][s] = 0;
- ResetPlayerWeapons(playerid);
- return 1;
- }
- #if defined _ALS_ResetPlayerWeapons
- #undef ResetPlayerWeapons
- #else
- #define _ALS_ResetPlayerWeapons
- #endif
- #define ResetPlayerWeapons ANTIBUG_ResetPlayerWeapons
- stock ANTIBUG_SetPlayerAmmo(playerid, weaponslot, ammo)
- {
- new weaponid = GetWeaponBySlot(playerid, weaponslot);
- if(22 <= weaponid <= 32) ANTIBUG_g_muni[playerid][weaponid-22] = ammo;
- SetPlayerAmmo(playerid, weaponslot, ammo);
- return 1;
- }
- #if defined _ALS_SetPlayerAmmo
- #undef SetPlayerAmmo
- #else
- #define _ALS_SetPlayerAmmo
- #endif
- #define SetPlayerAmmo ANTIBUG_SetPlayerAmmo
- public OnPlayerUpdate(playerid)
- {
- #if defined ANTIBUG_OnPlayerUpdate
- return ANTIBUG_OnPlayerUpdate(playerid);
- #else
- new weaponid = GetPlayerWeapon(playerid);
- if(weaponid != oldw[playerid])
- {
- switch(GetPlayerWeapon(playerid))
- {
- case 22..32: SetPlayerAmmo(playerid, GetWeaponSlot(weaponid), magazines[weaponid-22]-ANTIBUG_g_shots[playerid][weaponid-22]);
- default: return 1;
- }
- }
- if((GetPlayerWeaponState(playerid) == WEAPONSTATE_RELOADING) && (22 <= weaponid <= 32)) ANTIBUG_g_shots[playerid][weaponid-22] = 0, ANTIBUG_g_muni[playerid][weaponid-22] -= magazines[weaponid-22], SetPlayerAmmo(playerid, GetWeaponSlot(weaponid), ANTIBUG_g_muni[playerid][weaponid-22]);
- oldw[playerid] = GetPlayerWeapon(playerid);
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate ANTIBUG_OnPlayerUpdate
- #if defined ANTIBUG_OnPlayerUpdate
- forward ANTIBUG_OnPlayerUpdate(playerid);
- #endif
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- #if defined ANTIBUG_OnPlayerWeaponShot
- return ANTIBUG_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- #else
- switch(weaponid)
- {
- case 22..34: ANTIBUG_g_shots[playerid][weaponid-22]++;
- default: return 1;
- }
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerWeaponShot
- #undef OnPlayerWeaponShot
- #else
- #define _ALS_OnPlayerWeaponShot
- #endif
- #define OnPlayerWeaponShot ANTIBUG_OnPlayerWeaponShot
- #if defined ANTIBUG_OnPlayerWeaponShot
- forward ANTIBUG_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- #endif
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- #if defined ANTIBUG_OnPlayerKeyStateChange
- return ANTIBUG_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
- #else
- if(PRESSED(KEY_CROUCH) && ANTIBUG_g_lastCrouch[playerid] <= gettime()) ANTIBUG_g_lastCrouch[playerid] = gettime() + 1;
- else if(GetPlayerWeapon(playerid) == 24) return ClearAnimations(playerid), SendClientMessage(playerid, -1, "ANTI C-BUG !");
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerKeyStateChange
- #undef OnPlayerKeyStateChange
- #else
- #define _ALS_OnPlayerKeyStateChange
- #endif
- #define OnPlayerKeyStateChange ANTIBUG_OnPlayerKeyStateChange
- #if defined ANTIBUG_OnPlayerKeyStateChange
- forward ANTIBUG_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
- #endif
- stock GetWeaponSlot(weaponid)
- {
- switch(weaponid)
- {
- case 0,1: return 0;
- case 2..9: return 1;
- case 10..15: return 10;
- case 16, 17, 18, 39: return 8;
- case 22..24: return 2;
- case 25..27: return 3;
- case 28, 29, 32: return 4;
- case 30, 31: return 5;
- case 33, 34: return 6;
- case 35..38: return 7;
- case 40: return 12;
- case 41..43: return 9;
- case 44..46: return 11;
- }
- return -1;
- }
- stock GetWeaponBySlot(playerid, slot)
- {
- new w[2];
- GetPlayerWeaponData(playerid, slot, w[0], w[1]);
- return w[0];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement