Advertisement
Guest User

Hud Menu by Sheep Wizard V1.1

a guest
Sep 22nd, 2016
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.87 KB | None | 0 0
  1. //   ________  ___  ___  _______   _______   ________  
  2. //  |\   ____\|\  \|\  \|\  ___ \ |\  ___ \ |\   __  \  
  3. //  \ \  \___|\ \  \\\  \ \   __/|\ \   __/|\ \  \|\  \
  4. //   \ \_____  \ \   __  \ \  \_|/_\ \  \_|/_\ \   ____\
  5. //    \|____|\  \ \  \ \  \ \  \_|\ \ \  \_|\ \ \  \___|
  6. //      ____\_\  \ \__\ \__\ \_______\ \_______\ \__\  
  7. //     |\_________\|__|\|__|\|_______|\|_______|\|__|  
  8. //     \|_________|                                    
  9. // Create by Sheep Wizard
  10. // For use in any mod or map
  11. // Steam: SheepWizard
  12. // V1.1
  13. // +Added text alignment option
  14. main()
  15. {
  16.  
  17.     ////////////////Menu Settings/////////////
  18.     /*
  19.     Edit menu settings here
  20.     For colours use rgb colours divided by 255
  21.     */
  22.     //Colour of menu background
  23.     level.backgroundColour = (255/255,42/255,255/255);
  24.     //Transparacy for background
  25.     level.backgroundAlpha = 0.5;
  26.     //Colour of title of menu
  27.     level.titleColour = (215/255,12/255,70/255);
  28.     //Transparacy for Title
  29.     level.titleAlpha = 1;
  30.     //Colour of menu text
  31.     level.textColour = (55/255,255/255,154/255);
  32.     //Transparacy for text
  33.     level.textAlpha = 1;
  34.     //Colour of item selector
  35.     level.selectorColour = (2/255,2/255,25/255);
  36.     //Transparacy for selector
  37.     level.selectorAlpha = 0.8;
  38.     //colour of seperator
  39.     level.seportatorColour = (2/255,255/255,25/255);
  40.     //Transparacy for seporator
  41.     level.seportatorAlpha = 1;
  42.     //Title text
  43.     level.titleText = "VIP MENU";
  44.     //Size of title text font   1.4 = minimum
  45.     level.titleTextScale = 1.7;
  46.     //Move text alignment
  47.     level.textAlignmentX = 20;
  48.     //Time it takes of selector to scroll in ms
  49.     level.scrollTime = 0.5;
  50.     //If player will freeze when menu is open
  51.     level.freezePlayerControls = false;
  52.     //If you want menu to disble weapons when opened
  53.     level.disableWeapons = true;
  54.  
  55.     //Menu will only slide if it is on left or right of screen
  56.     //Time it take for menu to slide open
  57.     level.menuSlideInTime = 0.4;
  58.     //Time it take for menu to slide close
  59.     level.menuSlideOutTime = 0.4;
  60.     //If you want menu to slide on when opened
  61.     level.menuSlideIn = true;
  62.     //If you want menu to slide out when closed
  63.     level.menuSlideOut = true;
  64.  
  65.     //0 = menu will spawn on left side   1 = menu will spawn on right side    2 = menu will spawn in middle   3 = set your own x,y values for menu to spawn
  66.     level.menuSide = 2;
  67.     //Set x positon for menu to spawn   LEVEL.MENUSIDE MUST BE EQUAL TO 3 FOR THIS TO WORK
  68.     level.menuX = 0;
  69.     //Set Y positon for menu to spawn   LEVEL.MENUSIDE MUST BE EQUAL TO 3 FOR THIS TO WORK
  70.     level.menuY = 0;
  71.     //Number of items shown till menu starts to scroll
  72.     level.itemTillScroll = 4;
  73.     //The width of the menu
  74.     level.menuWidth = 200;
  75.  
  76.     //button to open with set button instead of double pressing frag
  77.     //To open menu with button bind a key to this commands: openScriptMenu -1 open_hud_menu
  78.     //e.g.  bind p openScriptMenu -1 open_hud_menu
  79.     level.openWithButton = false;
  80.  
  81.     ////////////////////////////////////////
  82.  
  83.  
  84.  
  85.     /////////////Player Guids///////////////
  86.  
  87.     //Set to true if you only people with certain guids to open menu
  88.     level.guidRequired = false;
  89.  
  90.     level.acceptedguids = [];
  91.  
  92.     //Add the last 8 digits of a players guid here
  93.     //See example below if stuck
  94.  
  95.     level.acceptedguids[0] = "11b05456";
  96.     level.acceptedguids[1] = "62b35354";
  97.  
  98.     ///////////////////////////////////////
  99.  
  100.  
  101.  
  102.     /////////////Menus/////////////////////
  103.     /*
  104.     Use this section to add items to menu
  105.  
  106.     Syntax: addMenuItem("Item text", ::function, true/false if you want menu to stay open when item selected);
  107.  
  108.     See example below if stuck
  109.     */
  110.  
  111.     addMenuItem("Give M40A3", ::givem4, false);
  112.     addMenuItem("Print Name", ::printname, false);
  113.     addMenuItem("Suicide", ::killplayer, true);
  114.     addMenuItem("Bounce", ::bounce, false);
  115.  
  116.     //////////////////////////////////////
  117.  
  118.     thread onConnect();
  119. }
  120.  
  121. ////////////////Custom Scripts///////////////////////////
  122. /*
  123.     Add custom scripts here
  124.     Alternatively you can add them into a seperate gsc
  125. */
  126. givem4()
  127. {
  128.     self giveWeapon("m40a3_mp");
  129.     self switchToWeapon("m40a3_mp");
  130. }
  131.  
  132. printname()
  133. {
  134.     iPrintLnBold(self.name);
  135. }
  136.  
  137. killplayer()
  138. {
  139.     self suicide();
  140. }
  141.  
  142. bounce()
  143. {
  144.     power = 230;
  145.     self.health += power;
  146.     self finishPlayerDamage(self, level.jumpattacker, power, 0, "MOD_FALLING", "jump_mp", self.origin, AnglesToForward((-90,0,0)), "head", 0);
  147. }
  148.  
  149. ////DO NOT EDIT BELOW THIS LINE////or do idc
  150. ///////////////////////////////////////////
  151.  
  152. onConnect()
  153. {
  154.     for(;;)
  155.     {
  156.         level waittill( "connected", player );
  157.         player.menuopen = false;
  158.         player thread onSpawn();
  159.     }
  160. }
  161. onSpawn()
  162. {
  163.     self endon("disconnect");
  164.     for(;;)
  165.     {
  166.         self waittill("spawned_player");
  167.  
  168.        
  169.         if(level.guidRequired)
  170.         {
  171.             friend = getSubStr(self getGuid(), 24, 32);
  172.             for(i=0; i<level.acceptedguids.size; i++)
  173.             {
  174.                 if(friend == level.acceptedguids[i])
  175.                     self thread menuCheck();
  176.             }
  177.         }
  178.         else   
  179.             self thread menuCheck();
  180.     }
  181. }
  182. menuCheck()
  183. {
  184.     self endon("disconnect");
  185.     self endon("death");
  186.     if(!level.openWithButton)
  187.     {
  188.         while(1)
  189.         {
  190.             if(self fragButtonPressed())
  191.             {
  192.                 x=false;
  193.                 for(i = 0;i < 0.5;i += 0.05)
  194.                 {
  195.                     if(self fragButtonPressed() && x && !self.menuopen)
  196.                     {
  197.                         self thread openHudMenu();
  198.                         if(level.disableWeapons)
  199.                             self disableWeapons();
  200.                         if(level.freezePlayerControls)
  201.                             self freezeControls(1);
  202.                         self.menuopen = true;
  203.                         self thread onDeath();
  204.                         wait 0.75;
  205.                         break;
  206.                     }
  207.                     else if (!self fragButtonPressed())
  208.                         x = true;
  209.                     wait 0.05;
  210.                 }
  211.             }
  212.             wait 0.05;
  213.         }
  214.     }
  215.     else
  216.     {
  217.         while(1)
  218.         {
  219.             self waittill("menuresponse", menu, response);
  220.             if(response == "open_hud_menu")
  221.             {
  222.                 self thread openHudMenu();
  223.                 if(level.disableWeapons)
  224.                     self disableWeapons();
  225.                 if(level.freezePlayerControls)
  226.                     self freezeControls(1);
  227.                 self.menuopen = true;
  228.                 self thread onDeath();
  229.                 wait 0.75;
  230.             }
  231.         }
  232.     }
  233. }
  234. addMenuItem(text, script, close)
  235. {
  236.     if(!isdefined(level.mainmenuhud))
  237.         level.mainmenuhud = [];
  238.     array_size = level.mainmenuhud.size;
  239.     level.mainmenuhud[array_size] = spawnStruct();
  240.     level.mainmenuhud[array_size].name = text;
  241.     level.mainmenuhud[array_size].script = script;
  242.     level.mainmenuhud[array_size].close = close;
  243. }
  244. openHudMenu()
  245. {
  246.     self endon("death");
  247.     self endon("disconnect");
  248.     self endon("hud_menu_closed");
  249.  
  250.     self.hudMenu = [];
  251.     self.selector = 1;
  252.     self.scroll = 0;
  253.     scrollamount = 0;
  254.     offsetX = 0;
  255.     offsetY = 0;
  256.     level.slideInValue = level.menuWidth;
  257.     //Work out scroll amount
  258.     if(level.mainmenuhud.size > level.itemTillScroll-1)
  259.         scrollamount = level.mainmenuhud.size - level.itemTillScroll;
  260.     selectamount = level.mainmenuhud.size;
  261.     if(level.mainmenuhud.size > level.itemTillScroll-1)
  262.         selectamount = level.itemTillScroll;
  263.  
  264.     //work out menu position
  265.     if(level.menuSide == 0)
  266.     {
  267.         if(level.menuSlideIn)
  268.         {
  269.             level.slideInValue = level.menuWidth;
  270.             offsetX = -110 - level.menuWidth;
  271.             offsetY = 40;
  272.         }
  273.         else
  274.         {
  275.             offsetX = -110;
  276.             offsetY = 40;
  277.         }
  278.     }
  279.     if(level.menuSide == 1)
  280.     {
  281.         if(level.menuSlideIn)
  282.         {
  283.             offsetX = 747;
  284.             offsetY = 40;
  285.             level.slideInValue = level.menuWidth*-1;
  286.         }
  287.         else
  288.         {
  289.             offsetX = 747 - level.menuWidth;
  290.             offsetY = 40;
  291.         }
  292.     }
  293.     if(level.menuSide == 2)
  294.     {
  295.         offsetX = 230;
  296.         offsetY = 60;
  297.     }
  298.     if(level.menuSide == 3)
  299.     {
  300.         offsetX = level.menuX;
  301.         offsetY = level.menuY;
  302.     }
  303.  
  304.     //text
  305.     self.hudMenu[0] = addTextHud( self, (offsetX + level.textAlignmentX), (offsetY + 40), level.textAlpha, "left", "top", 1.4, 10 );    //-90 80
  306.     self.hudMenu[0].color = level.textColour;
  307.     self.hudMenu[0] setText(getText(undefined));
  308.  
  309.     //background
  310.     self.hudMenu[1] = addTextHud( self, (offsetX), (offsetY), level.backgroundAlpha, "left", "top", 0, 0 ); //-110  40
  311.     self.hudMenu[1] setShader("White", level.menuWidth, int(33.5*(selectamount+1)));
  312.     self.hudMenu[1].color = level.backgroundColour;
  313.  
  314.     //selector
  315.     self.hudMenu[2] = addTextHud( self, (offsetX), (offsetY + 40), level.selectorAlpha, "left", "top", 0, 1 );  //-110  80
  316.     self.hudMenu[2] setShader("White", level.menuWidth, 20);
  317.     self.hudMenu[2].color = level.selectorColour;
  318.  
  319.     //title
  320.     self.hudMenu[3] = addTextHud( self, (offsetX + 20), (offsetY + 13), level.titleAlpha, "left", "top", level.titleTextScale, 1 ); //-90  53
  321.     self.hudMenu[3].color = level.titleColour;
  322.     self.hudMenu[3] setText(level.titleText);
  323.  
  324.     //sepertors
  325.     self.hudMenu[4] = addTextHud( self, (offsetX), (offsetY + 37.5), level.seportatorAlpha, "left", "top", 1.7, 1 );     //-110  77.5
  326.     self.hudMenu[4] setShader("White", level.menuWidth, 2);
  327.     self.hudMenu[4].color = level.seportatorColour;
  328.  
  329.     if(level.menuSlideIn && level.menuSide == 1 || level.menuSide == 0)
  330.     {
  331.         for(i=0; i<self.hudMenu.size; i++)
  332.             moveHudX(self.hudMenu[i], level.slideInValue, level.menuSlideInTime);
  333.     }
  334.  
  335.     while(1)
  336.     {
  337.         if(self attackButtonPressed())
  338.         {
  339.             if(self.selector == selectamount)
  340.             {
  341.                 if(scrollamount > 0 && self.scroll < scrollamount)
  342.                 {
  343.                     self.scroll++;
  344.                     self.hudMenu[0] setText(getText(self.scroll)); 
  345.                 }
  346.                 else
  347.                 {
  348.                     self.hudMenu[0] setText(getText(undefined));
  349.                     moveHudY(self.hudmenu[2], (-33.5 *(selectamount-1)) , level.scrollTime);
  350.                     self.scroll = 0;
  351.                     self.selector = 1;
  352.                 }
  353.             }
  354.             else if(self.selector < selectamount)
  355.             {
  356.                 moveHudY(self.hudmenu[2], 33.5, level.scrollTime);
  357.                 self.selector++;
  358.             }
  359.  
  360.             wait 0.1;
  361.         }
  362.         if(self adsButtonPressed())
  363.         {
  364.             if(self.selector == 1)
  365.             {
  366.                 if(self.scroll == 0 )
  367.                 {
  368.                     self.selector = selectamount;
  369.                     self.scroll = scrollamount;
  370.                     if(selectamount > level.itemTillScroll-1)
  371.                         self.hudMenu[0] setText(getText(self.scroll));
  372.                     moveHudY(self.hudmenu[2], (33.5 * (selectamount-1)), level.scrollTime);
  373.                 }
  374.                 else
  375.                 {
  376.                     self.scroll--;
  377.                     self.hudMenu[0] setText(getText(self.scroll)); 
  378.                 }
  379.             }
  380.             else if(self.selector != 1)
  381.             {
  382.                 moveHudY(self.hudmenu[2], -33.5, level.scrollTime);
  383.                 self.selector--;
  384.             }
  385.             wait 0.1;
  386.         }
  387.         if(self useButtonPressed())
  388.         {
  389.             if(!isString(level.mainmenuhud[self.selector+self.scroll-1].script))
  390.             {
  391.                 self thread [[level.mainmenuhud[self.selector+self.scroll-1].script]]();
  392.                 if(level.mainmenuhud[self.selector+self.scroll-1].close)
  393.                 {
  394.                     self thread closeHudMenu();
  395.                     self notify("hud_menu_closed");
  396.                 }
  397.                 wait 0.2;
  398.             }
  399.         }
  400.         if(self meleeButtonPressed())
  401.         {
  402.             self thread closeHudMenu();
  403.             self notify("hud_menu_closed");
  404.         }
  405.         wait 0.05;
  406.     }
  407. }
  408. onDeath()
  409. {
  410.     self waittill("death");
  411.     if(isDefined(self.menuopen) || self.menuopen)
  412.         self thread closeHudMenu();
  413.     self notify("hud_menu_closed");
  414. }
  415. closeHudMenu()
  416. {
  417.     self enableWeapons();
  418.     self freezeControls(0);
  419.     self.menuopen = false;
  420.     if(level.menuSlideIn && level.menuSide == 1 || level.menuSide == 0)
  421.     {
  422.         for(i=0; i<self.hudMenu.size; i++)
  423.         {
  424.             if(isDefined(self.hudMenu[i]))
  425.                 moveHudX(self.hudMenu[i], level.slideInValue*-1, level.menuSlideOutTime);
  426.         }
  427.         wait 0.5;
  428.     }
  429.     for(i=0; i<self.hudMenu.size; i++)
  430.     {
  431.         if(isDefined(self.hudMenu[i]))
  432.             self.hudMenu[i] destroy();
  433.     }
  434. }
  435. getText(scroll)
  436. {
  437.     text = "";
  438.     if(!isDefined(scroll))
  439.     {
  440.         if(level.mainmenuhud.size > level.itemTillScroll)
  441.             loop = level.itemTillScroll;
  442.         else
  443.             loop = level.mainmenuhud.size;
  444.         for(i=0; i<loop; i++)
  445.             text += level.mainmenuhud[i].name + "\n \n";
  446.     }
  447.     else
  448.     {
  449.         for(i=scroll; i<scroll + level.itemTillScroll; i++)
  450.             text += level.mainmenuhud[i].name + "\n \n";
  451.     }
  452.     return text;
  453. }
  454. moveHudX(hud, xamount, time)
  455. {
  456.     hud moveOverTime(time); hud.x =  hud.x + xamount;
  457. }
  458. moveHudY(hud, yamount, time)
  459. {
  460.     hud moveOverTime(time); hud.y = hud.y + yamount;
  461. }
  462. addTextHud( who, x, y, alpha, alignX, alignY, fontScale, sort )
  463. {
  464.     if( isPlayer( who ) )
  465.         hud = newClientHudElem( who );
  466.     else
  467.         hud = newHudElem();
  468.     hud.x = x;
  469.     hud.y = y;
  470.     hud.alpha = alpha;
  471.     hud.sort = sort;
  472.     hud.alignX = alignX;
  473.     hud.alignY = alignY;
  474.     if(fontScale != 0)
  475.         hud.fontScale = fontScale;
  476.     return hud;
  477. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement