Advertisement
Cypress

Feature For Passenger Drrive By

Apr 24th, 2011
849
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.77 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define PRESSED(%0) \
  4.              (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  5.  
  6. new iTempWeapon[MAX_PLAYERS],
  7.     bool:DriveBy[MAX_PLAYERS];
  8.    
  9. forward GiveWeaponBack(playerid);
  10.  
  11. public OnPlayerStateChange(playerid, newstate, oldstate)
  12. {
  13.     if(newstate==PLAYER_STATE_PASSENGER)
  14.     {
  15.          iTempWeapon[playerid] = GetPlayerWeapon(playerid);
  16.          DriveBy[playerid] = false;
  17.     }
  18.     return 1;
  19. }
  20.  
  21. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  22. {
  23.     if(PRESSED(KEY_CROUCH))
  24.     {
  25.         if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
  26.         {
  27.             if(DriveBy[playerid] == false)
  28.             {
  29.                  DriveBy[playerid] = true;
  30.             }
  31.             else if(DriveBy[playerid] == true)
  32.             {
  33.                 SetPlayerArmedWeapon(playerid, 0);
  34.                 ApplyAnimation(playerid,"PED","CAR_GETIN_RHS",4.1,0,0,0,0,1,1);
  35.                 SetTimerEx("GiveWeaponBack",350,0,"d",playerid);
  36.                 DriveBy[playerid] = true;
  37.              }
  38.          }
  39.     }
  40.     return 1;
  41. }
  42.  
  43. public GiveWeaponBack(playerid)
  44. {
  45.     new ammo;
  46.     GetPlayerWeaponData(playerid, GetWeaponSlot(iTempWeapon[playerid]), ammo, ammo);
  47.     if(ammo > 0) SetPlayerArmedWeapon(playerid, iTempWeapon[playerid]);
  48.     DriveBy[playerid] = false;
  49. }
  50.  
  51. stock GetWeaponSlot(weaponid)
  52. {
  53.     new slotid;
  54.     switch(weaponid) {
  55.     case 0,1:               slotid = 0;
  56.     case 2,3,4,5,6,7,8,9:   slotid = 1;
  57.     case 22,23,24:          slotid = 2;
  58.     case 25,26:             slotid = 3;
  59.     case 28,29,32:          slotid = 4;
  60.     case 30,31:             slotid = 5;
  61.     case 33,34:             slotid = 6;
  62.     case 35,36,37,38:       slotid = 7;
  63.     case 16,17,18,19,39:    slotid = 8;
  64.     case 41,42,43:          slotid = 9;
  65.     case 10,11,12,13,14,15: slotid = 10;
  66.     case 44,45,46:          slotid = 11;
  67.     case 40:                slotid = 12; }
  68.     return slotid;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement