Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*-----------------------------------------------***********------/
- ^ V1, and V2 are outdated. V3 comes now with more possibillities. ^
- ^ It's now possible to create weapons at gamemodeinit. ^
- FA::CreateFirearm(name[], weaponid, damage);
- FA::GetFirearmID(name[]);
- FA::GetFirearmName(id);
- FA::IsValidFirearm(id);
- FA::GivePlayerFirearm(playerid, FA::id, FA::ammo);
- FA::GetPlayerFirearm(playerid, FA::slot);
- FA::GetPlayerHoldingFirearm(playerid);
- FA::IsPlayerHoldingAnyFirearm(playerid);
- /----------------------------------------------------------------*/
- #define FA:: FA_
- #define GUN:: GUN_
- #if !defined MAX_FIREARMS
- #define MAX_FIREARMS 50
- #endif
- #if !defined isnull
- #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
- #endif
- #define INVALID_FIREARM_ID 0
- /****|| Variables ||****/
- enum FA::info {
- FA::ID,
- FA::Name[24],
- FA::WeaponID,
- FA::Damage
- }
- new FA::Info[MAX_FIREARMS][FA::info],
- FA::Player[MAX_PLAYERS][13],
- FA::LastID = 0;
- /****|| Functions.. ||****/
- stock FA::CreateFirearm(FA::name[], FA::weaponid, FA::damage) {
- if(!isnull(FA::name)) {
- FA::LastID++;
- FA::Info[FA::LastID][FA::ID] = FA::LastID;
- format(FA::Info[FA::LastID][FA::Name], 24, FA::name);
- FA::Info[FA::LastID][FA::WeaponID] = FA::weaponid;
- FA::Info[FA::LastID][FA::Damage] = FA::damage;
- return FA::LastID;
- }
- else {
- #if defined FA_DEBUG
- printf("FA ยป Could not create a firearm, name was left empty.");
- #endif
- return INVALID_FIREARM_ID;
- }
- }
- stock FA::GetFirearmID(FA::name[]) {
- new FA::succeeded = 0, FA::ids;
- for(new FA::id = 0; FA::id < MAX_FIREARMS; FA::id++) {
- if(FA::Info[FA::id][FA::ID] != INVALID_FIREARM_ID) {
- if(!strcmp(FA::Info[FA::id][FA::Name], FA::name)) {
- FA::succeeded = 1;
- FA::ids = FA::id;
- break;
- }
- }
- }
- if(FA::succeeded == 0)
- return INVALID_FIREARM_ID;
- else
- return FA::ids;
- }
- stock FA::GetFirearmName(FA::id) {
- new FA::empty[1];
- if(FA::Info[FA::id][FA::ID] != INVALID_FIREARM_ID) {
- strcat(FA::empty, FA::Info[FA::id][FA::Name]);
- return FA::empty;
- }
- else {
- strcat(FA::empty, " ");
- return FA::empty;
- }
- }
- stock FA::IsValidFirearm(FA::id) {
- new FA::succeeded = 0, FA::ids;
- for(new FA::idd = 0; FA::idd < MAX_FIREARMS; FA::idd++) {
- if(FA::Info[FA::idd][FA::ID] == FA::id) {
- FA::succeeded = 1;
- FA::ids = FA::idd;
- break;
- }
- }
- if(FA::succeeded == 0)
- return INVALID_FIREARM_ID;
- else
- return FA::ids;
- }
- stock FA::GivePlayerFirearm(playerid, FA::id, FA::ammo) {
- if(FA::IsValidFirearm(FA::id)) {
- if(IsPlayerConnected(playerid)) {
- GivePlayerWeapon(playerid, FA::Info[FA::id][FA::WeaponID], FA::ammo);
- switch(FA::Info[FA::id][FA::WeaponID]) {
- case 0, 1: FA::Player[playerid][0] = FA::id;
- case 2, 3, 4, 5, 6, 7, 8, 9: FA::Player[playerid][1] = FA::id;
- case 10, 11, 12, 13, 14, 15: FA::Player[playerid][10] = FA::id;
- case 16, 17, 18: FA::Player[playerid][8] = FA::id;
- case 22, 23, 24: FA::Player[playerid][2] = FA::id;
- case 25, 26, 27: FA::Player[playerid][3] = FA::id;
- case 28, 29, 32: FA::Player[playerid][4] = FA::id;
- case 30, 31: FA::Player[playerid][5] = FA::id;
- case 33, 34: FA::Player[playerid][6] = FA::id;
- case 35, 36, 37, 38: FA::Player[playerid][7] = FA::id;
- case 39: FA::Player[playerid][8] = FA::id;
- case 40: FA::Player[playerid][12] = FA::id;
- case 41, 42, 43: FA::Player[playerid][9] = FA::id;
- case 44, 45, 46: FA::Player[playerid][11] = FA::id;
- }
- }
- }
- }
- stock FA::GetPlayerFirearm(playerid, FA::slot) {
- if(FA::Player[playerid][FA::slot] == INVALID_FIREARM_ID)
- return INVALID_FIREARM_ID;
- else
- return FA::Player[playerid][FA::slot];
- }
- stock FA::GetPlayerHoldingFirearm(playerid) {
- new FA::slot;
- switch(GetPlayerWeapon(playerid)) {
- case 0, 1: FA::slot = 0;
- case 2, 3, 4, 5, 6, 7, 8, 9: FA::slot = 1;
- case 10, 11, 12, 13, 14, 15: FA::slot = 10;
- case 16, 17, 18: FA::slot = 8;
- case 22, 23, 24: FA::slot = 2;
- case 25, 26, 27: FA::slot = 3;
- case 28, 29, 32: FA::slot = 4;
- case 30, 31: FA::slot = 5;
- case 33, 34: FA::slot = 6;
- case 35, 36, 37, 38: FA::slot = 7;
- case 39: FA::slot = 8;
- case 40: FA::slot = 12;
- case 41, 42, 43: FA::slot = 9;
- case 44, 45, 46: FA::slot = 11;
- }
- return FA::GetPlayerFirearm(playerid, FA::slot);
- }
- stock FA::IsPlayerHoldingAnyFirearm(playerid) {
- if(FA::GetPlayerHoldingFirearm(playerid) == INVALID_FIREARM_ID)
- return INVALID_FIREARM_ID;
- else
- return 1;
- }
- /****|| Hooking.. ||****/
- public OnPlayerConnect(playerid) {
- #if defined FA_OnPlayerConnect
- FA_OnPlayerConnect(playerid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect FA_OnPlayerConnect
- #if defined FA_OnPlayerConnect
- forward FA_OnPlayerConnect(playerid);
- #endif
- public FA_OnPlayerConnect(playerid) {
- for(new FA::slot = 0; FA::slot < 13; FA::slot++) {
- FA::Player[playerid][FA::slot] = 0;
- }
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) {
- #if defined FA_OnPlayerWeaponShot
- FA_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerWeaponShot
- #undef OnPlayerWeaponShot
- #else
- #define _ALS_OnPlayerWeaponShot
- #endif
- #define OnPlayerWeaponShot FA_OnPlayerWeaponShot
- #if defined FA_OnPlayerWeaponShot
- forward FA_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- #endif
- public FA_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) {
- if(hittype == BULLET_HIT_TYPE_PLAYER) {
- new Float:FA::health;
- GetPlayerHealth(hitid, FA::health);
- new Float:FA::armour;
- GetPlayerArmour(hitid, FA::armour);
- if(FA::armour > 0) {
- SetPlayerArmour(hitid, FA::armour-FA::Info[FA::GetPlayerHoldingFirearm(playerid)][FA::Damage]);
- GetPlayerArmour(hitid, FA::armour);
- if(FA::armour < 0) {
- SetPlayerHealth(hitid, FA::health-FA::armour);
- SetPlayerArmour(hitid, 0);
- }
- }
- else
- SetPlayerHealth(hitid, FA::health-FA::Info[FA::GetPlayerHoldingFirearm(playerid)][FA::Damage]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement