Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- new HasBBX[MAX_PLAYERS];
- new BBXIsReady[MAX_PLAYERS];
- new BBXPerjectile[MAX_PLAYERS];
- new BBXFlare[MAX_PLAYERS];
- forward BBXCleanup(BBXPerjectileid,BBXFlareid);
- // HOLDING(keys)
- #define HOLDING(%0) \
- ((newkeys & (%0)) == (%0))
- // PRESSED(keys)
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- // RELEASED(keys)
- #define RELEASED(%0) \
- (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp(cmdtext, "/flaregun", true)==0)
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid,34,420);
- HasBBX[playerid] = 1;
- SendClientMessage(playerid,0xFFFF0000,"given a flaregun.");
- ReloadBBX(playerid);
- return 1;
- }
- else if (strcmp(cmdtext, "/reloadme", true)==0)
- {
- ReloadBBX(playerid);
- return 1;
- }
- else if (strcmp(cmdtext, "/reloadtest", true)==0)
- {
- SendClientMessage(playerid,0xFFFF0000,"reload anim differentiater");
- ReloadBBX(playerid);
- return 1;
- }
- return 0;
- }
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- #define KEY_AIM 128
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- new HoldingBBX;
- HoldingBBX = GetPlayerWeapon(playerid);
- if(HasBBX[playerid] == 1)
- {
- if(HoldingBBX == 34)
- {
- if (PRESSED( KEY_AIM ))//start aiming
- {
- if(BBXIsReady[playerid] == 1)
- {
- GiveBBXRound(playerid);
- // BBXIsReady[playerid] = 0;
- return 1;
- }
- }
- }
- }
- if (PRESSED( KEY_FIRE ))
- {
- if(BBXIsReady[playerid] == 0) return 1;
- SetTimerEx("ReloadBBX",200,false,"i", playerid);
- // ReloadBBX(playerid);
- BBXIsReady[playerid] = 0;
- return 1;
- }
- return 1;
- }
- ////////////////////////////////////////////////////////////////////////////////
- // if(BBXIsReady[playerid] == 1)
- // {
- // ReloadBBX(playerid);
- // SendClientMessage(playerid,0xFFFF0000,"fire key pressed");
- // BBXIsReady[playerid] = 0;
- // {
- // if(BBXIsReady[playerid] == 0)
- // {
- // SendClientMessage(playerid,0xFFFF0000,"bbx not rdy");
- // }
- // }
- // }
- ////////////////////////////////////////////////////////////////////////////////
- forward ReloadBBX(playerid);
- public ReloadBBX(playerid)
- {
- if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
- {
- SetTimerEx("BBXReloaded",2000,false,"i", playerid);
- BBXStartRelAnimC(playerid);
- // SendClientMessage(playerid,0xFFFF0000,"[BBX] crouched Reloading...");
- }
- if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK)
- {
- SetTimerEx("BBXReloaded",2000,false,"i", playerid);
- BBXStartRelAnim(playerid);
- // SendClientMessage(playerid,0xFFFF0000,"[BBX] standing Reloading...");
- return 1;
- }
- return 1;
- }
- forward BBXReloaded(playerid);
- public BBXReloaded(playerid)
- {
- StopRelAnim(playerid);
- // SendClientMessage(playerid,0xFF00FF00,"[BBX9k] Reloaded.");
- BBXIsReady[playerid] = 1;
- ClearAnimations(playerid);
- return 1;
- }
- forward GiveBBXRound(playerid);
- public GiveBBXRound(playerid)
- {
- if(BBXIsReady[playerid] == 0) return 1;
- new myBBXinfo[2];
- new Float:bbxpos[3],Float:pidFA;
- GetPosFaInFrontOfPlayer(playerid, 0.80, bbxpos[0], bbxpos[1], bbxpos[2], pidFA);
- BBXPerjectile[playerid] = CreateObject(3065, bbxpos[0], bbxpos[1], bbxpos[2] + 0.68, 0.0, 0.0, pidFA,300.0);
- BBXFlare[playerid] = CreateObject(19294, bbxpos[0], bbxpos[1], bbxpos[2] + 0.68, 0.0, 0.0, pidFA,300.0);
- // AttachCameraToObject(playerid, BBXFlare[playerid]);
- AttachObjectToObject(BBXFlare[playerid],BBXPerjectile[playerid],0.0,0.0,0.0, 0.0,0.0,0.0,1);
- SetTimerEx("BBXCleanup",4000,false,"ii",BBXPerjectile[playerid],BBXFlare[playerid]);//delete ball 4 sec after shoot key
- SetTimerEx("BBXCleanup",4000,false,"ii",BBXPerjectile[playerid],BBXFlare[playerid]);//fix camera
- GetPlayerWeaponData(playerid,6,myBBXinfo[0],myBBXinfo[1]);
- GivePlayerWeapon(playerid,34, 1);
- // BBXIsReady[playerid] = 0;
- return 1;
- }
- forward BBXStartRelAnimC(playerid);
- public BBXStartRelAnimC(playerid)
- {
- // TogglePlayerControllable(playerid,0);
- SetTimerEx("StopRelAnim",1750,false,"i", playerid);
- ApplyAnimation(playerid,"RIFLE","RIFLE_crouchfire",4.1,0,1,1,1,1,1);
- ApplyAnimation(playerid,"RIFLE","RIFLE_crouchfire",4.1,0,1,1,1,1,1);
- SetPlayerAttachedObject(playerid,7,358, 6, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000);
- return 1;
- }
- forward BBXStartRelAnim(playerid);
- public BBXStartRelAnim(playerid)
- {
- // TogglePlayerControllable(playerid,0);
- SetTimerEx("StopRelAnim",1750,false,"i", playerid);
- ApplyAnimation(playerid,"RIFLE","RIFLE_load",4.1,0,1,1,1,1,1);
- ApplyAnimation(playerid,"RIFLE","RIFLE_load",4.1,0,1,1,1,1,1);
- SetPlayerAttachedObject(playerid,7,358, 6, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000);
- return 1;
- }
- forward StopRelAnim(playerid);
- public StopRelAnim(playerid)
- {
- ClearAnimations(playerid);
- GivePlayerWeapon(playerid,34, 1);
- RemovePlayerAttachedObject(playerid, 7);
- // TogglePlayerControllable(playerid,1);
- return 1;
- }
- /*
- forward FixCamera(playerid);
- public FixCamera(playerid)
- {
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- */
- public BBXCleanup(BBXPerjectileid,BBXFlareid)
- {
- DestroyObject(BBXPerjectileid);
- DestroyObject(BBXFlareid);
- return 1;
- }
- forward GetPosFaInFrontOfPlayer(playerid, Float:OffDist, &Float:Pxx, &Float:Pyy, &Float:Pzz, &Float:Fa);
- public GetPosFaInFrontOfPlayer(playerid, Float:OffDist, &Float:Pxx, &Float:Pyy, &Float:Pzz, &Float:Fa)
- {
- if(!IsPlayerConnected(playerid)) return 0;
- new
- Float:playerpos[3],
- Float:FacingA;
- GetPlayerPos(playerid, playerpos[0], playerpos[1], playerpos[2]);
- GetPlayerFacingAngle(playerid, FacingA);
- Pxx = (playerpos[0] + OffDist * floatsin(-FacingA,degrees));
- Pyy = (playerpos[1] + OffDist * floatcos(-FacingA,degrees));
- Pzz = playerpos[2];
- Fa = (FacingA > 180) ? (FacingA - 180) : (FacingA + 180);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment