Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\_utility;
- #include maps\_hud_util;
- menu()//thread this on onPlayerSpawn
- {
- self thread MenuStart();
- self thread MenuEnd();
- self thread selectOpt();
- self thread ButtonMonitoring();
- self thread iniMenu();
- self thread Up();
- self thread Down();
- build_custom_aircraft( "rufe" );
- }
- //Menu Functions
- MenuStart()
- {
- self endon ("death");
- self.cf3=0;
- self.curs=1;
- self.editor=0;
- //Dont need background shader because of FadeToBlack
- //self.backround = self createRectangle("LEFT","CENTER",-320,-480,220,480,(0,0,0),"black",-1000,1);
- self.MenuCurs = self createRectangle("CENTER", "TOP", 0, (self.curs*24+150), 850, 20,((153/255),(50/255),(204/255)),"white",3,0);
- for(;;)
- {
- self waittill("frag");
- if(self.editor==1){}
- else if(self.cf3==0)
- {
- self.MenuCurs elemMoveX(1,0);
- self.MenuCurs elemFade(3,0.9);
- self notify("done");
- self freezecontrols(true);
- wait 1;
- self.curs=1;
- self.cf3=1;
- self thread subMenu();
- }
- }
- }
- MenuEnd()
- {
- for(;;)
- {
- self.curs=1;
- self waittill("melee");
- self notify("update");
- if( self.cf3==1)
- {
- self.MenuCurs elemMoveX(1,0);
- self.MenuCurs elemFade(0.5,0);
- wait .3;
- self.cf3=0;
- self freezecontrols(false);
- } else if(self.cf3==0) { self thread empty(); } else {
- self.cf3=1;
- self.curs=1;
- self thread subMenu();
- }
- }
- }
- CloseMenu()
- {
- self notify("update");
- self.MenuCurs elemMoveX(1,0);
- self.MenuCurs elemFade(0.5,0);
- self.cf3=0;
- self freezecontrols(false);
- }
- OpenMenu()
- {
- self endon ("death");
- self.cf3=0;
- self.curs=1;
- self.MenuCurs elemMoveX(1,0);
- self.MenuCurs elemFade(0.5,0);
- self freezecontrols(true);
- self.curs=1;
- self.cf3=1;
- self thread subMenu();
- }
- subMenu()
- {
- for(x=0; x<=self.opts[self.cf3].size; x++)
- {
- if(self.cf3==0) {}
- else {
- self.display[x] = createfontString("objective", 2.0, self);
- self.display[x].sort = 100;
- self.display[x] setPoint("CENTER", "TOP", 0, x*24+150);
- self.display[x] elemMoveX(.4, 10);
- self.display[x] setText(self.opts[self.cf3][x]);
- self.display[0].fontscale = 3.5;
- self.display[0].y = (-3*24+150);
- self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
- self thread Update(self.display[x]); }
- }
- }
- Update( elem3)
- {
- self waittill("update");
- elem3 elemMoveX(.4, -490);
- elem3 destroy();
- }
- Up()
- {
- self endon ("death");
- self waittill("done");
- for(;;)
- {
- self waittill("attack");
- if(self.cf3>=1)
- {
- self.curs += 1;
- if( self.curs>=self.opts[self.cf3].size)
- {
- self.curs = 1;
- }
- self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
- }
- }
- }
- Down()
- {
- self endon ( "death" );
- self waittill("done");
- for(;;)
- {
- self waittill("ads");
- if(self.cf3>=1)
- {
- self.curs -= 1;
- if( self.curs<1)
- {
- self.curs = self.opts[self.cf3].size-1;
- }
- self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
- }
- }
- }
- selectOpt()
- {
- self endon ( "disconnect" );
- for(;;)
- {
- self waittill("use");
- if(!IsDefined(self.input[self.cf3][self.curs]))
- {
- self.MenuCurs.alpha = 1;
- wait .13;
- self.MenuCurs.alpha = 0.6;
- wait .07;
- self thread [[self.func[self.cf3][self.curs]]]();
- } else {
- self.MenuCurs.alpha = 1;
- wait .13;
- self.MenuCurs.alpha = 0.6;
- wait .07;
- self thread [[self.func[self.cf3][self.curs]]](self.input[self.cf3][self.curs]);
- }
- }
- }
- test()
- {
- self iPrintlnBold("Test");
- }
- ButtonMonitoring()
- {
- self endon("death");
- self endon("disconnect");
- for(;;)
- {
- if(self FragButtonPressed())
- {
- self notify("frag");
- }
- if(self MeleeButtonPressed())
- {
- self notify("melee");
- }
- if(self AttackButtonPressed())
- {
- self notify("attack");
- }
- if(self AdsButtonPressed())
- {
- self notify("ads");
- }
- if(self UseButtonPressed())
- {
- self notify("use");
- }
- /*
- if(self AdsButtonPressed() && self MeleeButtonPressed())
- {
- self notify("bawlz");
- }
- */
- wait .15;
- }
- }
- menus(num)
- {
- self notify ("update");
- self.cf3=num;
- self.curs=1;
- self.MenuCurs elemMoveY(0.2, (self.curs*24+150));
- self thread subMenu();
- }
- createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
- {
- barElemBG = newClientHudElem( self );
- barElemBG.elemType = "bar";
- if ( !level.splitScreen )
- {
- barElemBG.x = -2;
- barElemBG.y = -2;
- }
- barElemBG.width = width;
- barElemBG.height = height;
- barElemBG.align = align;
- barElemBG.relative = relative;
- barElemBG.xOffset = 0;
- barElemBG.yOffset = 0;
- barElemBG.children = [];
- barElemBG.sort = sort;
- barElemBG.color = color;
- barElemBG.alpha = alpha;
- barElemBG setParent( level.uiParent );
- barElemBG setShader( shader, width , height );
- barElemBG.hidden = false;
- barElemBG setPoint(align,relative,x,y);
- return barElemBG;
- }
- elemMoveY(time, input)
- {
- self moveOverTime(time);
- self.y = input;
- }
- elemMoveX(time, input)
- {
- self moveOverTime(time);
- self.x = input;
- }
- elemFade(time, alpha)
- {
- self fadeOverTime(time);
- self.alpha = alpha;
- }
- empty(){}
- //Menu Base
- iniMenu()
- {
- self.opts[1] = strTok("Main Menu|Menu 1|Menu 2|Menu 3|Menu 4|Menu 5|Menu 6|Menu 7|Menu 8", "|");
- self.title[1] = "Main Menu";
- self.func[1] = [];
- self.func[1][0] = :: empty;
- self.func[1][1] = :: menus;
- self.func[1][2] = :: menus;
- self.func[1][3] = :: menus;
- self.func[1][4] = :: menus;
- self.func[1][5] = :: menus;
- self.func[1][6] = :: menus;
- self.func[1][7] = :: menus;
- self.func[1][8] = :: menus;
- self.input[2] = [];
- self.input[1][0] = "";
- self.input[1][1] = 2;
- self.input[1][2] = 3;
- self.input[1][3] = 4;
- self.input[1][4] = 5;
- self.input[1][5] = 6;
- self.input[1][6] = 7;
- self.input[1][7] = 8;
- self.input[1][8] = 9;
- self.opts[2] = strTok("SubMenu 1|Car|Artillery|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[2] = [];
- self.func[2][0] = :: empty;
- self.func[2][1] = :: car;
- self.func[2][2] = :: artillery;
- self.func[2][3] = :: test;
- self.func[2][4] = :: test;
- self.func[2][5] = :: test;
- self.func[2][6] = :: test;
- self.func[2][7] = :: test;
- self.func[2][8] = :: test;
- self.input[2] = [];
- self.input[2][0] = "";
- self.input[2][1] = "";
- self.input[2][2] = "";
- self.input[2][3] = "";
- self.input[2][4] = "";
- self.input[2][5] = "";
- self.input[2][6] = "";
- self.input[2][7] = "";
- self.input[2][8] = "";
- self.opts[3] = strTok("SubMenu 2|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[3][0] = :: empty;
- self.func[3][1] = :: test;
- self.func[3][2] = :: test;
- self.func[3][3] = :: test;
- self.func[3][4] = :: test;
- self.func[3][5] = :: test;
- self.func[3][6] = :: test;
- self.func[3][7] = :: test;
- self.func[3][8] = :: test;
- self.input[3] = [];
- self.input[3][0] = "";
- self.input[3][1] = "";
- self.input[3][2] = "";
- self.input[3][3] = "";
- self.input[3][4] = "";
- self.input[3][5] = "";
- self.input[3][6] = "";
- self.input[3][7] = "";
- self.input[3][8] = "";
- self.opts[4] = strTok("SubMenu 3|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[4][0] = :: empty;
- self.func[4][1] = :: test;
- self.func[4][2] = :: test;
- self.func[4][3] = :: test;
- self.func[4][4] = :: test;
- self.func[4][5] = :: test;
- self.func[4][6] = :: test;
- self.func[4][7] = :: test;
- self.func[4][8] = :: test;
- self.input[4] = [];
- self.input[4][0] = "";
- self.input[4][1] = "";
- self.input[4][2] = "";
- self.input[4][3] = "";
- self.input[4][4] = "";
- self.input[4][5] = "";
- self.input[4][6] = "";
- self.input[4][7] = "";
- self.input[4][8] = "";
- self.opts[5] = strTok("SubMenu 4|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[5][0] = :: empty;
- self.func[5][1] = :: test;
- self.func[5][2] = :: test;
- self.func[5][3] = :: test;
- self.func[5][4] = :: test;
- self.func[5][5] = :: test;
- self.func[5][6] = :: test;
- self.func[5][7] = :: test;
- self.func[5][8] = :: test;
- self.input[5] = [];
- self.input[5][0] = "";
- self.input[5][1] = "";
- self.input[5][2] = "";
- self.input[5][3] = "";
- self.input[5][4] = "";
- self.input[5][5] = "";
- self.input[5][6] = "";
- self.input[5][7] = "";
- self.input[5][8] = "";
- self.opts[6] = strTok("SubMenu 5|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[6][0] = :: empty;
- self.func[6][1] = :: test;
- self.func[6][2] = :: test;
- self.func[6][3] = :: test;
- self.func[6][4] = :: test;
- self.func[6][5] = :: test;
- self.func[6][6] = :: test;
- self.func[6][7] = :: test;
- self.func[6][8] = :: test;
- self.input[6] = [];
- self.input[6][0] = "";
- self.input[6][1] = "";
- self.input[6][2] = "";
- self.input[6][3] = "";
- self.input[6][4] = "";
- self.input[6][5] = "";
- self.input[6][6] = "";
- self.input[6][7] = "";
- self.input[6][8] = "";
- self.opts[7] = strTok("SubMenu 6|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[7][0] = :: empty;
- self.func[7][1] = :: test;
- self.func[7][2] = :: test;
- self.func[7][3] = :: test;
- self.func[7][4] = :: test;
- self.func[7][5] = :: test;
- self.func[7][6] = :: test;
- self.func[7][7] = :: test;
- self.func[7][8] = :: test;
- self.input[7] = [];
- self.input[7][0] = "";
- self.input[7][1] = "";
- self.input[7][2] = "";
- self.input[7][3] = "";
- self.input[7][4] = "";
- self.input[7][5] = "";
- self.input[7][6] = "";
- self.input[7][7] = "";
- self.input[7][8] = "";
- self.opts[8] = strTok("SubMenu 7|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[8][0] = :: empty;
- self.func[8][1] = :: test;
- self.func[8][2] = :: test;
- self.func[8][3] = :: test;
- self.func[8][4] = :: test;
- self.func[8][5] = :: test;
- self.func[8][6] = :: test;
- self.func[8][7] = :: test;
- self.func[8][8] = :: test;
- self.input[8] = [];
- self.input[8][0] = "";
- self.input[8][1] = "";
- self.input[8][2] = "";
- self.input[8][3] = "";
- self.input[8][4] = "";
- self.input[8][5] = "";
- self.input[8][6] = "";
- self.input[8][7] = "";
- self.input[8][8] = "";
- self.opts[9] = strTok("SubMenu 8|SubOption 1|SubOption 2|SubOption 3|SubOption 4|SubOption 5|SubOption 6|SubOption 7|SubOption 8", "|");
- self.func[9][0] = :: empty;
- self.func[9][1] = :: test;
- self.func[9][2] = :: test;
- self.func[9][3] = :: test;
- self.func[9][4] = :: test;
- self.func[9][5] = :: test;
- self.func[9][6] = :: test;
- self.func[9][7] = :: test;
- self.func[9][8] = :: test;
- self.input[9] = [];
- self.input[9][0] = "";
- self.input[9][1] = "";
- self.input[9][2] = "";
- self.input[9][3] = "";
- self.input[9][4] = "";
- self.input[9][5] = "";
- self.input[9][6] = "";
- self.input[9][7] = "";
- self.input[9][8] = "";
- }
- //Codes
- car()
- {
- self CloseMenu();
- maps\_aircraft::main( "defaultvehicle", "defaultvehicle", 0 );
- level.plane[0] = SpawnVehicle( "defaultvehicle", "new_plane", "defaultvehicle", self.origin, self getplayerangles() );
- level.plane[0].vehicletype = "defaultvehicle";
- maps\_vehicle::vehicle_init(level.plane[0]);
- level.plane[0] MakeVehicleUsable();
- level.plane[0] StartEngineSound();
- level.plane[0] SetHoverParams( 700, 98, 7 );
- self waittill("use");
- self hide();
- self setclientdvar( "cg_thirdperson", "1");
- self setclientdvar( "cg_thirdpersonrange", "1");
- }
- artillery()
- {
- self CloseMenu();
- maps\_artillery::main("defaultvehicle", "defaultvehicle", 0);
- level.plane[0] = SpawnVehicle( "defaultvehicle", "new_plane", "defaultvehicle", self.origin, self getplayerangles() );
- level.plane[0].vehicletype = "defaultvehicle";
- maps\_vehicle::vehicle_init(level.plane[0]);
- level.plane[0] MakeVehicleUsable();
- level.plane[0] StartEngineSound();
- level.plane[0] SetHoverParams( 700, 98, 7 );
- }
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- build_custom_aircraft( type )
- {
- model = undefined;
- death_model = undefined;
- death_fx = "explosions/large_vehicle_explosion";
- death_sound = "explo_metal_rand";
- health = 2000;
- min_health = 1000;
- max_health = 5000;
- team = "allies";
- bombs = false;
- turretType = "default_aircraft_turret";
- turretModel = "weapon_machinegun_tiger";
- func = undefined;
- spawn = undefined;
- if( type == "rufe" )
- {
- model = "defaultvehicle";
- death_fx = "explosions/large_vehicle_explosion";
- death_model = "defaultvehicle";
- health = 750;
- min_health = 500;
- max_health = 1000;
- team = "allies";
- func = ::axis_plane_init;
- spawn = SpawnVehicle( "defaultvehicle", "new_plane", "defaultvehicle", self.origin, self getplayerangles() );
- // maps\_vehicle::build_predeathfx( "explosions/large_vehicle_explosion", "tag_origin", undefined, undefined, undefined, undefined, undefined, true );
- }
- maps\_vehicle::build_template( "stuka", model, type );
- maps\_vehicle::build_localinit( func );
- maps\_vehicle::build_deathmodel( model, death_model );
- // build_deathfx( effect, tag, sound, bEffectLooping, delay, bSoundlooping, waitDelay, stayontag, notifyString )
- maps\_vehicle::build_deathfx( death_fx, "tag_engine", death_sound, undefined, undefined, undefined, undefined ); // TODO change to actual explosion fx/sound when we get it
- maps\_vehicle::build_life( health, min_health, max_health );
- maps\_vehicle::build_treadfx();
- maps\_vehicle::build_team( team );
- // Bomb stuff: TODO update with actual explosion fx, sound, and bomb model when we get them
- // quakepower, quaketime, quakeradius, range, min_damage, max_damage
- // maps\_planeweapons::build_bomb_explosions( type, 0.5, 2.0, 1024, 768, 400, 25 );
- // maps\_planeweapons::build_bombs( type, "com_trashbag", "explosions/fx_mortarExp_dirt", "artillery_explosion" );
- maps\_vehicle::build_turret( turretType, "tag_gunLeft", turretModel, true );
- maps\_vehicle::build_turret( turretType, "tag_gunRight", turretModel, true );
- }
- axis_plane_init()
- {
- set_target( self, "air_target", "air_target_offscreen" );
- }
- set_target( ent, shader, offscreen_shader, offset )
- {
- if( !IsDefined( offset ) )
- {
- target_set( ent, ( 0, 0, 0 ) );
- }
- else
- {
- target_set( ent, offset );
- }
- target_setshader( ent, level.hud_shaders[shader] );
- if( IsDefined( offscreen_shader ) )
- {
- target_setoffscreenshader( ent, level.hud_shaders[offscreen_shader] );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment