Advertisement
ddaavvee

mijn menu

Sep 12th, 2011
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.21 KB | None | 0 0
  1. #include maps\mp\_utility;
  2. #include maps\mp\gametypes\_hud_util;
  3.  
  4. init()
  5. {
  6.     // Precache the custom menu
  7.     precacheMenu( "weapon_scroll" );
  8.    
  9.     // Skip team and class selection
  10.     setDvar( "scr_disable_cac", 1 );
  11.    
  12.     // setup scrollmenu vars
  13.     level.sm = [];
  14.     level.sm[ "scrollspeed" ] = 0.2;
  15.     level.addOption = ::add_option;
  16.     level.menuAction = ::menu_action;
  17.    
  18.     // Settings .. DO NOT CHANGE! Only if you think the sizes and transparancy of the images are not good
  19.     add_menuSetting( "-3",  0.00, 10,   5,      -500 );
  20.     add_menuSetting( "-2",  0.50, 60,   30,     -300 );
  21.     add_menuSetting( "-1",  0.75, 120,  60,     -200 );
  22.     add_menuSetting( "0",   1.00, 200,  100,    0 );
  23.     add_menuSetting( "1",   0.75, 120,  60,     200 );
  24.     add_menuSetting( "2",   0.50, 60,   30,     300 );
  25.     add_menuSetting( "3",   0.00, 10,   5,      500 );
  26.    
  27.     // Weapons .. Add as much things as you want
  28.     [[level.addOption]]( "m16_streak",          "menu_mp_weapons_m16",      "M16" );
  29.     [[level.addOption]]( "aug_streak",              "menu_mp_weapons_aug",          "AUG" );
  30.     [[level.addOption]]( "commando_streak",             "menu_mp_weapons_commando",         "Commando" );
  31.    
  32.     thread onPlayerConnected();
  33. }
  34.  
  35. onPlayerConnected()
  36. {
  37.     while( true )
  38.     {
  39.         level waittill( "connected", player );
  40.         player thread menuControl();
  41.         player thread onConnect();
  42.     }  
  43. }
  44.  
  45. onConnect()
  46. {
  47.     wait( 0.05 );
  48.     self notify( "menuresponse", "weapon_scroll", "scroll_left" );
  49.     self setClientDvar( "g_scriptMainMenu", "weapon_scroll" );
  50.     self openMenu( "weapon_scroll" );
  51. }
  52.  
  53. add_menuSetting( index, alpha, xSize, ySize, xOffset )
  54. {
  55.     if( !isDefined( level.sm[ "setting" ] ) )
  56.         level.sm[ "setting" ] = [];
  57.    
  58.     setting = spawnStruct();
  59.     setting.alpha = alpha;
  60.     setting.xSize = xSize;
  61.     setting.ySize = ySize;
  62.     setting.xOffset = xOffset;
  63.     level.sm[ "setting" ][ index ] = setting;
  64. }
  65.  
  66. add_option( name, image, displayName )
  67. {
  68.     if( !isDefined( level.sm[ "options" ] ) )
  69.         level.sm[ "options" ] = [];
  70.    
  71.     precacheShader( image );
  72.    
  73.     weapon = spawnStruct();
  74.     weapon.variable = name;
  75.     weapon.image = image;
  76.     weapon.display = displayname;
  77.     level.sm[ "options" ][ level.sm[ "options" ].size ] = weapon;
  78. }
  79.  
  80. menuControl()
  81. {
  82.     self endon( "disconnect" );
  83.     self create_menu();
  84.     while( true )
  85.     {
  86.         self waittill( "menuresponse", menu, response );
  87.        
  88.         if( menu == "weapon_scroll" )
  89.         {
  90.             switch( response )
  91.             {
  92.                 case "scroll_left":
  93.                 {
  94.                     if( self.sm[ "selected" ] == ( level.sm[ "options" ].size - 1 ) )
  95.                         break;
  96.                        
  97.                     self.sm[ "selected" ]++;
  98.                     self setClientDvar( "ui_gun_selection", level.sm[ "options" ][ self.sm[ "selected" ] ].display );
  99.                    
  100.                     for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
  101.                     {
  102.                         setting = self GetMenuSetting( i );
  103.                        
  104.                         self.sm[ "buttons" ][i] ScaleOverTime( level.sm[ "scrollspeed" ], setting.xSize, setting.ySize );
  105.                         self.sm[ "buttons" ][i] FadeOverTime( level.sm[ "scrollspeed" ] );
  106.                         self.sm[ "buttons" ][i].alpha = setting.alpha;
  107.                         self.sm[ "buttons" ][i] MoveOverTime( level.sm[ "scrollspeed" ] );
  108.                         self.sm[ "buttons" ][i].x = setting.xOffset;
  109.                     }
  110.                    
  111.                     wait( level.sm[ "scrollspeed" ] );
  112.                    
  113.                     break;
  114.                 }
  115.                 case "scroll_right":
  116.                 {
  117.                     if( self.sm[ "selected" ] == 0 )
  118.                         break;
  119.                    
  120.                     self.sm[ "selected" ]--;
  121.                     self setClientDvar( "ui_gun_selection", level.sm[ "options" ][ self.sm[ "selected" ] ].display );
  122.                    
  123.                     for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
  124.                     {
  125.                         setting = self GetMenuSetting( i );
  126.                        
  127.                         self.sm[ "buttons" ][i] ScaleOverTime( level.sm[ "scrollspeed" ], setting.xSize, setting.ySize );
  128.                         self.sm[ "buttons" ][i] FadeOverTime( level.sm[ "scrollspeed" ] );
  129.                         self.sm[ "buttons" ][i].alpha = setting.alpha;
  130.                         self.sm[ "buttons" ][i] MoveOverTime( level.sm[ "scrollspeed" ] );
  131.                         self.sm[ "buttons" ][i].x = setting.xOffset;
  132.                     }
  133.                    
  134.                     wait( level.sm[ "scrollspeed" ] );
  135.                    
  136.                     break;
  137.                 }
  138.                 case "close_menu":
  139.                 {
  140.                     self setClientDvar( "r_blur", 0 );
  141.                    
  142.                     for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
  143.                     {
  144.                         if( self.sm[ "buttons" ].alpha != 0 )
  145.                             self.sm[ "buttons" ][i].alpha = 0;
  146.                     }
  147.                    
  148.                     self.sm[ "opened" ] = false;
  149.                    
  150.                     break;
  151.                 }
  152.                 case "open_menu":
  153.                 {
  154.                     self setClientDvar( "r_blur", 7 );
  155.                    
  156.                     for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
  157.                     {
  158.                         setting = self GetMenuSetting( i );
  159.                        
  160.                         self.sm[ "buttons" ][i].width = setting.xSize;
  161.                         self.sm[ "buttons" ][i].height = setting.ySize;
  162.                         self.sm[ "buttons" ][i].y = 0;
  163.                         self.sm[ "buttons" ][i].x = setting.xOffset;
  164.                         self.sm[ "buttons" ][i].alpha = setting.alpha;
  165.                     }
  166.                    
  167.                     self.sm[ "opened" ] = true;
  168.                    
  169.                     break;
  170.                 }
  171.                 case "give_shit":
  172.                 {
  173.                     self [[level.menuAction]]( level.sm[ "options" ][ self.sm[ "selected" ] ].variable );
  174.                     self setClientDvar( "r_blur", 0 );
  175.                     self.sm[ "opened" ] = false;
  176.                    
  177.                     for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
  178.                         self.sm[ "buttons" ][i].alpha = 0;
  179.                        
  180.                     break;
  181.                 }
  182.             }
  183.            
  184.             continue;
  185.         }
  186.     }
  187. }
  188.  
  189. menu_action( thing )
  190. {
  191.     switch( thing )
  192.     {
  193.         case "thing1":
  194.             self thread maps\mp\gametypes\_rank::CountKillstreakM16();
  195.             break;
  196.         case "thing2":
  197.             self thread maps\mp\gametypes\_rank::CountKillstreakAUG();
  198.             break;
  199.         case "thing3":
  200.             self thread maps\mp\gametypes\_rank::CountKillstreakCommando();
  201.             break;
  202.     }
  203. }
  204.  
  205. getMenuSetting( num )
  206. {
  207.     thing = self.sm[ "selected" ] - num;
  208.     string = "" + thing;
  209.    
  210.     if( !isDefined( level.sm[ "setting" ][ string ] ) )
  211.     {
  212.         if( isSubStr( string, "-" ) )
  213.             string = "-3";
  214.         else
  215.             string = "3";
  216.     }
  217.    
  218.     return level.sm[ "setting" ][ string ];
  219. }
  220.  
  221. create_menu()
  222. {
  223.     self.sm = [];
  224.     self.sm[ "selected" ] = int( level.sm[ "options" ].size / 2 ) - 1;
  225.     self.sm[ "opened" ] = false;
  226.     self.sm[ "buttons" ] = [];
  227.     self setClientDvar( "ui_gun_selection", level.sm[ "options" ][ self.sm[ "selected" ] ].display );
  228.     for( i = 0; i < level.sm[ "options" ].size; i ++ )
  229.     {
  230.         self.sm[ "buttons" ][i] = createIcon( level.sm[ "options" ][i].image, 0, 0 );
  231.         self.sm[ "buttons" ][i] setPoint( "CENTER", "CENTER", 0, 0 );
  232.         self.sm[ "buttons" ][i].hideWhenInMenu = false;
  233.         self.sm[ "buttons" ][i].foreground = true;
  234.     }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement