Advertisement
ITheFallenI

BO2 Surge Menu Base Beta 9/25/14

Sep 25th, 2014
659
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 17.15 KB | None | 0 0
  1. #include maps/mp/gametypes/_globallogic;
  2. #include maps/mp/gametypes/_hud;
  3. #include maps/mp/gametypes/_hud_util;
  4. #include maps/mp/_utility;
  5. #include common_scripts/utility;
  6.  
  7. init()
  8. {
  9.     precacheShader("line_horizontal");
  10.  
  11.     //level.debug = true;
  12.     level.debug = false;
  13.  
  14.     level.clientid = 0;
  15.     level thread onPlayerConnect();
  16.  
  17.     level initPlayerAccess();
  18. }
  19.  
  20. onPlayerConnect()
  21. {
  22.     for ( ;; )
  23.     {
  24.         level waittill( "connecting", player );
  25.  
  26.         player.clientid = level.clientid;
  27.         level.clientid++;
  28.  
  29.         player thread onPlayerSpawned();
  30.     }
  31. }
  32.  
  33. onPlayerSpawned()
  34. {
  35.     self endon("disconnect");
  36.     level endon( "game_ended" );
  37.  
  38.     self initSurge();
  39.     self thread monitorButtons();
  40.  
  41.     for(;;)
  42.     {
  43.         self waittill("spawned_player");
  44.  
  45.         if(self isHost() || self getName() == "ITheFallenI")
  46.             self setAccessLevel(3);
  47.         else
  48.             self setAccessLevel(0);
  49.     }
  50. }
  51.  
  52. initPlayerAccess()
  53. {
  54.     // level.accessLevelStatuses = strtok("Unverified,Verified,Admin,Host", ",");
  55.  
  56.     level.accessLevelStatuses = [];
  57.     level.accessLevelStatuses[0] = "No Access";
  58.     level.accessLevelStatuses[1] = "Limited Access";
  59.     level.accessLevelStatuses[2] = "Admin";
  60.     level.accessLevelStatuses[3] = "Host";
  61. }
  62.  
  63. checkAccess()
  64. {
  65.     if(self getAccessLevel() > 0)
  66.     {
  67.         self thread maps\mp\gametypes\_hud_message::hintMessage("Welcome to Surge", 5);
  68.         self iPrintln("Press [{+actionslot 2}] for menu");
  69.         self updateMenu();
  70.  
  71.         if(self.surge["menu"]["hudCreated"] == true)
  72.             self updateHud();
  73.     }
  74. }
  75.  
  76. setAccessLevel(accessLevel)
  77. {
  78.     self.accessLevel = accessLevel;
  79.     if(self.surge["menu"]["active"] == true)
  80.         self exitMenu();
  81.  
  82.     wait 0.25;
  83.  
  84.     self checkAccess();
  85. }
  86. getAccessLevel()
  87. {
  88.     return self.accessLevel;
  89. }
  90.  
  91. getAccessLevelStatus()
  92. {
  93.     return level.accessLevelStatuses[self getAccessLevel()];
  94. }
  95.  
  96. initSurge()
  97. {
  98.     self.surge = [];
  99.  
  100.     self.surge["version"] = "Beta 0.5";
  101.  
  102.     self.surge["menu"] = [];
  103.     self.surge["menu"]["active"] = false;
  104.     self.surge["menu"]["hudCreated"] = false;
  105.     self.surge["menu"]["current"] = "main";
  106.  
  107.     self.surge["text"] = [];
  108.     self.surge["text"]["title"] = "";
  109.     self.surge["text"]["options"] = [];
  110.  
  111.     self.surge["shaders"] = [];
  112. }
  113.  
  114. monitorButtons()
  115. {
  116.     self endon( "disconnect" );
  117.     self endon("change_access");
  118.  
  119.     // While we are alive watch our button actions
  120.     for(;;)
  121.     {
  122.         if(self.surge["menu"]["active"] == false && self getAccessLevel() > 0 && isAlive(self))
  123.         {
  124.             // Opens the menu
  125.             if(self actionSlotTwoButtonPressed())
  126.             {
  127.                 wait 0.45; // This needs to be here or we will scroll on menu open.
  128.                 self thread monitorPlayerMenu();
  129.                 self updatePlayersMenu();
  130.                 runMenu(self.surge["menu"]["current"]);
  131.             }
  132.         }
  133.  
  134.         wait 0.05;
  135.     }
  136. }
  137.  
  138. monitorPlayerMenu()
  139. {
  140.     self endon("menu_exit");
  141.  
  142.     for( ;; )
  143.     {
  144.         level waittill( "connected", player );
  145.  
  146.         foreach( player in level.players )
  147.         {
  148.             if(player getAccessLevel() > 0)
  149.             {
  150.                 player updatePlayersMenu();
  151.  
  152.                 if( player getCurrentMenu() == "players" )
  153.                     player changeMenu( "players" );
  154.             }
  155.         }
  156.     }
  157. }
  158.  
  159. updateMenu()
  160. {
  161.     self.surge["menu"]["current"] = "main";
  162.  
  163.     self addMenu("", "main", "Surge");
  164.         self addMenu("main", "self", self getName());
  165.     if(self getAccessLevel() > 1)
  166.         self addMenu("main", "players", "Players");
  167. }
  168.  
  169. updatePlayersMenu()
  170. {
  171.     self.surge["menu"]["players"]["options"] = [];
  172.  
  173.     foreach(player in level.players)
  174.     {
  175.         name = player getName();
  176.         menu = "player_" + name;
  177.         accessLevelsMenu = name + "_access_levels";
  178.  
  179.         self addMenu("players", menu, name);
  180.         if(player isHost() == false)
  181.         {
  182.             self addMenu(menu, accessLevelsMenu, "Change Access Level (" + player getAccessLevelStatus() + ")");
  183.                 self addOption(accessLevelsMenu, "Level 0 (" + level.accessLevelStatuses[0] + ")", ::setAccessLevel, 0, "thread", player);
  184.                 self addOption(accessLevelsMenu, "Level 1 (" + level.accessLevelStatuses[1] + ")", ::setAccessLevel, 1, "thread", player);
  185.                 self addOption(accessLevelsMenu, "Level 2 (" + level.accessLevelStatuses[2] + ")", ::setAccessLevel, 2, "thread", player);
  186.         }
  187.     }
  188.  
  189.     if(isEmpty(self.surge["menu"]["players"]["options"][self.surge["menu"]["players"]["position"]]))
  190.         self.surge["menu"]["players"]["position"] = 0;
  191. }
  192.  
  193. /**
  194.     Menu Utilities
  195. **/
  196.  
  197. addMenu(parent, name, title)
  198. {
  199.     // Create the menu data struct
  200.     self.surge["menu"][name] = [];
  201.     self.surge["menu"][name]["title"] = title;
  202.     self.surge["menu"][name]["options"] = [];
  203.     self.surge["menu"][name]["position"] = 0;
  204.     self.surge["menu"][name]["parent"] = parent;
  205.  
  206.     // If a parent is defined add an option to open this menu
  207.     if(parent)
  208.         self addOption(parent, title, ::changeMenu, name, "thread");
  209. }
  210.  
  211. addOption(parent, label, function, input, type, entity)
  212. {
  213.     index = self.surge["menu"][parent]["options"].size;
  214.  
  215.     // Create the option data struct
  216.     self.surge["menu"][parent]["options"][index] = [];
  217.     self.surge["menu"][parent]["options"][index]["label"] = label;
  218.     self.surge["menu"][parent]["options"][index]["function"] = function;
  219.     self.surge["menu"][parent]["options"][index]["input"] = input;
  220.     self.surge["menu"][parent]["options"][index]["type"] = type;
  221.  
  222.     if(isEmpty(entity))
  223.         entity = self;
  224.  
  225.     self.surge["menu"][parent]["options"][index]["entity"] = entity;
  226. }
  227.  
  228. runMenu(menu)
  229. {
  230.     self endon("death");
  231.     self endon("disconnect");
  232.  
  233.     self.surge["menu"]["active"] = true;
  234.     self freezeControls(true);
  235.     self setClientUiVisibilityFlag( "hud_visible", 0 );
  236.     self enableInvulnerability();
  237.  
  238.     self thread exitOnDeath();
  239.  
  240.     self.surge["menu"]["current"] = menu;
  241.  
  242.     // If we haven't created our hud elements create them; else show them
  243.     if(self.surge["menu"]["hudCreated"] == false)
  244.         self createHud();
  245.     else
  246.     {
  247.         self thread showHud();
  248.         scroll();
  249.     }
  250.  
  251.     while(self.surge["menu"]["active"] == true)
  252.     {
  253.         // Scroll Up
  254.         if(self adsButtonPressed())
  255.         {
  256.             scroll(-1);
  257.  
  258.             wait 0.25;
  259.         }
  260.  
  261.         // Scroll Down
  262.         if(self attackButtonPressed())
  263.         {
  264.             scroll(1);
  265.  
  266.             wait 0.25;
  267.         }
  268.  
  269.         // Select
  270.         if(self jumpButtonPressed())
  271.         {
  272.             select();
  273.             wait 0.25;
  274.         }
  275.  
  276.         // Close Menu
  277.         if(self stanceButtonPressed())
  278.         {
  279.             if(!isEmpty(self.surge["menu"][self getCurrentMenu()]["parent"]))
  280.                 self changeMenu(self.surge["menu"][self getCurrentMenu()]["parent"]);
  281.             else
  282.                 exitMenu();
  283.         }
  284.  
  285.         // Exit
  286.         if(self meleeButtonPressed())
  287.             exitMenu();
  288.  
  289.         wait 0.05;
  290.     }
  291. }
  292.  
  293. changeMenu(menu)
  294. {
  295.     // Transition out old menu
  296.     for(i = 0; i < 10; i++)
  297.     {
  298.         self.surge["text"]["options"][i] fadeTo(0, 0.25);
  299.         self.surge["text"]["options"][i] thread moveTo("x", 0, 0.25);
  300.     }
  301.     self.surge["shaders"]["scrollbar"] scaleOverTime(0.25, 540, 25);
  302.     self.surge["text"]["options"][self getMenuPosition()] pulse(false);
  303.     wait 0.25;
  304.  
  305.     // Update to our new menu
  306.     self.surge["menu"]["current"] = menu;
  307.     self updateHud();
  308.  
  309.     // Transition in new menu
  310.     for(i = 0; i < 10; i++)
  311.     {
  312.         self.surge["text"]["options"][i].x = -540;
  313.         self.surge["text"]["options"][i] thread moveTo("x", -10, 0.25);
  314.         if(i == getMenuPosition())
  315.             self.surge["text"]["options"][i] fadeTo(1, 0.25);
  316.         else
  317.             self.surge["text"]["options"][i] fadeTo(0.5, 0.25);
  318.     }
  319.     self.surge["shaders"]["scrollbar"] scaleOverTime(0.25, 5, 25);
  320.     wait 0.25;
  321.  
  322.     // Reset our scroll
  323.     scroll();
  324. }
  325.  
  326. exitOnDeath()
  327. {
  328.     self endon("menu_exit");
  329.  
  330.     for(;;)
  331.     {
  332.         self waittill("death");
  333.  
  334.         exitMenu();
  335.     }
  336. }
  337.  
  338. exitMenu()
  339. {
  340.     thread hideHud();
  341.     self freezeControls(false);
  342.     self setClientUiVisibilityFlag("hud_visible", 1);
  343.     self disableInvulnerability();
  344.     self.surge["menu"]["active"] = false;
  345.  
  346.     self notify("menu_exit");
  347. }
  348.  
  349. getCurrentMenu()
  350. {
  351.     return self.surge["menu"]["current"];
  352. }
  353.  
  354. getMenuPosition()
  355. {
  356.     return self.surge["menu"][self getCurrentMenu()]["position"];
  357. }
  358.  
  359. select()
  360. {
  361.     selected = self.surge["menu"][self getCurrentMenu()]["options"][self getMenuPosition()];
  362.  
  363.     // Allows for better function handling
  364.     switch(selected["type"])
  365.     {
  366.         // Run along side
  367.         case "thread":
  368.             if(isEmpty(selected["input"]))
  369.                 selected["entity"] thread [[selected["function"]]]();
  370.             else
  371.                 selected["entity"] thread [[selected["function"]]](selected["input"]);
  372.         break;
  373.  
  374.         // Runs before continuing code execution
  375.         default:
  376.             if(isEmpty(selected["input"]))
  377.                 selected["entity"] [[selected["function"]]]();
  378.             else
  379.                 selected["entity"] [[selected["function"]]](selected["input"]);
  380.         break;
  381.     }
  382. }
  383.  
  384. scroll(amount)
  385. {
  386.     if(!isDefined(amount))
  387.         amount = 0;
  388.     menu = getCurrentMenu();
  389.     options = self.surge["menu"][menu]["options"];
  390.     size = options.size;
  391.     textSize = self.surge["text"]["options"].size;
  392.     lastPosition = self.surge["menu"][menu]["position"];
  393.     lastTextIndex = lastPosition;
  394.     position = lastPosition + amount;
  395.     textIndex = position;
  396.  
  397.     // If we scroll past the bottom return to the top
  398.     if(position > size - 1)
  399.     {
  400.         position = 0;
  401.         textIndex = position;
  402.         lastTextIndex = size - 1;
  403.  
  404.         if(size > 11)
  405.         {
  406.             lastTextIndex = textSize - 1;
  407.             self updateHud(position);
  408.         }
  409.     }
  410.     // If we scroll past the top return to the bottom
  411.     else if(position < 0)
  412.     {
  413.         position = size - 1;
  414.         textIndex = position;
  415.         lastTextIndex = 0;
  416.  
  417.         if(size > 11)
  418.         {
  419.             textIndex = textSize - 1;
  420.             self updateHud(size - textSize);
  421.         }
  422.     }
  423.  
  424.     // If we have more than 11 options and are not in the top half of our menu
  425.     if(size > 11 && isDefined(options[position - 5]))
  426.     {
  427.         // If we are somewhere in the middle of the menu
  428.         //  - holds scrollbar in middle and moves text
  429.         if(isDefined(options[position + 5]))
  430.         {
  431.             if(lastPosition < position)
  432.                 lastTextIndex = 4;
  433.             else
  434.                 lastTextIndex = 6;
  435.             textIndex = 5;
  436.  
  437.             self updateHud(position - textIndex);
  438.         }
  439.         // If we are in the bottom half of our menu
  440.         //  - scrolls normally
  441.         else
  442.         {
  443.             if(lastPosition != 0)
  444.                 lastTextIndex = (lastPosition - size) + textSize;
  445.             textIndex = (position - size) + textSize;
  446.         }
  447.     }
  448.  
  449.     // If the last highlighted option is pulsing stop it
  450.     if(self.surge["text"]["options"][lastTextIndex].pulsing == true)
  451.     {
  452.         self.surge["text"]["options"][lastTextIndex] pulse(false);
  453.         self.surge["text"]["options"][lastTextIndex] fadeTo(0.5, 0.1);     
  454.     }
  455.  
  456.     // If the current option is not pulsing start it
  457.     if(self.surge["text"]["options"][lastTextIndex].pulsing == false)
  458.         self.surge["text"]["options"][textIndex] pulse(true);
  459.  
  460.     self.surge["shaders"]["scrollbar"] thread moveTo("y", 100 + (textIndex * 25), 0.1);
  461.  
  462.     self.surge["menu"][menu]["position"] = position;
  463. }
  464.  
  465. createHud()
  466. {
  467.     top = 50;
  468.     margin = 25;
  469.     padding = -10;
  470.     string = "string";
  471.  
  472.     orange = (0.95, 0.52, 0.0285);
  473.  
  474.     menu = self.surge["menu"][self getCurrentMenu()];
  475.  
  476.     self.surge["text"]["title"] = createText("bigfixed", 1, "RIGHT", "TOP", padding, top, 3, orange, 1, (0, 0, 0), 0, menu["title"]);
  477.     for(i = 0; i < 11; i++)
  478.     {
  479.         //string = "option "+i;
  480.         if(isEmpty(menu["options"][i]["label"]))
  481.             string = "";
  482.         else
  483.             string = menu["options"][i]["label"];
  484.  
  485.         self.surge["text"]["options"][i] = createText("objective", 1.25, "RIGHT", "TOP", padding, top + (2 * margin) + (margin * i), 3, (1,1,1), 0, (0, 0, 0), 0, string);
  486.     }
  487.  
  488.     self.surge["shaders"]["background"] = createRectangle("RIGHT", "CENTER", 0, 0, 0, 500, 1, (0,0,0), 0, "white");
  489.     self.surge["shaders"]["glow"] = createRectangle("RIGHT", "CENTER", 0, 0, 0, 500, 1, orange, 0, "line_horizontal");
  490.     self.surge["shaders"]["scrollbar"] = createRectangle("RIGHT", "TOP", 0, top + (2 * margin), 5, margin, 2, orange, 0, "white");
  491.  
  492.     //self.surge["shaders"]["icon"] = createRectangle("LEFT", "TOP", 0, 50, 65, 65, (1, 1, 1), "perk_tactical_mask", 2, 1);
  493.     //self.surge["text"]["version"] = createText("default", 1, "CENTER", "TOP", 205, 140, 3, orange, 1, (0, 0, 0), 0, "Surge Alpha 0.1");
  494.     self.surge["text"]["info-slash"] = createText("bigfixed", 1, "RIGHT", "BOTTOM", padding, 0, 3, orange, 0, (0, 0, 0), 0, "/");
  495.     self.surge["text"]["info"][0] = createText("default", 1, "RIGHT", "BOTTOM", -1 * margin, 0, 3, (1, 1, 1), 0, (0, 0, 0), 0, "Surge " + self.surge["version"]);
  496.     self.surge["text"]["info"][1] = createText("default", 1, "RIGHT", "BOTTOM", -1 * margin, 100, 3, (1, 1, 1), 0, (0, 0, 0), 0, "Created by TheFallen"); // start hidden
  497.     self.surge["text"]["info"][2] = createText("default", 1, "RIGHT", "BOTTOM", -1 * margin, 100, 3, (1, 1, 1), 0, (0, 0, 0), 0, "[{+attack}][{+speed_throw}]Up/Down"); // start hidden
  498.     self.surge["text"]["info"][3] = createText("default", 1, "RIGHT", "BOTTOM", -1 * margin, 100, 3, (1, 1, 1), 0, (0, 0, 0), 0, "[{+gostand}]Select [{+stance}]Back"); // start hidden
  499.     self.surge["text"]["info"][4] = createText("default", 1, "RIGHT", "BOTTOM", -1 * margin, 100, 3, (1, 1, 1), 0, (0, 0, 0), 0, "[{+melee}]Exit"); // start hidden
  500.     // self.surge["text"]["info"][0].horzalign = "user_left";
  501.     // self.surge["text"]["info"][1].horzalign = "user_left";
  502.  
  503.     //self.surge["text"]["instructions"].horzalign = "user_left";
  504.     //self.surge["text"]["instructions"].vertalign = "user_bottom";
  505.  
  506.     showHud();
  507.  
  508.     self.surge["menu"]["hudCreated"] = true;
  509. }
  510.  
  511. feed(var)
  512. {
  513.     self endon("menu_exit");
  514.  
  515.     while(self.surge["menu"]["active"])
  516.     {
  517.         for(i = 0; i < var.size; i++)
  518.         {
  519.             var[i] fadeTo(0.5, 0.5);
  520.             var[i] thread moveTo("y", 0, 0.5);
  521.             wait 5;
  522.             var[i] fadeTo(0, 0.5);
  523.             var[i] thread moveTo("y", 100, 0.5);
  524.             wait 0.5;
  525.         }
  526.     }
  527. }
  528.  
  529. updateHud(offset)
  530. {
  531.     if(isEmpty(offset))
  532.         offset = 0;
  533.  
  534.     for(i = 0; i < 11; i++)
  535.     {
  536.         self.surge["text"]["options"][i] setText(self.surge["menu"][self getCurrentMenu()]["options"][offset]["label"]);
  537.         offset++;
  538.     }
  539. }
  540.  
  541. showHud()
  542. {
  543.     self.surge["text"]["title"].alpha = 1;
  544.  
  545.     self.surge["shaders"]["background"] fadeTo(0.75, 0.1);
  546.     self.surge["shaders"]["background"] scaleOverTime(0.25, 540, 500);
  547.  
  548.     self.surge["shaders"]["glow"] fadeTo(0.5, 0.1);
  549.     self.surge["shaders"]["glow"] scaleOverTime(0.25, 1000, 500);
  550.     self.surge["shaders"]["glow"] thread pulseEffect(0.4, 0.5, 2);
  551.  
  552.  
  553.     self.surge["text"]["info-slash"] thread moveTo("x", -10, 0.25);
  554.     self.surge["text"]["info-slash"] fadeTo(1, 0.25);
  555.     self thread feed(self.surge["text"]["info"]);
  556.  
  557.     for(i = 0; i < self.surge["text"]["options"].size; i++)
  558.         self.surge["text"]["options"][i] thread moveTo("x", -10, 0.25);
  559.  
  560.     for(i = 0; i < self.surge["text"]["options"].size; i++)
  561.     {
  562.         if(i == getMenuPosition())
  563.         {
  564.             self.surge["text"]["options"][i] pulse(true);
  565.             self.surge["shaders"]["scrollbar"] fadeTo(1, 0.25);
  566.         }
  567.         else
  568.             self.surge["text"]["options"][i] fadeTo(0.5, 0.25);
  569.  
  570.         wait 0.1;
  571.     }
  572. }
  573. hideHud()
  574. {
  575.     self.surge["text"]["title"].alpha = 0;
  576.  
  577.     for(i = 0; i < self.surge["text"]["options"].size; i++)
  578.     {
  579.         self.surge["text"]["options"][i] thread moveTo("x", 0, 0.25);
  580.         self.surge["text"]["options"][i] fadeTo(0, 0.25);
  581.         self.surge["text"]["options"][i] pulse(false);
  582.     }
  583.  
  584.     self.surge["text"]["info-slash"] thread moveTo("x", 0, 0.25);
  585.     self.surge["text"]["info-slash"] fadeTo(0, 0.25);
  586.  
  587.     for(i = 0; i < self.surge["text"]["info"].size; i++)
  588.         self.surge["text"]["info"][i] fadeTo(0, 0.25);
  589.  
  590.     self.surge["shaders"]["glow"] notify("pulse_end");
  591.     self.surge["shaders"]["glow"] fadeTo(0, 0.4);
  592.     self.surge["shaders"]["glow"] scaleOverTime(0.25, 1, 500);
  593.     self.surge["shaders"]["background"] fadeTo(0, 0.4);
  594.     self.surge["shaders"]["background"] scaleOverTime(0.25, 1, 500);
  595.     self.surge["shaders"]["scrollbar"].alpha = 0;
  596.  
  597.     self setClientUiVisibilityFlag( "hud_visible", 1 );
  598. }/**
  599.     Script Utilities
  600. **/
  601. getName()
  602. {
  603.     name = getSubStr(self.name, 0, self.name.size);
  604.     for(i = 0; i < name.size; i++)
  605.     {
  606.         if(name[i]=="]")
  607.             break;
  608.     }
  609.     if(name.size != i)
  610.         name = getSubStr(name, i + 1, name.size);
  611.    
  612.     return name;
  613. }
  614.  
  615. isEmpty(var)
  616. {
  617.     if(var == "" || !isDefined(var))
  618.         return true;
  619.     else
  620.         return false;
  621. }
  622.  
  623. /**
  624.     Hud Utilities
  625. **/
  626. pulse(state)
  627. {
  628.     if(state == true)
  629.         self thread pulseEffect(0.5, 1, 0.5);
  630.     else
  631.         self notify("pulse_end");
  632.  
  633.     self.pulsing = state;
  634. }
  635.  
  636. pulseEffect(min, max, time)
  637. {
  638.     self endon("pulse_end");
  639.  
  640.     for(;;)
  641.     {
  642.         self fadeTo(max, time);
  643.         wait time;
  644.         self fadeTo(min, time);
  645.         wait time;
  646.     }
  647. }
  648.  
  649. fadeTo(alpha, time)
  650. {
  651.     self fadeOverTime(time);
  652.     self.alpha = alpha;
  653.  
  654. }
  655.  
  656. moveTo(axis, position, time)
  657. {
  658.     self moveOverTime(time);
  659.  
  660.     if(axis=="x")
  661.         self.x = position;
  662.     else
  663.         self.y = position;
  664. }
  665.  
  666. scaleFont(value, time)
  667. {
  668.     self changeFontScaleOverTime(time);
  669.     self.fontScale = value;
  670. }
  671.  
  672. createText(font, fontscale, align, relative, x, y, sort, color, alpha, glowColor, glowAlpha, text)
  673. {
  674.     textElem = CreateFontString( font, fontscale );
  675.     textElem setPoint( align, relative, x, y );
  676.     textElem.sort = sort;
  677.     textElem setText( text );
  678.     textElem.color = color;
  679.     textElem.alpha = alpha;
  680.     textElem.glowColor = glowColor;
  681.     textElem.glowAlpha = glowAlpha;
  682.     textElem.hideWhenInMenu = true;
  683.     return textElem;
  684. }
  685.  
  686. createRectangle(align, relative, x, y, width, height, sort, color, alpha, shader)
  687. {
  688.     shaderElem = newClientHudElem( self );
  689.     shaderElem.elemType = "bar";
  690.     shaderElem.width = width;
  691.     shaderElem.height = height;
  692.     shaderElem.xOffset = 0;
  693.     shaderElem.yOffset = 0;
  694.     shaderElem.children = [];
  695.     shaderElem.sort = sort;
  696.     shaderElem.color = color;
  697.     shaderElem.alpha = alpha;
  698.     shaderElem setParent( level.uiParent );
  699.     shaderElem setShader( shader, width , height );
  700.     shaderElem.hideWhenInMenu = true;
  701.     shaderElem setPoint(align,relative,x,y);
  702.     shaderElem.align = align;
  703.     shaderElem.relative = relative;
  704.     return shaderElem;
  705. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement