Advertisement
RyanCordell

BackpackPicker improvement

Sep 18th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.17 KB | None | 0 0
  1. script "RLBackpackAmmoPick" (int type)
  2. {
  3.     int pick;
  4.    
  5.     SetPlayerProperty(0, 1, PROP_FROZEN);
  6.     bool PickerActive = true;
  7.     bool NoInstaJump = true;
  8.    
  9.     if (PickerActive)
  10.     {
  11.         str bh1 = "", bh2 = "", bh3 = "", bh4 = "";
  12.         while (PickerActive)
  13.         {
  14.             int Buttons = GetPlayerInput(PlayerNumber(), INPUT_BUTTONS);
  15.            
  16.             // Don't get killed m8
  17.             if (GetActorProperty(playerTID[PlayerNumber()], APROP_Health) <= 0)
  18.             {
  19.                 SetInventory("RLBackpackType", type);
  20.                 ACS_NamedExecuteAlways("RLBackpackToss", 0);
  21.                 terminate;
  22.             }
  23.            
  24.             // Drawing
  25.             SetHudSize(320, 240, false);
  26.             SetFont("SMALLFONT");
  27.  
  28.             // Flishy flashy icons!
  29.             HudMessage(s:bh1,k:"+forward";  HUDMSG_ALPHA, 0, CR_WHITE, 160.0, 80.0, 0.05,   0.75 + FixedMul(sin(FixedDiv(Timer() << 16, 32.0)), 0.75));
  30.             HudMessage(s:bh2,k:"+back";         HUDMSG_ALPHA, 0, CR_WHITE, 160.0, 160.0, 0.05,  0.75 + FixedMul(sin(FixedDiv(Timer() << 16, 32.0)), 0.75));
  31.             HudMessage(s:bh3,k:"+moveleft";     HUDMSG_ALPHA, 0, CR_WHITE, 80.0, 120.0, 0.05,   0.75 + FixedMul(sin(FixedDiv(Timer() << 16, 32.0)), 0.75));
  32.             HudMessage(s:bh4,k:"+moveright";    HUDMSG_ALPHA, 0, CR_WHITE, 240.0, 120.0, 0.05,  0.75 + FixedMul(sin(FixedDiv(Timer() << 16, 32.0)), 0.75));
  33.  
  34.             HudMessage(s:"Pick an Ammo Type"; HUDMSG_PLAIN, 0, CR_WHITE, 160.0, 200.0, 0.05);
  35.             HudMessage(s:"Confirm with the ",k:"+use",s:" key!"; HUDMSG_PLAIN, 0, CR_WHITE, 160.0, 200.0, 0.05);
  36.  
  37.             SetFont("AMMOA0");
  38.             HudMessage(s:"A"; HUDMSG_PLAIN, 0, CR_WHITE, 160.0 + 12.0, 80.0 + 16.0, 0.05);
  39.             SetFont("SBOXA0");
  40.             HudMessage(s:"A"; HUDMSG_PLAIN, 0, CR_WHITE, 160.0 + 16.0, 160.0 + 12.0, 0.05);
  41.             SetFont("BROKA0");
  42.             HudMessage(s:"A"; HUDMSG_PLAIN, 0, CR_WHITE, 80.0 + 27.0, 120.0 + 20.0, 0.05);
  43.             SetFont("CELPA0");
  44.             HudMessage(s:"A"; HUDMSG_PLAIN, 0, CR_WHITE, 240.0 + 15.0, 120.0 + 20.0, 0.05);
  45.             SetHudSize(0, 0, false);
  46.            
  47.             // Input
  48.             if (buttons & BT_FORWARD)
  49.             {
  50.                 pick = AMMO_BULLET;
  51.                 bh1 = "\cf";
  52.                 bh2 = "", bh3 = "", bh4 = "";
  53.                 //break;
  54.             }
  55.             if (buttons & BT_BACK)
  56.             {
  57.                 pick = AMMO_SHELL;
  58.                 bh2 = "\cf";
  59.                 bh1 = "", bh3 = "", bh4 = "";
  60.                 //break;
  61.             }
  62.             if (buttons & BT_MOVELEFT)
  63.             {
  64.                 pick = AMMO_ROCKET;
  65.                 bh3 = "\cf";
  66.                 bh1 = "", bh2 = "", bh4 = "";
  67.             }
  68.             if (buttons & BT_MOVERIGHT)
  69.             {
  70.                 pick = AMMO_CELL;
  71.                 bh4 = "\cf";
  72.                 bh1 = "", bh2 = "", bh3 = "";
  73.             }
  74.            
  75.             if (buttons & BT_USE && !NoInstaJump)
  76.                 break;
  77.                
  78.             if (buttons & BT_SPEED)
  79.             {
  80.                 ACS_NamedExecuteAlways("RLBackpackToss", 0);
  81.                 PickerActive = false;
  82.             }
  83.                
  84.             Delay(1);
  85.             NoInstaJump = false;
  86.         }
  87.        
  88.         int bullets = 400;
  89.         int shells = 100;
  90.         int rockets = 100;
  91.         int cells = 600;
  92.  
  93.         if (buttons & BT_USE)
  94.         {
  95.             switch (type)
  96.             {
  97.                 case BPACK_SPECIALIST:
  98.                     switch (pick)
  99.                     {
  100.                     case AMMO_BULLET:
  101.                         bullets *= 2;
  102.                         break;
  103.                     case AMMO_SHELL:
  104.                         shells *= 2;
  105.                         break;
  106.                     case AMMO_ROCKET:
  107.                         rockets *= 2;
  108.                         break;
  109.                     case AMMO_CELL:
  110.                         cells *= 2;
  111.                         break;
  112.                     }
  113.                 break;
  114.                 case BPACK_DEDICATED:
  115.                     switch (pick)
  116.                     {
  117.                     case AMMO_BULLET:
  118.                         bullets *= 6;
  119.                         shells /= 10;
  120.                         rockets /= 10;
  121.                         cells /= 10;
  122.                         break;
  123.                     case AMMO_SHELL:
  124.                         bullets /= 10;
  125.                         shells *= 6;
  126.                         rockets /= 10;
  127.                         cells /= 10;
  128.                         break;
  129.                     case AMMO_ROCKET:
  130.                         bullets /= 10;
  131.                         shells /= 10;
  132.                         rockets *= 6;
  133.                         cells /= 10;
  134.                         break;
  135.                     case AMMO_CELL:
  136.                         bullets /= 10;
  137.                         shells /= 10;
  138.                         rockets /= 10;
  139.                         cells *= 6;
  140.                         break;
  141.                     }
  142.                 break;
  143.             }
  144.         }
  145.        
  146.         SetAmmoCapacityCap("Clip", bullets);
  147.         SetAmmoCapacityCap("Shell", shells);
  148.         SetAmmoCapacityCap("RocketAmmo", rockets);
  149.         SetAmmoCapacityCap("Cell", cells);
  150.        
  151.         switch (pick)
  152.         {
  153.         case AMMO_BULLET:
  154.             GiveInventory("RLBackpackClipChosen", 1);
  155.             break;
  156.         case AMMO_SHELL:
  157.             GiveInventory("RLBackpackShellChosen", 1);
  158.             break;
  159.         case AMMO_ROCKET:
  160.             GiveInventory("RLBackpackRocketChosen", 1);
  161.             break;
  162.         case AMMO_CELL:
  163.             GiveInventory("RLBackpackCellChosen", 1);
  164.             break;
  165.         }
  166.        
  167.         SetPlayerProperty(0, 0, PROP_FROZEN);
  168.         ActivatorSound("hud/assemblyalert", 127);
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement