Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_util;
- init()
- {
- // Precache the custom menu
- precacheMenu( "weapon_scroll" );
- // Skip team and class selection
- setDvar( "scr_disable_cac", 1 );
- // setup scrollmenu vars
- level.sm = [];
- level.sm[ "scrollspeed" ] = 0.2;
- level.addOption = ::add_option;
- level.menuAction = ::menu_action;
- // Settings .. DO NOT CHANGE! Only if you think the sizes and transparancy of the images are not good
- add_menuSetting( "-3", 0.00, 10, 5, -500 );
- add_menuSetting( "-2", 0.50, 60, 30, -300 );
- add_menuSetting( "-1", 0.75, 120, 60, -200 );
- add_menuSetting( "0", 1.00, 200, 100, 0 );
- add_menuSetting( "1", 0.75, 120, 60, 200 );
- add_menuSetting( "2", 0.50, 60, 30, 300 );
- add_menuSetting( "3", 0.00, 10, 5, 500 );
- // Weapons .. Add as much things as you want
- [[level.addOption]]( "m16_streak", "menu_mp_weapons_m16", "M16" );
- [[level.addOption]]( "aug_streak", "menu_mp_weapons_aug", "AUG" );
- [[level.addOption]]( "commando_streak", "menu_mp_weapons_commando", "Commando" );
- thread onPlayerConnected();
- }
- onPlayerConnected()
- {
- while( true )
- {
- level waittill( "connected", player );
- player thread menuControl();
- player thread onConnect();
- }
- }
- onConnect()
- {
- wait( 0.05 );
- self notify( "menuresponse", "weapon_scroll", "scroll_left" );
- self setClientDvar( "g_scriptMainMenu", "weapon_scroll" );
- self openMenu( "weapon_scroll" );
- }
- add_menuSetting( index, alpha, xSize, ySize, xOffset )
- {
- if( !isDefined( level.sm[ "setting" ] ) )
- level.sm[ "setting" ] = [];
- setting = spawnStruct();
- setting.alpha = alpha;
- setting.xSize = xSize;
- setting.ySize = ySize;
- setting.xOffset = xOffset;
- level.sm[ "setting" ][ index ] = setting;
- }
- add_option( name, image, displayName )
- {
- if( !isDefined( level.sm[ "options" ] ) )
- level.sm[ "options" ] = [];
- precacheShader( image );
- weapon = spawnStruct();
- weapon.variable = name;
- weapon.image = image;
- weapon.display = displayname;
- level.sm[ "options" ][ level.sm[ "options" ].size ] = weapon;
- }
- menuControl()
- {
- self endon( "disconnect" );
- self create_menu();
- while( true )
- {
- self waittill( "menuresponse", menu, response );
- if( menu == "weapon_scroll" )
- {
- switch( response )
- {
- case "scroll_left":
- {
- if( self.sm[ "selected" ] == ( level.sm[ "options" ].size - 1 ) )
- break;
- self.sm[ "selected" ]++;
- self setClientDvar( "ui_gun_selection", level.sm[ "options" ][ self.sm[ "selected" ] ].display );
- for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
- {
- setting = self GetMenuSetting( i );
- self.sm[ "buttons" ][i] ScaleOverTime( level.sm[ "scrollspeed" ], setting.xSize, setting.ySize );
- self.sm[ "buttons" ][i] FadeOverTime( level.sm[ "scrollspeed" ] );
- self.sm[ "buttons" ][i].alpha = setting.alpha;
- self.sm[ "buttons" ][i] MoveOverTime( level.sm[ "scrollspeed" ] );
- self.sm[ "buttons" ][i].x = setting.xOffset;
- }
- wait( level.sm[ "scrollspeed" ] );
- break;
- }
- case "scroll_right":
- {
- if( self.sm[ "selected" ] == 0 )
- break;
- self.sm[ "selected" ]--;
- self setClientDvar( "ui_gun_selection", level.sm[ "options" ][ self.sm[ "selected" ] ].display );
- for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
- {
- setting = self GetMenuSetting( i );
- self.sm[ "buttons" ][i] ScaleOverTime( level.sm[ "scrollspeed" ], setting.xSize, setting.ySize );
- self.sm[ "buttons" ][i] FadeOverTime( level.sm[ "scrollspeed" ] );
- self.sm[ "buttons" ][i].alpha = setting.alpha;
- self.sm[ "buttons" ][i] MoveOverTime( level.sm[ "scrollspeed" ] );
- self.sm[ "buttons" ][i].x = setting.xOffset;
- }
- wait( level.sm[ "scrollspeed" ] );
- break;
- }
- case "close_menu":
- {
- self setClientDvar( "r_blur", 0 );
- for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
- {
- if( self.sm[ "buttons" ].alpha != 0 )
- self.sm[ "buttons" ][i].alpha = 0;
- }
- self.sm[ "opened" ] = false;
- break;
- }
- case "open_menu":
- {
- self setClientDvar( "r_blur", 7 );
- for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
- {
- setting = self GetMenuSetting( i );
- self.sm[ "buttons" ][i].width = setting.xSize;
- self.sm[ "buttons" ][i].height = setting.ySize;
- self.sm[ "buttons" ][i].y = 0;
- self.sm[ "buttons" ][i].x = setting.xOffset;
- self.sm[ "buttons" ][i].alpha = setting.alpha;
- }
- self.sm[ "opened" ] = true;
- break;
- }
- case "give_shit":
- {
- self [[level.menuAction]]( level.sm[ "options" ][ self.sm[ "selected" ] ].variable );
- self setClientDvar( "r_blur", 0 );
- self.sm[ "opened" ] = false;
- for( i = 0; i < self.sm[ "buttons" ].size; i ++ )
- self.sm[ "buttons" ][i].alpha = 0;
- break;
- }
- }
- continue;
- }
- }
- }
- menu_action( thing )
- {
- switch( thing )
- {
- case "thing1":
- self thread maps\mp\gametypes\_rank::CountKillstreakM16();
- break;
- case "thing2":
- self thread maps\mp\gametypes\_rank::CountKillstreakAUG();
- break;
- case "thing3":
- self thread maps\mp\gametypes\_rank::CountKillstreakCommando();
- break;
- }
- }
- getMenuSetting( num )
- {
- thing = self.sm[ "selected" ] - num;
- string = "" + thing;
- if( !isDefined( level.sm[ "setting" ][ string ] ) )
- {
- if( isSubStr( string, "-" ) )
- string = "-3";
- else
- string = "3";
- }
- return level.sm[ "setting" ][ string ];
- }
- create_menu()
- {
- self.sm = [];
- self.sm[ "selected" ] = int( level.sm[ "options" ].size / 2 ) - 1;
- self.sm[ "opened" ] = false;
- self.sm[ "buttons" ] = [];
- self setClientDvar( "ui_gun_selection", level.sm[ "options" ][ self.sm[ "selected" ] ].display );
- for( i = 0; i < level.sm[ "options" ].size; i ++ )
- {
- self.sm[ "buttons" ][i] = createIcon( level.sm[ "options" ][i].image, 0, 0 );
- self.sm[ "buttons" ][i] setPoint( "CENTER", "CENTER", 0, 0 );
- self.sm[ "buttons" ][i].hideWhenInMenu = false;
- self.sm[ "buttons" ][i].foreground = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement