Advertisement
CabCon

[GSC] Black Ops 1 Menu Base

Nov 5th, 2015
1,577
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 15.47 KB | None | 0 0
  1. /*
  2.  
  3. Orginal Menu Base by ZeiiKeN: http://www.nextgenupdate.com/forums/call-duty-black-ops-2-gsc-mods-scripts/763127-release-gsc-black-ops-2-base-menu-verification-system-multiplayers-zombie.html
  4. Black Ops 1 Post by CabCon: http://www.cabconmodding.com/
  5.  
  6. */
  7.  
  8.  
  9. #include maps\mp\_utility;
  10. #include maps\mp\gametypes\_hud_util;
  11.  
  12. init()
  13. {
  14.     level thread onPlayerConnect();
  15. }
  16. onPlayerConnect()
  17. {
  18.     for(;;)
  19.     {
  20.         level waittill("connecting", player);
  21.         player thread onPlayerSpawned();
  22.         player.Verified = false;
  23.         player.VIP = false;
  24.         player.Admin = false;
  25.         player.CoHost = false;
  26.         player.MyAccess = "";
  27.     }
  28. }
  29. onPlayerSpawned()
  30. {
  31.     self endon("disconnect");
  32.     for(;;)
  33.     {
  34.         self waittill("spawned_player");
  35.         self iprintln("Press ^2[{+smoke}]^7. Ported by ^2CabCon");
  36.         if(self isHost())
  37.         {
  38.             self freezecontrols(false);
  39.             self.Verified = true;
  40.             self.VIP = true;
  41.             self.Admin = true;
  42.             self.CoHost = true;
  43.             self.MyAccess = "^1Host";
  44.             self thread BuildMenu();
  45.         }
  46.         else if ( self.CoHost == true)
  47.         {
  48.             self.Verified = true;
  49.             self.VIP = true;
  50.             self.Admin = true;
  51.             self.CoHost = true;
  52.             self.MyAccess = "^5Co-Host";
  53.             self freezecontrols(false);
  54.             self thread BuildMenu();
  55.         }
  56.         else if ( self.Admin == true)
  57.         {
  58.             self.Verified = true;
  59.             self.VIP = true;
  60.             self.Admin = true;
  61.             self.MyAccess = "^1Admin";
  62.             self freezecontrols(false);
  63.             self thread BuildMenu();
  64.         }
  65.         else if ( self.VIP == true)
  66.         {
  67.             self.Verified = true;
  68.             self.VIP = true;
  69.             self.MyAccess = "^3VIP";
  70.             self freezecontrols(false);
  71.             self thread BuildMenu();
  72.         }
  73.         else if ( self.Verified == true)
  74.         {
  75.             self.Verified = true;
  76.             self.MyAccess = "^1Verified";
  77.             self freezecontrols(false);
  78.             self thread BuildMenu();
  79.         }
  80.         else if ( self.Verified == false)
  81.         {
  82.             self.MyAccess = "";
  83.         }
  84.     }
  85. }
  86.  
  87.  
  88. BuildMenu()
  89. {
  90.     self endon("disconnect");
  91.     self endon("death");
  92.     self.MenuOpen = false;
  93.     self.Menu = spawnstruct();
  94.     self InitialisingMenu();
  95.     self MenuStructure();
  96.     self thread MenuDeath();
  97.     while (1)
  98.     {
  99.         if(self SecondaryOffhandButtonPressed() && self.MenuOpen == false)
  100.         {
  101.             self MenuOpening();
  102.             self LoadMenu("Main Menu");
  103.         }
  104.         else if (self MeleeButtonPressed() && self.MenuOpen == true)
  105.         {
  106.             self MenuClosing();
  107.             wait 1;
  108.         }
  109.         else if(self FragButtonPressed() && self.MenuOpen == true)
  110.         {
  111.             if(isDefined(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]))
  112.             {
  113.                 self.Menu.System["MenuCurser"] = 0;
  114.                 self SubMenu(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]);
  115.                 wait 0.5;
  116.             }
  117.         }
  118.         else if (self AdsButtonPressed() && self.MenuOpen == true)
  119.         {
  120.             self.Menu.System["MenuCurser"] -= 1;
  121.             if (self.Menu.System["MenuCurser"] < 0)
  122.             {
  123.                 self.Menu.System["MenuCurser"] = self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size - 1;
  124.             }
  125.             self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  126.             wait.2;
  127.         }
  128.         else if (self AttackButtonpressed() && self.MenuOpen == true)
  129.         {
  130.             self.Menu.System["MenuCurser"] += 1;
  131.             if (self.Menu.System["MenuCurser"] >= self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size)
  132.             {
  133.                 self.Menu.System["MenuCurser"] = 0;
  134.             }
  135.             self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  136.             wait.2;
  137.         }
  138.         else if(self UseButtonPressed() && self.MenuOpen == true)
  139.         {
  140.                 wait 0.2;
  141.                 if(self.Menu.System["MenuRoot"]=="Clients Menu") self.Menu.System["ClientIndex"]=self.Menu.System["MenuCurser"];
  142.                 self thread [[self.Menu.System["MenuFunction"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]]](self.Menu.System["MenuInput"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]);
  143.                 wait 0.5;
  144.         }
  145.         wait 0.05;
  146.     }
  147. }  
  148.  
  149. MenuStructure()
  150. {
  151.     if (self.Verified == true)
  152.     {
  153.     self MainMenu("Main Menu", undefined);
  154.     self MenuOption("Main Menu", 0, "Sub Menu 1", ::SubMenu, "Sub Menu 1");
  155.     self MenuOption("Main Menu", 1, "Sub Menu 2", ::SubMenu, "Sub Menu 2");
  156.     self MenuOption("Main Menu", 2, "Sub Menu 3", ::SubMenu, "Sub Menu 3");
  157.     self MenuOption("Main Menu", 3, "Sub Menu 4", ::SubMenu, "Sub Menu 4");
  158.     }
  159.     if (self.VIP == true)
  160.     {
  161.     self MenuOption("Main Menu", 4, "Sub Menu 5 (VIP)", ::SubMenu, "Sub Menu 5 (VIP)");
  162.     }
  163.     if (self.Admin == true)
  164.     {
  165.     self MenuOption("Main Menu", 5, "Sub Menu 6 (Admin)", ::SubMenu, "Sub Menu 6 (Admin)");
  166.     }
  167.     if (self.CoHost == true)
  168.     {
  169.     self MenuOption("Main Menu", 6, "Sub Menu 7 (Host)", ::SubMenu, "Sub Menu 7 (Host)");
  170.     self MenuOption("Main Menu", 7, "Clients Menu", ::SubMenu, "Clients Menu");
  171.     self MenuOption("Main Menu", 8, "All Clients", ::SubMenu, "All Clients");
  172.     }
  173.    
  174.     self MainMenu("Sub Menu 1", "Main Menu");
  175.     self MenuOption("Sub Menu 1", 0, "Fonctions Here", ::Test);
  176.     self MenuOption("Sub Menu 1", 1, "Fonctions Here", ::Test);
  177.     self MenuOption("Sub Menu 1", 2, "Fonctions Here", ::Test);
  178.     self MenuOption("Sub Menu 1", 3, "Fonctions Here", ::Test);
  179.     self MenuOption("Sub Menu 1", 4, "Fonctions Here", ::Test);
  180.     self MenuOption("Sub Menu 1", 5, "Fonctions Here", ::Test);
  181.    
  182.     self MainMenu("Sub Menu 2", "Main Menu");
  183.     self MenuOption("Sub Menu 2", 0, "Fonctions Here", ::Test);
  184.     self MenuOption("Sub Menu 2", 1, "Fonctions Here", ::Test);
  185.     self MenuOption("Sub Menu 2", 2, "Fonctions Here", ::Test);
  186.     self MenuOption("Sub Menu 2", 3, "Fonctions Here", ::Test);
  187.     self MenuOption("Sub Menu 2", 4, "Fonctions Here", ::Test);
  188.     self MenuOption("Sub Menu 2", 5, "Fonctions Here", ::Test);
  189.    
  190.     self MainMenu("Sub Menu 3", "Main Menu");
  191.     self MenuOption("Sub Menu 3", 0, "Fonctions Here", ::Test);
  192.     self MenuOption("Sub Menu 3", 1, "Fonctions Here", ::Test);
  193.     self MenuOption("Sub Menu 3", 2, "Fonctions Here", ::Test);
  194.     self MenuOption("Sub Menu 3", 3, "Fonctions Here", ::Test);
  195.     self MenuOption("Sub Menu 3", 4, "Fonctions Here", ::Test);
  196.     self MenuOption("Sub Menu 3", 5, "Fonctions Here", ::Test);
  197.    
  198.     self MainMenu("Sub Menu 4", "Main Menu");
  199.     self MenuOption("Sub Menu 4", 0, "Fonctions Here", ::Test);
  200.     self MenuOption("Sub Menu 4", 1, "Fonctions Here", ::Test);
  201.     self MenuOption("Sub Menu 4", 2, "Fonctions Here", ::Test);
  202.     self MenuOption("Sub Menu 4", 3, "Fonctions Here", ::Test);
  203.     self MenuOption("Sub Menu 4", 4, "Fonctions Here", ::Test);
  204.     self MenuOption("Sub Menu 4", 5, "Fonctions Here", ::Test);
  205.    
  206.     self MainMenu("Sub Menu 5 (VIP)", "Main Menu");
  207.     self MenuOption("Sub Menu 5 (VIP)", 0, "Fonctions Here", ::Test);
  208.     self MenuOption("Sub Menu 5 (VIP)", 1, "Fonctions Here", ::Test);
  209.     self MenuOption("Sub Menu 5 (VIP)", 2, "Fonctions Here", ::Test);
  210.     self MenuOption("Sub Menu 5 (VIP)", 3, "Fonctions Here", ::Test);
  211.     self MenuOption("Sub Menu 5 (VIP)", 4, "Fonctions Here", ::Test);
  212.     self MenuOption("Sub Menu 5 (VIP)", 5, "Fonctions Here", ::Test);
  213.    
  214.     self MainMenu("Sub Menu 6 (Admin)", "Main Menu");
  215.     self MenuOption("Sub Menu 6 (Admin)", 0, "Fonctions Here", ::Test);
  216.     self MenuOption("Sub Menu 6 (Admin)", 1, "Fonctions Here", ::Test);
  217.     self MenuOption("Sub Menu 6 (Admin)", 2, "Fonctions Here", ::Test);
  218.     self MenuOption("Sub Menu 6 (Admin)", 3, "Fonctions Here", ::Test);
  219.     self MenuOption("Sub Menu 6 (Admin)", 4, "Fonctions Here", ::Test);
  220.     self MenuOption("Sub Menu 6 (Admin)", 5, "Fonctions Here", ::Test);
  221.    
  222.     self MainMenu("Sub Menu 7 (Host)", "Main Menu");
  223.     self MenuOption("Sub Menu 7 (Host)", 0, "Fonctions Here", ::Test);
  224.     self MenuOption("Sub Menu 7 (Host)", 1, "Fonctions Here", ::Test);
  225.     self MenuOption("Sub Menu 7 (Host)", 2, "Fonctions Here", ::Test);
  226.     self MenuOption("Sub Menu 7 (Host)", 3, "Fonctions Here", ::Test);
  227.     self MenuOption("Sub Menu 7 (Host)", 4, "Fonctions Here", ::Test);
  228.     self MenuOption("Sub Menu 7 (Host)", 5, "Fonctions Here", ::Test);
  229.    
  230.     self MainMenu("Clients Menu", "Main Menu");
  231.     for (p = 0; p < level.players.size; p++) {
  232.         player = level.players[p];
  233.         self MenuOption("Clients Menu", p, "[" + player.MyAccess + "^7] " + player.name + "", ::SubMenu, "Client Function");
  234.     }
  235.     self thread MonitorPlayers();
  236.    
  237.     self MainMenu("Client Function", "Clients Menu");
  238.     self MenuOption("Client Function", 0, "Verify Player", ::Verify);
  239.     self MenuOption("Client Function", 1, "VIP Player", ::doVIP);
  240.     self MenuOption("Client Function", 2, "Admin Player", ::doAdmin);
  241.     self MenuOption("Client Function", 3, "Co-Host Player", ::doCoHost);
  242.     self MenuOption("Client Function", 4, "Unverified Player", ::doUnverif);
  243.     self MenuOption("Client Function", 5, "Fonctions Here", ::Test);
  244.    
  245.     self MainMenu("All Clients", "Main Menu");
  246.     self MenuOption("All Clients", 0, "Kill All Players", ::AllPlayersKilled);
  247.     self MenuOption("All Clients", 1, "Function Here", ::Test);
  248.     self MenuOption("All Clients", 2, "Function Here", ::Test);
  249.     self MenuOption("All Clients", 3, "Function Here", ::Test);
  250.     self MenuOption("All Clients", 4, "Function Here", ::Test);
  251. }
  252. MonitorPlayers()
  253. {
  254.     self endon("disconnect");
  255.     for(;;)
  256.     {
  257.         for(p = 0;p < level.players.size;p++)
  258.         {
  259.             player = level.players[p];
  260.             self.Menu.System["MenuTexte"]["Clients Menu"][p] = "[" + player.MyAccess + "^7] " + player.name;
  261.             self.Menu.System["MenuFunction"]["Clients Menu"][p] = ::SubMenu;
  262.             self.Menu.System["MenuInput"]["Clients Menu"][p] = "Client Function";
  263.             wait .01;
  264.         }
  265.         wait .5;
  266.     }
  267. }
  268. MainMenu(Menu, Return)
  269. {
  270.     self.Menu.System["GetMenu"] = Menu;
  271.     self.Menu.System["MenuCount"] = 0;
  272.     self.Menu.System["MenuPrevious"][Menu] = Return;
  273. }
  274. MenuOption(Menu, Index, Texte, Function, Input)
  275. {
  276.     self.Menu.System["MenuTexte"][Menu][Index] = Texte;
  277.     self.Menu.System["MenuFunction"][Menu][Index] = Function;
  278.     self.Menu.System["MenuInput"][Menu][Index] = Input;
  279. }
  280. SubMenu(input)
  281. {
  282.     self.Menu.System["MenuCurser"] = 0;
  283.     self.Menu.System["Texte"] fadeovertime(0.05);
  284.     self.Menu.System["Texte"].alpha = 0;
  285.     self.Menu.System["Texte"] destroy();
  286.     self.Menu.System["Title"] destroy();
  287.     self thread LoadMenu(input);
  288.     if(self.Menu.System["MenuRoot"]=="Client Function")
  289.     {
  290.     self.Menu.System["Title"] destroy();
  291.     player = level.players[self.Menu.System["ClientIndex"]];
  292.     self.Menu.System["Title"] = self createFontString("default", 2.0);
  293.     self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  294.     self.Menu.System["Title"] setText("[" + player.MyAccess + "^7] " + player.name);
  295.     self.Menu.System["Title"].sort = 3;
  296.     self.Menu.System["Title"].alpha = 1;
  297.     }
  298. }
  299. LoadMenu(menu)
  300. {
  301.     self.Menu.System["MenuCurser"] = 0;
  302.     self.Menu.System["MenuRoot"] = menu;
  303.     self.Menu.System["Title"] = self createFontString("default", 2.0);
  304.     self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  305.     self.Menu.System["Title"] setText(menu);
  306.     self.Menu.System["Title"].sort = 3;
  307.     self.Menu.System["Title"].alpha = 1;
  308.     string = "";
  309.     for(i=0;i<self.Menu.System["MenuTexte"][Menu].size;i++) string += self.Menu.System["MenuTexte"][Menu][i] + "\n";
  310.     self.Menu.System["Texte"] = self createFontString("default", 1.3);
  311.     self.Menu.System["Texte"] setPoint("LEFT", "TOP", 125, 60);
  312.     self.Menu.System["Texte"] setText(string);
  313.     self.Menu.System["Texte"].sort = 3;
  314.     self.Menu.System["Texte"].alpha = 1;
  315.     self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  316. }
  317. SetMaterial(align, relative, x, y, width, height, colour, shader, sort, alpha)
  318. {
  319.     hud = newClientHudElem(self);
  320.     hud.elemtype = "icon";
  321.     hud.color = colour;
  322.     hud.alpha = alpha;
  323.     hud.sort = sort;
  324.     hud.children = [];
  325.     hud setParent(level.uiParent);
  326.     hud setShader(shader, width, height);
  327.     hud setPoint(align, relative, x, y);
  328.     return hud;
  329. }
  330. MenuDeath()
  331. {
  332.     self waittill("death");
  333.     self.Menu.Material["Background"] destroy();
  334.     self.Menu.Material["Scrollbar"] destroy();
  335.     self.Menu.Material["BorderMiddle"] destroy();
  336.     self.Menu.Material["BorderLeft"] destroy();
  337.     self.Menu.Material["BorderRight"] destroy();
  338.     self MenuClosing();
  339. }
  340. InitialisingMenu()
  341. {
  342.     self.Menu.Material["Background"] = self SetMaterial("LEFT", "TOP", 120, 0, 240, 1000, (1,1,1), "black", 0, 0);
  343.     self.Menu.Material["Scrollbar"] = self SetMaterial("LEFT", "TOP", 120, 60, 240, 15, (0,1,0), "white", 1, 0);
  344.     self.Menu.Material["BorderMiddle"] = self SetMaterial("LEFT", "TOP", 120, 50, 240, 1, (0,1,0), "white", 1, 0);
  345.     self.Menu.Material["BorderLeft"] = self SetMaterial("LEFT", "TOP", 119, 0, 1, 1000, (0,1,0), "white", 1, 0);
  346.     self.Menu.Material["BorderRight"] = self SetMaterial("LEFT", "TOP", 360, 0, 1, 1000, (0,1,0), "white", 1, 0);
  347. }
  348.  
  349. MenuOpening()
  350. {
  351.     self freezecontrols(true);
  352.     self setclientuivisibilityflag( "hud_visible", 0 );
  353.     self enableInvulnerability();
  354.     self.MenuOpen = true;
  355.     self.Menu.Material["Background"] elemFade(.5, 0.76);
  356.     self.Menu.Material["Scrollbar"] elemFade(.5, 0.6);
  357.     self.Menu.Material["BorderMiddle"] elemFade(.5, 0.6);
  358.     self.Menu.Material["BorderLeft"] elemFade(.5, 0.6);
  359.     self.Menu.Material["BorderRight"] elemFade(.5, 0.6);
  360. }
  361.  
  362. MenuClosing()
  363. {    
  364.     self setclientuivisibilityflag( "hud_visible", 1 );
  365.     self.Menu.Material["Background"] elemFade(.5, 0);
  366.     self.Menu.Material["Scrollbar"] elemFade(.5, 0);
  367.     self.Menu.Material["BorderMiddle"] elemFade(.5, 0);
  368.     self.Menu.Material["BorderLeft"] elemFade(.5, 0);
  369.     self.Menu.Material["BorderRight"] elemFade(.5, 0);
  370.     self freezecontrols(false);
  371.     self disableInvulnerability();
  372.     self.Menu.System["Title"] destroy();
  373.     self.Menu.System["Texte"] destroy();
  374.     wait 0.05;
  375.     self.MenuOpen = false;
  376. }  
  377.  
  378. elemMoveY(time, input)
  379. {
  380.     self moveOverTime(time);
  381.     self.y = input;
  382. }
  383.  
  384. elemMoveX(time, input)
  385. {
  386.     self moveOverTime(time);
  387.     self.x = input;
  388. }
  389.  
  390. elemFade(time, alpha)
  391. {
  392.     self fadeOverTime(time);
  393.     self.alpha = alpha;
  394. }
  395.  
  396. doUnverif()
  397. {
  398.     player = level.players[self.Menu.System["ClientIndex"]];
  399.     if(player isHost())
  400.     {
  401.         self iPrintln("You can't Un-Verify the Host!");
  402.     }
  403.     else
  404.     {
  405.         player.Verified = false;
  406.         player.VIP = false;
  407.         player.Admin = false;
  408.         player.CoHost = false;
  409.         player suicide();
  410.         self iPrintln( player.name + " is ^1Unverfied" );
  411.     }
  412. }
  413.  
  414. UnverifMe()
  415. {
  416.     self.Verified = false;
  417.     self.VIP = false;
  418.     self.Admin = false;
  419.     self.CoHost = false;
  420.     self suicide();
  421. }
  422.  
  423. Verify()
  424. {
  425.     player = level.players[self.Menu.System["ClientIndex"]];
  426.     if(player isHost())
  427.     {
  428.         self iPrintln("You can't Verify the Host!");
  429.     }
  430.     else
  431.     {
  432.         player UnverifMe();
  433.         player.Verified = true;
  434.         player.VIP = false;
  435.         player.Admin = false;
  436.         player.CoHost = false;
  437.         self iPrintln( player.name + " is ^1Verified" );
  438.     }
  439. }
  440. doVIP()
  441. {
  442.     player = level.players[self.Menu.System["ClientIndex"]];
  443.     if(player isHost())
  444.     {
  445.         self iPrintln("You can't Verify the Host!");
  446.     }
  447.     else
  448.     {
  449.         player UnverifMe();
  450.         player.Verified = true;
  451.         player.VIP = true;
  452.         player.Admin = false;
  453.         player.CoHost = false;
  454.         self iPrintln( player.name + " is ^3VIP" );
  455.     }
  456. }
  457. doAdmin()
  458. {
  459.     player = level.players[self.Menu.System["ClientIndex"]];
  460.     if(player isHost())
  461.     {
  462.         self iPrintln("You can't Verify the Host!");
  463.     }
  464.     else
  465.     {
  466.         player UnverifMe();
  467.         player.Verified = true;
  468.         player.VIP = true;
  469.         player.Admin = true;
  470.         player.CoHost = false;
  471.         self iPrintln( player.name + " is ^1Admin" );
  472.     }
  473. }
  474. doCoHost()
  475. {
  476.     player = level.players[self.Menu.System["ClientIndex"]];
  477.     if(player isHost())
  478.     {
  479.         self iPrintln("You can't Verify the Host!");
  480.     }
  481.     else
  482.     {
  483.         if (player.CoHost == false)
  484.         {
  485.             player UnverifMe();
  486.             player.Verified = true;
  487.             player.VIP = true;
  488.             player.Admin = true;
  489.             player.CoHost = true;
  490.             self iPrintln( player.name + " is ^5Co-Host" );
  491.         }
  492.     }
  493. }
  494.  
  495. AllPlayersKilled()
  496. {
  497.     self Test();
  498. }
  499.  
  500. Test()
  501. {
  502.     self iPrintln("Main Menu By ^2ZeiiKeN ^7& ^2Fanatik");
  503.     self iPrintln("Visit: www.^2X^7box-^2G^7en.fr");
  504. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement