Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * CALLBACK'S
- - CheckPlayerWeaponHack(playerid)
- - OnPlayerWeaponHackDetected(playerid, detectionid, weaponid, ammo)
- ______________________________________________
- * STOCK'S
- - ACW_GivePlayerWeapon(playerid, weaponid, ammo)
- - ACW_SetPlayerWeaponAmmo(playerid, weaponid, ammo)
- - ACW_RemovePlayerWeapon(playerid, weaponid)
- - ACW_ResetPlayerWeapons(playerid)
- ______________________________________________
- */
- // -- Macros
- #define WEAPON_HACK_CHECK_TIME (3) // Segundos
- // ______________________________________________
- // -- Variáveis do jogador
- static
- dataWeapon[MAX_PLAYERS][13],
- dataAmmo[MAX_PLAYERS][13],
- dataTime[MAX_PLAYERS]
- ;
- new
- serverAirVehicles[] =
- {
- 417, 425, 447, 460, 469,
- 476, 487, 488, 497, 511,
- 512, 513, 519, 520, 548,
- 553, 563, 577, 592, 593
- }
- ;
- // ______________________________________________
- // -- Forwards
- forward CheckPlayerWeaponHack(playerid);
- forward OnPlayerWeaponHackDetected(playerid, detectionid, weaponid, ammo);
- // ______________________________________________
- // -- Callback's
- public OnPlayerUpdate(playerid)
- {
- if(dataTime[playerid] < gettime())
- {
- dataTime[playerid] = gettime() + WEAPON_HACK_CHECK_TIME;
- CheckPlayerWeaponHack(playerid);
- }
- #if defined ACW_OnPlayerUpdate
- return ACW_OnPlayerUpdate(playerid);
- #else
- return true;
- #endif
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- new
- getModel = GetVehicleModel(vehicleid)
- ;
- dataTime[playerid] += 1;
- for(new x = 0; x < sizeof serverAirVehicles; ++ x)
- {
- if(getModel == serverAirVehicles[x])
- {
- dataWeapon[playerid][11] = 46;
- dataAmmo[playerid][11] = 1;
- break;
- }
- }
- #if defined ACW_OnPlayerExitVehicle
- return ACW_OnPlayerExitVehicle(playerid, vehicleid);
- #else
- return true;
- #endif
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- ACW_ResetPlayerWeapons(playerid);
- #if defined ACW_OnPlayerDeath
- return ACW_OnPlayerDeath(playerid, killerid, reason);
- #else
- return true;
- #endif
- }
- public CheckPlayerWeaponHack(playerid)
- {
- new
- w,
- a
- ;
- for(new x = 0; x < 13; ++ x)
- {
- GetPlayerWeaponData(playerid, x, w, a);
- if(dataWeapon[playerid][x] == 40)
- {
- if(dataWeapon[playerid][8] == 39) continue;
- else
- {
- ACW_RemovePlayerWeapon(playerid, 40);
- continue;
- }
- }
- if(dataWeapon[playerid][x] != w)
- {
- if(dataWeapon[playerid][x] == 46)
- {
- if(w == 0)
- {
- dataWeapon[playerid][x] = 0;
- dataAmmo[playerid][x] = 0;
- continue;
- }
- }
- if(dataWeapon[playerid][x] == 40)
- {
- if(dataWeapon[playerid][8]) continue;
- }
- OnPlayerWeaponHackDetected(playerid, 1, w, a);
- }
- if(a > dataAmmo[playerid][x]) OnPlayerWeaponHackDetected(playerid, 2, w, a);
- else dataAmmo[playerid][x] = a;
- }
- return true;
- }
- // ______________________________________________
- // -- Stock's
- stock ACW_GivePlayerWeapon(playerid, weaponid, ammo)
- {
- ACW_RemovePlayerAmmo(playerid, weaponid);
- switch(weaponid)
- {
- case 0,1:
- {
- dataWeapon[playerid][0] = weaponid;
- dataAmmo[playerid][0] = ammo;
- }
- case 2..9:
- {
- dataWeapon[playerid][1] = weaponid;
- dataAmmo[playerid][1] = ammo;
- }
- case 22..24:
- {
- dataWeapon[playerid][2] = weaponid;
- dataAmmo[playerid][2] = ammo;
- }
- case 25..27:
- {
- dataWeapon[playerid][3] = weaponid;
- dataAmmo[playerid][3] = ammo;
- }
- case 28,29,32:
- {
- dataWeapon[playerid][4] = weaponid;
- dataAmmo[playerid][4] = ammo;
- }
- case 30,31:
- {
- dataWeapon[playerid][5] = weaponid;
- dataAmmo[playerid][5] = ammo;
- }
- case 33,34:
- {
- dataWeapon[playerid][6] = weaponid;
- dataAmmo[playerid][6] = ammo;
- }
- case 35..38:
- {
- dataWeapon[playerid][7] = weaponid;
- dataAmmo[playerid][7] = ammo;
- }
- case 16..18:
- {
- dataWeapon[playerid][8] = weaponid;
- dataAmmo[playerid][8] = ammo;
- }
- case 39:
- {
- dataWeapon[playerid][8] = weaponid;
- dataAmmo[playerid][8] = ammo;
- //WEAPON_BOMB (Detonator)
- dataWeapon[playerid][12] = 40;
- dataAmmo[playerid][12] = ammo;
- }
- case 41..43:
- {
- dataWeapon[playerid][9] = weaponid;
- dataAmmo[playerid][9] = ammo;
- }
- case 10..15:
- {
- dataWeapon[playerid][10] = weaponid;
- dataAmmo[playerid][10] = ammo;
- }
- case 44..46:
- {
- dataWeapon[playerid][11] = weaponid;
- dataAmmo[playerid][11] = ammo;
- }
- case 40:
- {
- dataWeapon[playerid][12] = weaponid;
- dataAmmo[playerid][12] = ammo;
- }
- default: return false;
- }
- return GivePlayerWeapon(playerid, weaponid, ammo);
- }
- static stock ACW_RemovePlayerAmmo(playerid, weaponid)
- {
- new
- w,
- a
- ;
- for(new x = 0; x < 13; ++ x)
- {
- GetPlayerWeaponData(playerid, x, w, a);
- if(w == weaponid)
- {
- GivePlayerWeapon(playerid, weaponid, -a);
- break;
- }
- }
- return true;
- }
- stock ACW_SetPlayerWeaponAmmo(playerid, weaponid, ammo)
- {
- new
- w,
- a
- ;
- for(new x = 0; x < 13; ++ x)
- {
- GetPlayerWeaponData(playerid, x, w, a);
- if(w == weaponid)
- {
- GivePlayerWeapon(playerid, weaponid, -a);
- GivePlayerWeapon(playerid, weaponid, ammo);
- dataAmmo[playerid][x] = ammo;
- break;
- }
- }
- return true;
- }
- stock ACW_RemovePlayerWeapon(playerid, weaponid)
- {
- new
- w[13],
- a[13]
- ;
- for(new x = 0; x < 13; ++ x)
- {
- GetPlayerWeaponData(playerid, x, w[x], a[x]);
- }
- ResetPlayerWeapons(playerid);
- for(new x = 0; x < 13; ++ x)
- {
- if(w[x] != weaponid)
- {
- GivePlayerWeapon(playerid, w[x], a[x]);
- }
- else if(w[x] == weaponid)
- {
- dataWeapon[playerid][x] = 0;
- dataAmmo[playerid][x] = 0;
- }
- }
- return true;
- }
- stock ACW_ResetPlayerWeapons(playerid)
- {
- for(new x = 0; x < 13; ++ x)
- {
- dataWeapon[playerid][x] = 0;
- dataAmmo[playerid][x] = 0;
- }
- return ResetPlayerWeapons(playerid);
- }
- // ______________________________________________
- // -- Hook's
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate ACW_OnPlayerUpdate
- #if defined ACW_OnPlayerUpdate
- forward ACW_OnPlayerUpdate(playerid);
- #endif
- //
- #if defined _ALS_OnPlayerExitVehicle
- #undef OnPlayerExitVehicle
- #else
- #define _ALS_OnPlayerExitVehicle
- #endif
- #define OnPlayerExitVehicle ACW_OnPlayerExitVehicle
- #if defined ACW_OnPlayerExitVehicle
- forward ACW_OnPlayerExitVehicle(playerid, vehicleid);
- #endif
- //
- #if defined _ALS_OnPlayerDeath
- #undef OnPlayerDeath
- #else
- #define _ALS_OnPlayerDeath
- #endif
- #define OnPlayerDeath ACW_OnPlayerDeath
- #if defined ACW_OnPlayerDeath
- forward ACW_OnPlayerDeath(playerid, killerid, reason);
- #endif
- //
- #if defined _ALS_GivePlayerWeapon
- #undef GivePlayerWeapon
- #else
- #define _ALS_GivePlayerWeapon
- #endif
- #define GivePlayerWeapon ACW_GivePlayerWeapon
- #if defined ACW_GivePlayerWeapon
- forward ACW_GivePlayerWeapon(playerid, weaponid, ammo);
- #endif
- //
- #if defined _ALS_ResetPlayerWeapons
- #undef ResetPlayerWeapons
- #else
- #define _ALS_ResetPlayerWeapons
- #endif
- #define ResetPlayerWeapons ACW_ResetPlayerWeapons
- #if defined ACW_ResetPlayerWeapons
- forward ACW_ResetPlayerWeapons(playerid);
- #endif
Add Comment
Please, Sign In to add comment