Advertisement
BaSs_HaXoR

(*SPRX) oStankyModz Mw2 Base

Sep 6th, 2014
1,176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 39.31 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <wchar.h>
  3. #include <sys/prx.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <sys/syscall.h>
  7. #include <sys/ppu_thread.h>
  8. #include <string.h>
  9. #include <cstring>
  10. #include <sys/sys_time.h>
  11. #include <sys/time_util.h>
  12. #include <stdarg.h>
  13. #include <assert.h>
  14. #include <sys/process.h>
  15. #include <sys/memory.h>
  16. #include <sys/timer.h>
  17. #include <sys/return_code.h>
  18. #include <sys/prx.h>
  19. #include <stddef.h>
  20. #include <math.h>
  21. #include <stdarg.h>
  22. #include <cellstatus.h>
  23. #include <typeinfo>
  24. #include <vector>
  25. #include <pthread.h>
  26. #include <locale.h>
  27. #include <cell/error.h>
  28. #include <sys/paths.h>
  29. #include <time.h>
  30.  
  31. SYS_MODULE_INFO( Mw2SPRX, 0, 1, 1);
  32. SYS_MODULE_START( _Mw2SPRX_prx_entry );
  33.  
  34. SYS_LIB_DECLARE_WITH_STUB( LIBNAME, SYS_LIB_AUTO_EXPORT, STUBNAME );
  35. SYS_LIB_EXPORT( _Mw2SPRX_export_function, LIBNAME );
  36.  
  37. sys_ppu_thread_t mw2menu;
  38. sys_ppu_thread_t NewsBarThread;
  39.  
  40.  
  41.  
  42. //Dont Worry About This Shit
  43. int Scroll[18];
  44. int MaxScroll[18];
  45. char* SubName = "Main Menu";
  46. char* TitleText[18];
  47. char* OptionText[18];
  48. int MainScroll[18];
  49. int SubScroll[18];
  50. void sleep(usecond_t time)  //1 second = 1000
  51. {
  52.     sys_timer_usleep(time * 1000);
  53. }
  54. sys_ppu_thread_t create_thread(void (*entry)(uint64_t), int priority, size_t stacksize, const char* threadname,sys_ppu_thread_t id)
  55. {  
  56.     if(sys_ppu_thread_create(&id, entry, 0, priority , stacksize, 0, threadname) == CELL_OK)
  57.     {
  58.         //console_write("\n\n Mw2_Menu_Loaded!\n\n");  
  59.     }
  60.        
  61.     return id;
  62. }
  63. struct opd_s
  64. {
  65.     uint32_t sub;
  66.     uint32_t toc;
  67. };
  68. namespace Huds
  69. {
  70.     union color_s
  71.     {
  72.         struct
  73.         {
  74.             int8_t r;            
  75.             int8_t g;            
  76.             int8_t b;      
  77.             int8_t a;  
  78.         };
  79.         int32_t rgba;
  80.     };
  81.    
  82.     int G_LocalizedStringIndex(const char* Text)
  83.     {
  84.         int(*LocalizedStringIndex)(const char* Text) = (int(*)(const char*))0x00708080;
  85.         return LocalizedStringIndex(Text);
  86.     }
  87.    
  88.     struct hudelem_s
  89.     {
  90.         int type;                     // 0x00-0x04
  91.         float y;                      // 0x04-0x08
  92.         float x;                      // 0x08-0x0C
  93.         float z;                      // 0x0C-0x10
  94.         int targetEntNum;             // 0x10-0x14
  95.         float fontScale;              // 0x14-0x18
  96.         float fromFontScale;          // 0x18-0x1C
  97.         int fontScaleStartTime;       // 0x1C-0x20
  98.         int fontScaleTime;            // 0x20-0x24
  99.         int label;                    // 0x24-0x28
  100.         int font;                     // 0x28-0x2C
  101.         int alignOrg;                 // 0x2C-0x30
  102.         int alignScreen;              // 0x30-0x34
  103.         color_s color;                  // 0x34-0x38
  104.         color_s fromColor;              // 0x38-0x3C
  105.         int fadeStartTime;            // 0x3C-0x40
  106.         int fadeTime;                 // 0x40-0x44
  107.         int height;                   // 0x44-0x48
  108.         int width;                    // 0x48-0x4C
  109.         int materialIndex;            // 0x4C-0x50
  110.         int fromHeight;               // 0x50-0x54
  111.         int fromWidth;                // 0x54-0x58
  112.         int scaleStartTime;           // 0x58-0x5C
  113.         int scaleTime;                // 0x5C-0x60
  114.         float fromY;                  // 0x60-0x64
  115.         float fromX;                  // 0x64-0x68
  116.         int fromAlignOrg;             // 0x68-0x6C
  117.         int fromAlignScreen;          // 0x6C-0x70
  118.         int moveStartTime;            // 0x70-0x74
  119.         int moveTime;                 // 0x74-0x78
  120.         float value;                  // 0x78-0x7C
  121.         int time;                     // 0x7C-0x80
  122.         int duration;                 // 0x80-0x84
  123.         int text;                     // 0x84-0x88
  124.         float sort;                   // 0x88-0x8C
  125.         color_s glowColor;              // 0x8C-0x90
  126.         int fxBirthTime;              // 0x90-0x94
  127.         int fxLetterTime;             // 0x94-0x98
  128.         int fxDecayStartTime;         // 0x98-0x9C
  129.         int fxDecayDuration;          // 0x9C-0xA0
  130.         int soundID;                  // 0xA0-0xA4
  131.         int flags;                    // 0xA4-0xA8
  132.     };
  133.     struct game_hudelem_s
  134.     {
  135.         hudelem_s elem;
  136.         long clientNum;
  137.         long team;
  138.         long archived;
  139.     };
  140.     opd_s GMI = { 0x001BE758, 0x00724C38 };
  141.     int(*GetMaterialIndex)(const char* Material) = (int(*)(const char*))&GMI;
  142.  
  143.     opd_s HEA = { 0x001806E0, 0x00724C38 };
  144.     game_hudelem_s*(*HudElemAlloc)(int32_t client, int32_t teamNum) = (game_hudelem_s*(*)(int32_t, int32_t))&HEA;
  145.  
  146.     opd_s Destroy = { 0x00182660, 0x00724C38 };
  147.     game_hudelem_s*(*HudElem_Free)(game_hudelem_s *hud) = (game_hudelem_s*(*)(game_hudelem_s*))&Destroy;
  148.  
  149.     void setFlagForeground(game_hudelem_s * elem)
  150.     {
  151.         elem->elem.flags |= 0x01;
  152.     }
  153.     color_s White()
  154.     {
  155.         color_s color;
  156.         color.r = 255; color.g = 255; color.b = 255; color.a = 255;
  157.         return color;
  158.     }
  159.     game_hudelem_s* setShader(int clientIndex, const char* Shader, int Width, int Height, float X, float Y, int Allign = 5, unsigned char R = 0, unsigned char G = 0, unsigned char B = 0, unsigned char A = 0)
  160.     {
  161.         *(int*)0x131689C = 1; //Allows to use precached Shaders
  162.         game_hudelem_s* elem = HudElemAlloc(clientIndex, 0);
  163.         elem->clientNum = clientIndex;
  164.         elem->elem.type = 6;
  165.         elem->elem.materialIndex = GetMaterialIndex(Shader);
  166.         elem->elem.width = Width;
  167.         elem->elem.height = Height;
  168.         elem->elem.x = X;
  169.         elem->elem.y = Y;
  170.         elem->elem.alignOrg = Allign;
  171.         elem->elem.color.r = R;
  172.         elem->elem.color.g = G;
  173.         elem->elem.color.b = B;
  174.         elem->elem.color.a = A;
  175.         return elem;
  176.     }
  177.     game_hudelem_s* setText(int clientIndex, const char* Text, int Font, float FontScale, float X, float Y, int Allign, unsigned char R = 0, unsigned char G = 0, unsigned char B = 0, unsigned char A = 0,unsigned char glowR = 0, unsigned char glowG = 0, unsigned char glowB = 0, unsigned char glowA = 0)
  178.     {
  179.         *(int*)0x131689C = 1;
  180.         game_hudelem_s* elem = HudElemAlloc(clientIndex, 0);
  181.         elem->clientNum = clientIndex;
  182.         elem->elem.type = 1;
  183.         elem->elem.text = G_LocalizedStringIndex(Text);
  184.         elem->elem.font = Font;
  185.         elem->elem.fontScale = FontScale;
  186.         elem->elem.x = X;
  187.         elem->elem.y = Y;
  188.         elem->elem.alignOrg = Allign;
  189.         elem->elem.alignScreen = 6;
  190.         elem->elem.color.r = R;
  191.         elem->elem.color.g = G;
  192.         elem->elem.color.b = B;
  193.         elem->elem.color.a = A;
  194.         elem->elem.glowColor.r = glowR;
  195.         elem->elem.glowColor.g = glowG;
  196.         elem->elem.glowColor.b = glowB;
  197.         elem->elem.glowColor.a = glowA;
  198.         return elem;
  199.     }
  200.     void moveOverTime(game_hudelem_s * elem, float time, float X, float Y)
  201.     {
  202.         int * levelTime = (int*)0x0012E0304;
  203.         elem->elem.moveStartTime = *levelTime;
  204.         elem->elem.fromAlignOrg = elem->elem.alignOrg;
  205.         elem->elem.fromAlignScreen = elem->elem.alignScreen;
  206.         elem->elem.fromX = elem->elem.x;
  207.         elem->elem.fromY = elem->elem.y;
  208.         elem->elem.x = X;
  209.         elem->elem.y = Y;
  210.         elem->elem.moveTime = (int)floor(time * 1000 + 0.5);
  211.     }
  212.     void MoveShaderXY(game_hudelem_s* elem, float X, float Y)
  213.     {
  214.         elem->elem.x = X;
  215.         elem->elem.y = Y;
  216.     }
  217.     void fadeOverTime(game_hudelem_s * elem, float time, unsigned char R = 0, unsigned char G = 0, unsigned char B = 0, unsigned char A = 0)
  218.     {
  219.         *(int*)0x131689C = 1;
  220.         int * levelTime = (int*)0x0012E0304;
  221.         elem->elem.fadeStartTime = *levelTime;
  222.         elem->elem.fromColor = elem->elem.color;
  223.         elem->elem.color.r = R;
  224.         elem->elem.color.g = G;
  225.         elem->elem.color.b = B;
  226.         elem->elem.color.a = A;
  227.         elem->elem.fadeTime = (int)floor(time * 1000 + 0.5);
  228.     }
  229.     void scaleOverTimeShader(game_hudelem_s * elem, float time, int width, int height)
  230.     {
  231.         int * levelTime = (int*)0x0012E0304;
  232.         elem->elem.scaleStartTime = *levelTime;
  233.         elem->elem.fromWidth = elem->elem.width;
  234.         elem->elem.fromHeight = elem->elem.height;
  235.         elem->elem.width = width;
  236.         elem->elem.height = height;
  237.         elem->elem.scaleTime = (int)floor(time * 1000 + 0.5);
  238.     }
  239.     void scaleOverTimeText(game_hudelem_s * elem, float time, float fontScale)
  240.     {
  241.         int * levelTime = (int*)0x0012E0304;
  242.         elem->elem.fontScaleStartTime = *levelTime;
  243.         elem->elem.fromFontScale = elem->elem.fontScale;
  244.         elem->elem.fontScale = fontScale;
  245.         elem->elem.fontScaleTime = (int)floor(time * 1000 + 0.5);
  246.     }
  247.     void setPulseFx(game_hudelem_s * elem, int speed, int decayStart, int decayDuration )
  248.     {
  249.         int * levelTime = (int*)0x0012E0304;
  250.         elem->elem.fxBirthTime = *levelTime;
  251.         elem->elem.fxLetterTime = speed;
  252.         elem->elem.fxDecayStartTime = decayStart;
  253.         elem->elem.fxDecayDuration = decayDuration;
  254.     }
  255.     void ChangeText(Huds::game_hudelem_s * elem, char* newText)
  256.     {
  257.         elem->elem.text = Huds::G_LocalizedStringIndex(newText);
  258.     }
  259. };
  260. Huds::game_hudelem_s* Background[18];
  261. Huds::game_hudelem_s* Title[18];
  262. Huds::game_hudelem_s* MenuTitle[18];
  263. Huds::game_hudelem_s* Options[18];
  264. Huds::game_hudelem_s* LeftBar[18];
  265. Huds::game_hudelem_s* RightBar[18];
  266. Huds::game_hudelem_s* Scroller[18];
  267. Huds::game_hudelem_s* Icon[18];
  268. Huds::game_hudelem_s* CreatedBy[18];
  269. namespace TOC_Calls
  270. {
  271.     opd_s SV_GameSendServerCommand_t = { 0x0021A0A0, 0x00724C38 };
  272.     void(*SV_GameSendServerCommand)(int clientIndex, int type, const char* Command) = (void(*)(int, int, const char*))&SV_GameSendServerCommand_t;
  273.  
  274.     opd_s Dvar_GetBoolAddress = { 0x00277138, 0x00724C38 };
  275.     bool(*Dvar_GetBool)(const char *dvarName) = (bool(*)(const char*))&Dvar_GetBoolAddress;
  276.  
  277.     opd_s cBuff_AddText_t = { 0x001D9EC0, 0x00724C38 };
  278.     void(*cBuff_AddText)(int localClientIndex, const char* Command) = (void(*)(int, const char*))&cBuff_AddText_t;
  279. };
  280. namespace Variables
  281. {
  282.     Huds::game_hudelem_s* SetShader[18];
  283.     Huds::game_hudelem_s* SetText[18];
  284.     bool MenuStarted;
  285.     bool IsHost;
  286.     int Scroll[18];
  287.     int MaxScroll[18];
  288.     int MenuType[18];
  289.     char* CurMenu[18];
  290.     char* SubName = "Main Menu";
  291.     bool MenuOpen[18];
  292.     char* PreviousMenu[18];
  293.     char* PreviousMenu2[18];
  294.     char* GetNewsText = "Welcome To Menu Base || Created By: oStankyModz || www.YouTube.com/StankyModzHD || Enjoy!!";
  295. };
  296. char* getName(int client)
  297. {
  298.     if(*(int*)0x21910670 + client * 14080 != 0)
  299.     {
  300.         return (char*)(0x21910670 + client * 14080);
  301.     }
  302.     else
  303.     {
  304.         return "Not Ingame";
  305.     }
  306. }
  307. int getLocalName()
  308. {
  309.     return (0x01f9f11c);
  310. }
  311. int getPlayerName(int client)
  312. {
  313.     return (0x14E5408 + (client * 0x3700));
  314. }
  315. int HostClientNumber = 0;
  316. int getHostClientNumber()
  317. {
  318.     for (int i = 0; i < 18; i++)
  319.     {
  320.         if (!strcmp((char*)getLocalName(), (char*)getPlayerName(i)))
  321.         {
  322.             return i;
  323.         }
  324.  
  325.     }
  326.     return 0;
  327. }
  328. //End
  329.  
  330.  
  331.  
  332.  
  333. //Buttons
  334. namespace Buttons
  335. {
  336.        char* Cross = "+gostand";
  337.        char* Circle = "+stance";
  338.        char* Triangle = "weapnext";
  339.        char* Square = "+usereload";
  340.        char* R3 = "+melee";
  341.        char* R2 = "+frag";
  342.        char* R1 = "+attack";
  343.        char* L3 = "+breath_sprint";
  344.        char* L2 = "+smoke";
  345.        char* L1 = "+speed_throw";
  346.        char* Select = "togglescores";
  347.        char* Start = "togglemenu";
  348.        char* DpadUp = "+actionslot 1";
  349.        char* DpadDown = "+actionslot 2";
  350.        char* DpadRight = "+actionslot 4";
  351.        char* DpadLeft = "+actionslot 3";
  352. };
  353. int sweg(int clientIndex)
  354. {
  355.     return *(int*)0x1BF911C + (clientIndex * 0x97F80);
  356. }
  357. bool ButtonPressed(int clientIndex, const char* Button)
  358. {
  359.     return !strcmp((char*)sweg(clientIndex)+ 0x20E9F, Button);
  360. }
  361. //Button End
  362.  
  363.  
  364.  
  365.  
  366. //Menu Base Below
  367. int GetMenuInfo(int client, char* Menu)
  368. {
  369.     if(Menu == SubName)
  370.     {
  371.         TitleText[client] = SubName;//creates the text for the title of that menu
  372.         OptionText[client] = "Sub Menu 1\nSub Menu 2\nSub Menu 3\nSub Menu 4\nSub Menu 5\nSub Menu 6\nSub Menu 7\nSub Menu 8\nSub Menu 9\nSub Menu 10\nSub Menu 11\nSub Menu 12\nSub Menu 13\nSub Menu 14\nSub Menu 15";//creats the text in the menu
  373.         return 14;//Returns the maximum scroll
  374.     }
  375.     else if(Menu == "Sub Menu 1")
  376.     {
  377.         TitleText[client] = "Sub Menu 1";
  378.         OptionText[client] = "God Mode\nNo Clip\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  379.         return 14;
  380.     }
  381.     else if(Menu == "Sub Menu 2")
  382.     {
  383.         TitleText[client] = "Sub Menu 2";
  384.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  385.         return 14;
  386.     }
  387.     else if(Menu == "Sub Menu 3")
  388.     {
  389.         TitleText[client] = "Sub Menu 3";
  390.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  391.         return 14;
  392.     }
  393.     else if(Menu == "Sub Menu 4")
  394.     {
  395.         TitleText[client] = "Sub Menu 4";
  396.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  397.         return 14;
  398.     }
  399.     else if(Menu == "Sub Menu 5")
  400.     {
  401.         TitleText[client] = "Sub Menu 5";
  402.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  403.         return 14;
  404.     }
  405.     else if(Menu == "Sub Menu 6")
  406.     {
  407.         TitleText[client] = "Sub Menu 6";
  408.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  409.         return 14;
  410.     }
  411.     else if(Menu == "Sub Menu 7")
  412.     {
  413.         TitleText[client] = "Sub Menu 7";
  414.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  415.         return 14;
  416.     }
  417.     else if(Menu == "Sub Menu 8")
  418.     {
  419.         TitleText[client] = "Sub Menu 8";
  420.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  421.         return 14;
  422.     }
  423.     else if(Menu == "Sub Menu 9")
  424.     {
  425.         TitleText[client] = "Sub Menu 9";
  426.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  427.         return 14;
  428.     }
  429.     else if(Menu == "Sub Menu 10")
  430.     {
  431.         TitleText[client] = "Sub Menu 10";
  432.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  433.         return 14;
  434.     }
  435.     else if(Menu == "Sub Menu 11")
  436.     {
  437.         TitleText[client] = "Sub Menu 11";
  438.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  439.         return 14;
  440.     }
  441.     else if(Menu == "Sub Menu 12")
  442.     {
  443.         TitleText[client] = "Sub Menu 12";
  444.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  445.         return 14;
  446.     }
  447.     else if(Menu == "Sub Menu 13")
  448.     {
  449.         TitleText[client] = "Sub Menu 13";
  450.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  451.         return 14;
  452.     }
  453.     else if(Menu == "Sub Menu 14")
  454.     {
  455.         TitleText[client] = "Sub Menu 14";
  456.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  457.         return 14;
  458.     }
  459.     else if(Menu == "Sub Menu 15")
  460.     {
  461.         TitleText[client] = "Sub Menu 15";
  462.         OptionText[client] = "Option 1\nOption 2\nOption 3\nOption 4\nOption 5\nOption 6\nOption 7\nOption 8\nOption 9\nOption 10\nOption 11\nOption 12\nOption 13\nOption 14\nOption 15";
  463.         return 14;
  464.     }
  465.     else
  466.     {
  467.         TitleText[client] = "Error";
  468.         OptionText[client] = "Error";
  469.         return 0;
  470.     }
  471. }
  472.  
  473.  
  474.  
  475.  
  476. //Menu Base Huds
  477. void StoreHuds(int client)
  478. {
  479.  
  480.     Background[client] = Huds::setShader(client, "white", 250, 600, -500, 0, 0, 0, 0, 0, 150);//Background
  481.     LeftBar[client] = Huds::setShader(client, "white", 2, 600, 198, 999, 0, 0, 0, 255, 255);//Left Bar
  482.     RightBar[client] = Huds::setShader(client, "white", 2, 600, 450, 999, 0, 0, 0, 255, 255);//Right Bar
  483.     Scroller[client] = Huds::setShader(client, "white", 250, 18, -500, 0, 0, 0, 0, 0, 255);//Scroller
  484.     MenuTitle[client] = Huds::setText(client, "Menu Base", 1, 1.4, -500, 130, 5, 255, 255, 255, 255, 0, 0, 255, 255);//Menu Title
  485.     CreatedBy[client] = Huds::setText(client, "Created By: oStankyModz", 1, 0.5, -500, 130, 5, 255, 255, 255, 255, 0, 0, 255, 255);//Menu Title
  486.     Title[client] = Huds::setText(client, "Main Menu", 1, 1, -500, 130, 5, 255, 255, 255, 255, 0, 0, 255, 255);//Menu Title
  487.     Options[client] = Huds::setText(client, " ", 5, 1.6, 300, 190, 5, 255, 255, 255, 255, 0, 0, 0, 255);//Option Text
  488. }
  489. void LoadHuds(int client)
  490. {
  491.     MaxScroll[client] = GetMenuInfo(client, SubName);
  492.     Huds::ChangeText(Title[client], TitleText[client]);
  493.     Huds::ChangeText(Options[client], OptionText[client]);
  494.     Huds::moveOverTime(Background[client], 0.50, 200, 0);//Background
  495.     Huds::moveOverTime(LeftBar[client], 0.50, 198, 0);//Left Bar
  496.     Huds::moveOverTime(RightBar[client], 0.50, 450, 0);//Right Bar
  497.     Huds::moveOverTime(Scroller[client], 0.50, 200, 120);//Scroller
  498.     Huds::moveOverTime(Title[client], 0.50, 325, 200);//Title
  499.     Huds::moveOverTime(MenuTitle[client], 0.50, 325, 100);
  500.     Huds::moveOverTime(Options[client], 0.50, 320, 290);//Options
  501.     Huds::moveOverTime(CreatedBy[client], 0.50, 320, 980);//Created By
  502.     Variables::CurMenu[client] = SubName;
  503.     Variables::CurMenu[client] = "Main Menu";
  504.     Variables::MenuType[client] ++;
  505.     Variables::MenuOpen[client] = true;
  506. }
  507. void DeleteHuds(int client)
  508. {
  509.     Huds::moveOverTime(Background[client], 0.50, -500, 0);//Background
  510.     Huds::moveOverTime(Scroller[client], 0.50, -500, 80);//Scroller
  511.     Huds::moveOverTime(Title[client], 0.50, -500, 40);//Title
  512.     Huds::moveOverTime(MenuTitle[client], 0.50, -500, 40);//Title
  513.     Huds::moveOverTime(Options[client], 0.50, -500, 80);//Options
  514.     Huds::moveOverTime(CreatedBy[client], 0.50, -500, 80);//Options
  515.     Huds::moveOverTime(RightBar[client], 0.50, -500, 999);//Right Bar
  516.     Huds::moveOverTime(LeftBar[client], 0.50, -500, 999);//Left Bar
  517. }
  518. //Menu Base Huds End
  519.  
  520.  
  521.  
  522.  
  523. //Menu Functions "God Mode, No Clip, Ect"
  524. namespace MenuFunctions
  525. {
  526.     bool GM[18];
  527.     void GodMode(int client)
  528.     {
  529.         if(GM[client] == false)
  530.         {
  531.             *(char*)(0x014E5429 + 0x5808 * client) = 0xFF, 0xFF;
  532.             TOC_Calls::SV_GameSendServerCommand(client, 1, "f \"God Mode ^7[^2On^7]\"");
  533.             GM[client] = true;
  534.         }
  535.         else
  536.         {
  537.             *(char*)(0x014E5429 + 0x5808 * client) = 0x00, 0x00;
  538.             TOC_Calls::SV_GameSendServerCommand(client, 1, "f \"God Mode ^7[^1Off^7]\"");
  539.             GM[client] = false;
  540.         }
  541.     }
  542.     bool NC[18];
  543.     void NoClip(int client)
  544.     {
  545.         if(NC[client] == false)
  546.         {
  547.             *(char*)(0x014E5623 + 0x3700 * client) = 0x01;
  548.             TOC_Calls::SV_GameSendServerCommand(client, 1, "f \"No Clip ^7[^2On^7]\"");
  549.             NC[client] = true;
  550.         }
  551.         else
  552.         {
  553.             *(char*)(0x014E5623 + 0x3700 * client) = 0x00;
  554.             TOC_Calls::SV_GameSendServerCommand(client, 1, "f \"No Clip ^7[^1Off^7]\"");
  555.             NC[client] = false;
  556.         }
  557.     }
  558. };
  559. //Menu Functions End
  560.  
  561.  
  562.  
  563.  
  564. //Menu Base Sub Functions "Dont Need To Edit This Stuff"
  565. void LoadText(int client)
  566. {
  567.     Huds::fadeOverTime(Title[client], 0.50, 0, 0, 0, 0);
  568.     Huds::fadeOverTime(Options[client], 0.50, 0, 0, 0, 0);
  569.     sleep(100);
  570.     ChangeText(Title[client], TitleText[client]);
  571.     ChangeText(Options[client], OptionText[client]);
  572.     sleep(100);
  573.     Huds::fadeOverTime(Title[client], 0.50, 255, 255, 255, 255);
  574.     Huds::fadeOverTime(Options[client], 0.50, 255, 255, 255, 255);
  575. }
  576. void UpdateScroll(int client)
  577. {
  578.     float scrollpos = 120 + (19.2 * Scroll[client]);
  579.     Huds::moveOverTime(Scroller[client], 0.30, 200, scrollpos);
  580.     sleep(50);
  581. }
  582. void UpdateScrollLoad(int client)
  583. {
  584.     float scrollpos = 120 + (19.2 * Scroll[client]);
  585.     Huds::moveOverTime(Scroller[client], 0.30, 200, scrollpos);
  586.     sleep(50);
  587. }
  588. void LoadSub(int client, char* NewMenu, int scroll)
  589. {
  590.     if(Variables::MenuType[client] == 1)
  591.     {
  592.         MainScroll[client] = scroll;
  593.         Scroll[client] = 0;
  594.         UpdateScrollLoad(client);
  595.         Variables::CurMenu[client] = NewMenu;
  596.         Variables::MenuType[client] ++;
  597.         Variables::MaxScroll[client] = GetMenuInfo(client, NewMenu);
  598.         LoadText(client);
  599.     }
  600.     else if(Variables::MenuType[client] == 2)
  601.     {
  602.         SubScroll[client] = scroll;
  603.         Scroll[client] = 0;
  604.         UpdateScrollLoad(client);
  605.         Variables::PreviousMenu[client] = Variables::CurMenu[client];
  606.         Variables::CurMenu[client] = NewMenu;
  607.         Variables::MenuType[client] ++;
  608.         Variables::MaxScroll[client] = GetMenuInfo(client, NewMenu);
  609.         LoadText(client);
  610.     }
  611.     else if(Variables::MenuType[client] > 2)
  612.     {
  613.         Scroll[client] = 0;
  614.         UpdateScrollLoad(client);
  615.         Variables::PreviousMenu2[client] = Variables::CurMenu[client];
  616.         Variables::CurMenu[client] = NewMenu;
  617.         Variables::MenuType[client] ++;
  618.         Variables::MaxScroll[client] = GetMenuInfo(client, NewMenu);
  619.         LoadText(client);
  620.     }
  621. }
  622. //Menu Base Sub Functions End
  623.  
  624.  
  625.  
  626.  
  627. //Menu Selection "Where Functions Go"
  628. void MenuSelection(int client, char* Menu, int scroll)
  629. {
  630.     if(Menu == "Main Menu")
  631.     {
  632.         if(scroll == 0)
  633.         {
  634.             LoadSub(client, "Sub Menu 1", scroll);
  635.         }
  636.         if(scroll == 1)
  637.         {
  638.             LoadSub(client, "Sub Menu 2", scroll);
  639.         }
  640.         if(scroll == 2)
  641.         {
  642.             LoadSub(client, "Sub Menu 3", scroll);
  643.         }
  644.         if(scroll == 3)
  645.         {
  646.             LoadSub(client, "Sub Menu 4", scroll);
  647.         }
  648.         if(scroll == 4)
  649.         {
  650.             LoadSub(client, "Sub Menu 5", scroll);
  651.         }
  652.         if(scroll == 5)
  653.         {
  654.             LoadSub(client, "Sub Menu 6", scroll);
  655.         }
  656.         if(scroll == 6)
  657.         {
  658.             LoadSub(client, "Sub Menu 7", scroll);
  659.         }
  660.         if(scroll == 7)
  661.         {
  662.             LoadSub(client, "Sub Menu 8", scroll);
  663.         }
  664.         if(scroll == 8)
  665.         {
  666.             LoadSub(client, "Sub Menu 9", scroll);
  667.         }
  668.         if(scroll == 9)
  669.         {
  670.             LoadSub(client, "Sub Menu 10", scroll);
  671.         }
  672.         if(scroll == 10)
  673.         {
  674.             LoadSub(client, "Sub Menu 11", scroll);
  675.         }
  676.         if(scroll == 11)
  677.         {
  678.             LoadSub(client, "Sub Menu 12", scroll);
  679.         }
  680.         if(scroll == 12)
  681.         {
  682.             LoadSub(client, "Sub Menu 13", scroll);
  683.         }
  684.         if(scroll == 13)
  685.         {
  686.             LoadSub(client, "Sub Menu 14", scroll);
  687.         }
  688.         if(scroll == 14)
  689.         {
  690.             LoadSub(client, "Sub Menu 15", scroll);
  691.         }
  692.     }
  693.     if(Menu == "Sub Menu 1")
  694.     {
  695.         if(scroll == 0)
  696.         {
  697.             MenuFunctions::GodMode(client);
  698.         }
  699.         if(scroll == 1)
  700.         {
  701.             MenuFunctions::NoClip(client);
  702.         }
  703.     }
  704.     if(Menu == "Sub Menu 2")
  705.     {
  706.         if(scroll == 0)
  707.         {
  708.             //Sub Menu 2 Option 1 Here
  709.         }
  710.         if(scroll == 1)
  711.         {
  712.             //Sub Menu 2 Option 2 Here
  713.         }
  714.         if(scroll == 2)
  715.         {
  716.             //Sub Menu 2 Option 3 Here
  717.         }
  718.         if(scroll == 3)
  719.         {
  720.             //Sub Menu 2 Option 4 Here
  721.         }
  722.         if(scroll == 4)
  723.         {
  724.             //Sub Menu 2 Option 5 Here
  725.         }
  726.         if(scroll == 5)
  727.         {
  728.             //Sub Menu 2 Option 6 Here
  729.         }
  730.         if(scroll == 6)
  731.         {
  732.             //Sub Menu 2 Option 7 Here
  733.         }
  734.         if(scroll == 7)
  735.         {
  736.             //Sub Menu 2 Option 8 Here
  737.         }
  738.         if(scroll == 8)
  739.         {
  740.             //Sub Menu 2 Option 9 Here
  741.         }
  742.         if(scroll == 9)
  743.         {
  744.             //Sub Menu 2 Option 10 Here
  745.         }
  746.         if(scroll == 10)
  747.         {
  748.             //Sub Menu 2 Option 11 Here
  749.         }
  750.         if(scroll == 11)
  751.         {
  752.             //Sub Menu 2 Option 12 Here
  753.         }
  754.         if(scroll == 12)
  755.         {
  756.             //Sub Menu 2 Option 13 Here
  757.         }
  758.         if(scroll == 13)
  759.         {
  760.             //Sub Menu 2 Option 14 Here
  761.         }
  762.         if(scroll == 14)
  763.         {
  764.             //Sub Menu 2 Option 15 Here
  765.         }
  766.     }
  767.     if(Menu == "Sub Menu 3")
  768.     {
  769.         if(scroll == 0)
  770.         {
  771.             //Sub Menu 3 Option 1 Here
  772.         }
  773.         if(scroll == 1)
  774.         {
  775.             //Sub Menu 3 Option 2 Here
  776.         }
  777.         if(scroll == 2)
  778.         {
  779.             //Sub Menu 3 Option 3 Here
  780.         }
  781.         if(scroll == 3)
  782.         {
  783.             //Sub Menu 3 Option 4 Here
  784.         }
  785.         if(scroll == 4)
  786.         {
  787.             //Sub Menu 3 Option 5 Here
  788.         }
  789.         if(scroll == 5)
  790.         {
  791.             //Sub Menu 3 Option 6 Here
  792.         }
  793.         if(scroll == 6)
  794.         {
  795.             //Sub Menu 3 Option 7 Here
  796.         }
  797.         if(scroll == 7)
  798.         {
  799.             //Sub Menu 3 Option 8 Here
  800.         }
  801.         if(scroll == 8)
  802.         {
  803.             //Sub Menu 3 Option 9 Here
  804.         }
  805.         if(scroll == 9)
  806.         {
  807.             //Sub Menu 3 Option 10 Here
  808.         }
  809.         if(scroll == 10)
  810.         {
  811.             //Sub Menu 3 Option 11 Here
  812.         }
  813.         if(scroll == 11)
  814.         {
  815.             //Sub Menu 3 Option 12 Here
  816.         }
  817.         if(scroll == 12)
  818.         {
  819.             //Sub Menu 3 Option 13 Here
  820.         }
  821.         if(scroll == 13)
  822.         {
  823.             //Sub Menu 3 Option 14 Here
  824.         }
  825.         if(scroll == 14)
  826.         {
  827.             //Sub Menu 3 Option 15 Here
  828.         }
  829.     }
  830.     if(Menu == "Sub Menu 4")
  831.     {
  832.         if(scroll == 0)
  833.         {
  834.             //Sub Menu 4 Option 1 Here
  835.         }
  836.         if(scroll == 1)
  837.         {
  838.             //Sub Menu 4 Option 2 Here
  839.         }
  840.         if(scroll == 2)
  841.         {
  842.             //Sub Menu 4 Option 3 Here
  843.         }
  844.         if(scroll == 3)
  845.         {
  846.             //Sub Menu 4 Option 4 Here
  847.         }
  848.         if(scroll == 4)
  849.         {
  850.             //Sub Menu 4 Option 5 Here
  851.         }
  852.         if(scroll == 5)
  853.         {
  854.             //Sub Menu 4 Option 6 Here
  855.         }
  856.         if(scroll == 6)
  857.         {
  858.             //Sub Menu 4 Option 7 Here
  859.         }
  860.         if(scroll == 7)
  861.         {
  862.             //Sub Menu 4 Option 8 Here
  863.         }
  864.         if(scroll == 8)
  865.         {
  866.             //Sub Menu 4 Option 9 Here
  867.         }
  868.         if(scroll == 9)
  869.         {
  870.             //Sub Menu 4 Option 10 Here
  871.         }
  872.         if(scroll == 10)
  873.         {
  874.             //Sub Menu 4 Option 11 Here
  875.         }
  876.         if(scroll == 11)
  877.         {
  878.             //Sub Menu 4 Option 12 Here
  879.         }
  880.         if(scroll == 12)
  881.         {
  882.             //Sub Menu 4 Option 13 Here
  883.         }
  884.         if(scroll == 13)
  885.         {
  886.             //Sub Menu 4 Option 14 Here
  887.         }
  888.         if(scroll == 14)
  889.         {
  890.             //Sub Menu 4 Option 15 Here
  891.         }
  892.     }
  893.     if(Menu == "Sub Menu 5")
  894.     {
  895.         if(scroll == 0)
  896.         {
  897.             //Sub Menu 5 Option 1 Here
  898.         }
  899.         if(scroll == 1)
  900.         {
  901.             //Sub Menu 5 Option 2 Here
  902.         }
  903.         if(scroll == 2)
  904.         {
  905.             //Sub Menu 5 Option 3 Here
  906.         }
  907.         if(scroll == 3)
  908.         {
  909.             //Sub Menu 5 Option 4 Here
  910.         }
  911.         if(scroll == 4)
  912.         {
  913.             //Sub Menu 5 Option 5 Here
  914.         }
  915.         if(scroll == 5)
  916.         {
  917.             //Sub Menu 5 Option 6 Here
  918.         }
  919.         if(scroll == 6)
  920.         {
  921.             //Sub Menu 5 Option 7 Here
  922.         }
  923.         if(scroll == 7)
  924.         {
  925.             //Sub Menu 5 Option 8 Here
  926.         }
  927.         if(scroll == 8)
  928.         {
  929.             //Sub Menu 5 Option 9 Here
  930.         }
  931.         if(scroll == 9)
  932.         {
  933.             //Sub Menu 5 Option 10 Here
  934.         }
  935.         if(scroll == 10)
  936.         {
  937.             //Sub Menu 5 Option 11 Here
  938.         }
  939.         if(scroll == 11)
  940.         {
  941.             //Sub Menu 5 Option 12 Here
  942.         }
  943.         if(scroll == 12)
  944.         {
  945.             //Sub Menu 5 Option 13 Here
  946.         }
  947.         if(scroll == 13)
  948.         {
  949.             //Sub Menu 5 Option 14 Here
  950.         }
  951.         if(scroll == 14)
  952.         {
  953.             //Sub Menu 5 Option 15 Here
  954.         }
  955.     }
  956.     if(Menu == "Sub Menu 6")
  957.     {
  958.         if(scroll == 0)
  959.         {
  960.             //Sub Menu 6 Option 1 Here
  961.         }
  962.         if(scroll == 1)
  963.         {
  964.             //Sub Menu 6 Option 2 Here
  965.         }
  966.         if(scroll == 2)
  967.         {
  968.             //Sub Menu 6 Option 3 Here
  969.         }
  970.         if(scroll == 3)
  971.         {
  972.             //Sub Menu 6 Option 4 Here
  973.         }
  974.         if(scroll == 4)
  975.         {
  976.             //Sub Menu 6 Option 5 Here
  977.         }
  978.         if(scroll == 5)
  979.         {
  980.             //Sub Menu 6 Option 6 Here
  981.         }
  982.         if(scroll == 6)
  983.         {
  984.             //Sub Menu 6 Option 7 Here
  985.         }
  986.         if(scroll == 7)
  987.         {
  988.             //Sub Menu 6 Option 8 Here
  989.         }
  990.         if(scroll == 8)
  991.         {
  992.             //Sub Menu 6 Option 9 Here
  993.         }
  994.         if(scroll == 9)
  995.         {
  996.             //Sub Menu 6 Option 10 Here
  997.         }
  998.         if(scroll == 10)
  999.         {
  1000.             //Sub Menu 6 Option 11 Here
  1001.         }
  1002.         if(scroll == 11)
  1003.         {
  1004.             //Sub Menu 6 Option 12 Here
  1005.         }
  1006.         if(scroll == 12)
  1007.         {
  1008.             //Sub Menu 6 Option 13 Here
  1009.         }
  1010.         if(scroll == 13)
  1011.         {
  1012.             //Sub Menu 6 Option 14 Here
  1013.         }
  1014.         if(scroll == 14)
  1015.         {
  1016.             //Sub Menu 6 Option 15 Here
  1017.         }
  1018.     }
  1019.     if(Menu == "Sub Menu 7")
  1020.     {
  1021.         if(scroll == 0)
  1022.         {
  1023.             //Sub Menu 7 Option 1 Here
  1024.         }
  1025.         if(scroll == 1)
  1026.         {
  1027.             //Sub Menu 7 Option 2 Here
  1028.         }
  1029.         if(scroll == 2)
  1030.         {
  1031.             //Sub Menu 7 Option 3 Here
  1032.         }
  1033.         if(scroll == 3)
  1034.         {
  1035.             //Sub Menu 7 Option 4 Here
  1036.         }
  1037.         if(scroll == 4)
  1038.         {
  1039.             //Sub Menu 7 Option 5 Here
  1040.         }
  1041.         if(scroll == 5)
  1042.         {
  1043.             //Sub Menu 7 Option 6 Here
  1044.         }
  1045.         if(scroll == 6)
  1046.         {
  1047.             //Sub Menu 7 Option 7 Here
  1048.         }
  1049.         if(scroll == 7)
  1050.         {
  1051.             //Sub Menu 7 Option 8 Here
  1052.         }
  1053.         if(scroll == 8)
  1054.         {
  1055.             //Sub Menu 7 Option 9 Here
  1056.         }
  1057.         if(scroll == 9)
  1058.         {
  1059.             //Sub Menu 7 Option 10 Here
  1060.         }
  1061.         if(scroll == 10)
  1062.         {
  1063.             //Sub Menu 7 Option 11 Here
  1064.         }
  1065.         if(scroll == 11)
  1066.         {
  1067.             //Sub Menu 7 Option 12 Here
  1068.         }
  1069.         if(scroll == 12)
  1070.         {
  1071.             //Sub Menu 7 Option 13 Here
  1072.         }
  1073.         if(scroll == 13)
  1074.         {
  1075.             //Sub Menu 7 Option 14 Here
  1076.         }
  1077.         if(scroll == 14)
  1078.         {
  1079.             //Sub Menu 7 Option 15 Here
  1080.         }
  1081.     }
  1082.     if(Menu == "Sub Menu 8")
  1083.     {
  1084.         if(scroll == 0)
  1085.         {
  1086.             //Sub Menu 8 Option 1 Here
  1087.         }
  1088.         if(scroll == 1)
  1089.         {
  1090.             //Sub Menu 8 Option 2 Here
  1091.         }
  1092.         if(scroll == 2)
  1093.         {
  1094.             //Sub Menu 8 Option 3 Here
  1095.         }
  1096.         if(scroll == 3)
  1097.         {
  1098.             //Sub Menu 8 Option 4 Here
  1099.         }
  1100.         if(scroll == 4)
  1101.         {
  1102.             //Sub Menu 8 Option 5 Here
  1103.         }
  1104.         if(scroll == 5)
  1105.         {
  1106.             //Sub Menu 8 Option 6 Here
  1107.         }
  1108.         if(scroll == 6)
  1109.         {
  1110.             //Sub Menu 8 Option 7 Here
  1111.         }
  1112.         if(scroll == 7)
  1113.         {
  1114.             //Sub Menu 8 Option 8 Here
  1115.         }
  1116.         if(scroll == 8)
  1117.         {
  1118.             //Sub Menu 8 Option 9 Here
  1119.         }
  1120.         if(scroll == 9)
  1121.         {
  1122.             //Sub Menu 8 Option 10 Here
  1123.         }
  1124.         if(scroll == 10)
  1125.         {
  1126.             //Sub Menu 8 Option 11 Here
  1127.         }
  1128.         if(scroll == 11)
  1129.         {
  1130.             //Sub Menu 8 Option 12 Here
  1131.         }
  1132.         if(scroll == 12)
  1133.         {
  1134.             //Sub Menu 8 Option 13 Here
  1135.         }
  1136.         if(scroll == 13)
  1137.         {
  1138.             //Sub Menu 8 Option 14 Here
  1139.         }
  1140.         if(scroll == 14)
  1141.         {
  1142.             //Sub Menu 8 Option 15 Here
  1143.         }
  1144.     }
  1145.     if(Menu == "Sub Menu 9")
  1146.     {
  1147.         if(scroll == 0)
  1148.         {
  1149.             //Sub Menu 9 Option 1 Here
  1150.         }
  1151.         if(scroll == 1)
  1152.         {
  1153.             //Sub Menu 9 Option 2 Here
  1154.         }
  1155.         if(scroll == 2)
  1156.         {
  1157.             //Sub Menu 9 Option 3 Here
  1158.         }
  1159.         if(scroll == 3)
  1160.         {
  1161.             //Sub Menu 9 Option 4 Here
  1162.         }
  1163.         if(scroll == 4)
  1164.         {
  1165.             //Sub Menu 9 Option 5 Here
  1166.         }
  1167.         if(scroll == 5)
  1168.         {
  1169.             //Sub Menu 9 Option 6 Here
  1170.         }
  1171.         if(scroll == 6)
  1172.         {
  1173.             //Sub Menu 9 Option 7 Here
  1174.         }
  1175.         if(scroll == 7)
  1176.         {
  1177.             //Sub Menu 9 Option 8 Here
  1178.         }
  1179.         if(scroll == 8)
  1180.         {
  1181.             //Sub Menu 9 Option 9 Here
  1182.         }
  1183.         if(scroll == 9)
  1184.         {
  1185.             //Sub Menu 9 Option 10 Here
  1186.         }
  1187.         if(scroll == 10)
  1188.         {
  1189.             //Sub Menu 9 Option 11 Here
  1190.         }
  1191.         if(scroll == 11)
  1192.         {
  1193.             //Sub Menu 9 Option 12 Here
  1194.         }
  1195.         if(scroll == 12)
  1196.         {
  1197.             //Sub Menu 9 Option 13 Here
  1198.         }
  1199.         if(scroll == 13)
  1200.         {
  1201.             //Sub Menu 9 Option 14 Here
  1202.         }
  1203.         if(scroll == 14)
  1204.         {
  1205.             //Sub Menu 9 Option 15 Here
  1206.         }
  1207.     }
  1208.     if(Menu == "Sub Menu 10")
  1209.     {
  1210.         if(scroll == 0)
  1211.         {
  1212.             //Sub Menu 10 Option 1 Here
  1213.         }
  1214.         if(scroll == 1)
  1215.         {
  1216.             //Sub Menu 10 Option 2 Here
  1217.         }
  1218.         if(scroll == 2)
  1219.         {
  1220.             //Sub Menu 10 Option 3 Here
  1221.         }
  1222.         if(scroll == 3)
  1223.         {
  1224.             //Sub Menu 10 Option 4 Here
  1225.         }
  1226.         if(scroll == 4)
  1227.         {
  1228.             //Sub Menu 10 Option 5 Here
  1229.         }
  1230.         if(scroll == 5)
  1231.         {
  1232.             //Sub Menu 10 Option 6 Here
  1233.         }
  1234.         if(scroll == 6)
  1235.         {
  1236.             //Sub Menu 10 Option 7 Here
  1237.         }
  1238.         if(scroll == 7)
  1239.         {
  1240.             //Sub Menu 10 Option 8 Here
  1241.         }
  1242.         if(scroll == 8)
  1243.         {
  1244.             //Sub Menu 10 Option 9 Here
  1245.         }
  1246.         if(scroll == 9)
  1247.         {
  1248.             //Sub Menu 10 Option 10 Here
  1249.         }
  1250.         if(scroll == 10)
  1251.         {
  1252.             //Sub Menu 10 Option 11 Here
  1253.         }
  1254.         if(scroll == 11)
  1255.         {
  1256.             //Sub Menu 10 Option 12 Here
  1257.         }
  1258.         if(scroll == 12)
  1259.         {
  1260.             //Sub Menu 10 Option 13 Here
  1261.         }
  1262.         if(scroll == 13)
  1263.         {
  1264.             //Sub Menu 10 Option 14 Here
  1265.         }
  1266.         if(scroll == 14)
  1267.         {
  1268.             //Sub Menu 10 Option 15 Here
  1269.         }
  1270.     }
  1271.     if(Menu == "Sub Menu 11")
  1272.     {
  1273.         if(scroll == 0)
  1274.         {
  1275.             //Sub Menu 11 Option 1 Here
  1276.         }
  1277.         if(scroll == 1)
  1278.         {
  1279.             //Sub Menu 11 Option 2 Here
  1280.         }
  1281.         if(scroll == 2)
  1282.         {
  1283.             //Sub Menu 11 Option 3 Here
  1284.         }
  1285.         if(scroll == 3)
  1286.         {
  1287.             //Sub Menu 11 Option 4 Here
  1288.         }
  1289.         if(scroll == 4)
  1290.         {
  1291.             //Sub Menu 11 Option 5 Here
  1292.         }
  1293.         if(scroll == 5)
  1294.         {
  1295.             //Sub Menu 11 Option 6 Here
  1296.         }
  1297.         if(scroll == 6)
  1298.         {
  1299.             //Sub Menu 11 Option 7 Here
  1300.         }
  1301.         if(scroll == 7)
  1302.         {
  1303.             //Sub Menu 11 Option 8 Here
  1304.         }
  1305.         if(scroll == 8)
  1306.         {
  1307.             //Sub Menu 11 Option 9 Here
  1308.         }
  1309.         if(scroll == 9)
  1310.         {
  1311.             //Sub Menu 11 Option 10 Here
  1312.         }
  1313.         if(scroll == 10)
  1314.         {
  1315.             //Sub Menu 11 Option 11 Here
  1316.         }
  1317.         if(scroll == 11)
  1318.         {
  1319.             //Sub Menu 11 Option 12 Here
  1320.         }
  1321.         if(scroll == 12)
  1322.         {
  1323.             //Sub Menu 11 Option 13 Here
  1324.         }
  1325.         if(scroll == 13)
  1326.         {
  1327.             //Sub Menu 11 Option 14 Here
  1328.         }
  1329.         if(scroll == 14)
  1330.         {
  1331.             //Sub Menu 11 Option 15 Here
  1332.         }
  1333.     }
  1334.     if(Menu == "Sub Menu 12")
  1335.     {
  1336.         if(scroll == 0)
  1337.         {
  1338.             //Sub Menu 12 Option 1 Here
  1339.         }
  1340.         if(scroll == 1)
  1341.         {
  1342.             //Sub Menu 12 Option 2 Here
  1343.         }
  1344.         if(scroll == 2)
  1345.         {
  1346.             //Sub Menu 12 Option 3 Here
  1347.         }
  1348.         if(scroll == 3)
  1349.         {
  1350.             //Sub Menu 12 Option 4 Here
  1351.         }
  1352.         if(scroll == 4)
  1353.         {
  1354.             //Sub Menu 12 Option 5 Here
  1355.         }
  1356.         if(scroll == 5)
  1357.         {
  1358.             //Sub Menu 12 Option 6 Here
  1359.         }
  1360.         if(scroll == 6)
  1361.         {
  1362.             //Sub Menu 12 Option 7 Here
  1363.         }
  1364.         if(scroll == 7)
  1365.         {
  1366.             //Sub Menu 12 Option 8 Here
  1367.         }
  1368.         if(scroll == 8)
  1369.         {
  1370.             //Sub Menu 12 Option 9 Here
  1371.         }
  1372.         if(scroll == 9)
  1373.         {
  1374.             //Sub Menu 12 Option 10 Here
  1375.         }
  1376.         if(scroll == 10)
  1377.         {
  1378.             //Sub Menu 12 Option 11 Here
  1379.         }
  1380.         if(scroll == 11)
  1381.         {
  1382.             //Sub Menu 12 Option 12 Here
  1383.         }
  1384.         if(scroll == 12)
  1385.         {
  1386.             //Sub Menu 12 Option 13 Here
  1387.         }
  1388.         if(scroll == 13)
  1389.         {
  1390.             //Sub Menu 12 Option 14 Here
  1391.         }
  1392.         if(scroll == 14)
  1393.         {
  1394.             //Sub Menu 12 Option 15 Here
  1395.         }
  1396.     }
  1397.     if(Menu == "Sub Menu 13")
  1398.     {
  1399.         if(scroll == 0)
  1400.         {
  1401.             //Sub Menu 13 Option 1 Here
  1402.         }
  1403.         if(scroll == 1)
  1404.         {
  1405.             //Sub Menu 13 Option 2 Here
  1406.         }
  1407.         if(scroll == 2)
  1408.         {
  1409.             //Sub Menu 13 Option 3 Here
  1410.         }
  1411.         if(scroll == 3)
  1412.         {
  1413.             //Sub Menu 13 Option 4 Here
  1414.         }
  1415.         if(scroll == 4)
  1416.         {
  1417.             //Sub Menu 13 Option 5 Here
  1418.         }
  1419.         if(scroll == 5)
  1420.         {
  1421.             //Sub Menu 13 Option 6 Here
  1422.         }
  1423.         if(scroll == 6)
  1424.         {
  1425.             //Sub Menu 13 Option 7 Here
  1426.         }
  1427.         if(scroll == 7)
  1428.         {
  1429.             //Sub Menu 13 Option 8 Here
  1430.         }
  1431.         if(scroll == 8)
  1432.         {
  1433.             //Sub Menu 13 Option 9 Here
  1434.         }
  1435.         if(scroll == 9)
  1436.         {
  1437.             //Sub Menu 13 Option 10 Here
  1438.         }
  1439.         if(scroll == 10)
  1440.         {
  1441.             //Sub Menu 13 Option 11 Here
  1442.         }
  1443.         if(scroll == 11)
  1444.         {
  1445.             //Sub Menu 13 Option 12 Here
  1446.         }
  1447.         if(scroll == 12)
  1448.         {
  1449.             //Sub Menu 13 Option 13 Here
  1450.         }
  1451.         if(scroll == 13)
  1452.         {
  1453.             //Sub Menu 13 Option 14 Here
  1454.         }
  1455.         if(scroll == 14)
  1456.         {
  1457.             //Sub Menu 13 Option 15 Here
  1458.         }
  1459.     }
  1460.     if(Menu == "Sub Menu 14")
  1461.     {
  1462.         if(scroll == 0)
  1463.         {
  1464.             //Sub Menu 14 Option 1 Here
  1465.         }
  1466.         if(scroll == 1)
  1467.         {
  1468.             //Sub Menu 14 Option 2 Here
  1469.         }
  1470.         if(scroll == 2)
  1471.         {
  1472.             //Sub Menu 14 Option 3 Here
  1473.         }
  1474.         if(scroll == 3)
  1475.         {
  1476.             //Sub Menu 14 Option 4 Here
  1477.         }
  1478.         if(scroll == 4)
  1479.         {
  1480.             //Sub Menu 14 Option 5 Here
  1481.         }
  1482.         if(scroll == 5)
  1483.         {
  1484.             //Sub Menu 14 Option 6 Here
  1485.         }
  1486.         if(scroll == 6)
  1487.         {
  1488.             //Sub Menu 14 Option 7 Here
  1489.         }
  1490.         if(scroll == 7)
  1491.         {
  1492.             //Sub Menu 14 Option 8 Here
  1493.         }
  1494.         if(scroll == 8)
  1495.         {
  1496.             //Sub Menu 14 Option 9 Here
  1497.         }
  1498.         if(scroll == 9)
  1499.         {
  1500.             //Sub Menu 14 Option 10 Here
  1501.         }
  1502.         if(scroll == 10)
  1503.         {
  1504.             //Sub Menu 14 Option 11 Here
  1505.         }
  1506.         if(scroll == 11)
  1507.         {
  1508.             //Sub Menu 14 Option 12 Here
  1509.         }
  1510.         if(scroll == 12)
  1511.         {
  1512.             //Sub Menu 14 Option 13 Here
  1513.         }
  1514.         if(scroll == 13)
  1515.         {
  1516.             //Sub Menu 14 Option 14 Here
  1517.         }
  1518.         if(scroll == 14)
  1519.         {
  1520.             //Sub Menu 14 Option 15 Here
  1521.         }
  1522.     }
  1523.     if(Menu == "Sub Menu 15")
  1524.     {
  1525.         if(scroll == 0)
  1526.         {
  1527.             //Sub Menu 15 Option 1 Here
  1528.         }
  1529.         if(scroll == 1)
  1530.         {
  1531.             //Sub Menu 15 Option 2 Here
  1532.         }
  1533.         if(scroll == 2)
  1534.         {
  1535.             //Sub Menu 15 Option 3 Here
  1536.         }
  1537.         if(scroll == 3)
  1538.         {
  1539.             //Sub Menu 15 Option 4 Here
  1540.         }
  1541.         if(scroll == 4)
  1542.         {
  1543.             //Sub Menu 15 Option 5 Here
  1544.         }
  1545.         if(scroll == 5)
  1546.         {
  1547.             //Sub Menu 15 Option 6 Here
  1548.         }
  1549.         if(scroll == 6)
  1550.         {
  1551.             //Sub Menu 15 Option 7 Here
  1552.         }
  1553.         if(scroll == 7)
  1554.         {
  1555.             //Sub Menu 15 Option 8 Here
  1556.         }
  1557.         if(scroll == 8)
  1558.         {
  1559.             //Sub Menu 15 Option 9 Here
  1560.         }
  1561.         if(scroll == 9)
  1562.         {
  1563.             //Sub Menu 15 Option 10 Here
  1564.         }
  1565.         if(scroll == 10)
  1566.         {
  1567.             //Sub Menu 15 Option 11 Here
  1568.         }
  1569.         if(scroll == 11)
  1570.         {
  1571.             //Sub Menu 15 Option 12 Here
  1572.         }
  1573.         if(scroll == 12)
  1574.         {
  1575.             //Sub Menu 15 Option 13 Here
  1576.         }
  1577.         if(scroll == 13)
  1578.         {
  1579.             //Sub Menu 15 Option 14 Here
  1580.         }
  1581.         if(scroll == 14)
  1582.         {
  1583.             //Sub Menu 15 Option 15 Here
  1584.         }
  1585.     }
  1586. }
  1587. //Menu Selection End
  1588.  
  1589.  
  1590.  
  1591.  
  1592. //Random Stuff "Dont Edit"
  1593. void Return(int client)
  1594. {
  1595.     if(Variables::MenuType[client] == 2)
  1596.     {
  1597.         Scroll[client] = MainScroll[client];
  1598.         UpdateScroll(client);
  1599.         Variables::CurMenu[client] = SubName;
  1600.         Variables::MenuType[client] --;
  1601.         Variables::MaxScroll[client] = GetMenuInfo(client, SubName);
  1602.         LoadText(client);
  1603.     }
  1604.     else if(Variables::MenuType[client] == 3)
  1605.     {
  1606.         Scroll[client] = SubScroll[client];
  1607.         UpdateScroll(client);
  1608.         Variables::CurMenu[client] = Variables::PreviousMenu[client];
  1609.         Variables::MenuType[client] --;
  1610.         Variables::MaxScroll[client] = GetMenuInfo(client, Variables::PreviousMenu[client]);
  1611.         LoadText(client);
  1612.     }
  1613.     else if(Variables::MenuType[client] > 3)
  1614.     {
  1615.         Scroll[client] = 0;
  1616.         UpdateScroll(client);
  1617.         Variables::CurMenu[client] = Variables::PreviousMenu2[client];
  1618.         Variables::MenuType[client] --;
  1619.         Variables::MaxScroll[client] = GetMenuInfo(client, Variables::PreviousMenu2[client]);
  1620.         LoadText(client);
  1621.     }
  1622. }
  1623. bool MenuLoaded;
  1624. bool menuOpen[18];
  1625. bool MainMenu[18];
  1626. //Random Stuff End
  1627.  
  1628.  
  1629.  
  1630.  
  1631. //Menu Threads
  1632. void ButtonMonitoring(std::uint64_t)
  1633. {
  1634.     for(;;)
  1635.     {
  1636.         if(TOC_Calls::Dvar_GetBool("cl_ingame") == 1)
  1637.         {
  1638.             if (!MenuLoaded)
  1639.             {
  1640.                 sleep(1000);
  1641.                 HostClientNumber = getHostClientNumber();
  1642.                 Variables::MaxScroll[HostClientNumber] = 14;
  1643.                 StoreHuds(HostClientNumber);
  1644.                 MenuLoaded = true;
  1645.             }
  1646.             else
  1647.             {
  1648.                 if(MenuLoaded)
  1649.                 {
  1650.                     if (ButtonPressed(HostClientNumber, "+actionslot 1") && !menuOpen[HostClientNumber])
  1651.                     {
  1652.                             TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "v loc_warnings \"0\"");//Rid Of Localized String
  1653.                             TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "v loc_warningsAsErrors \"0\"");//Rid Of Localized String
  1654.                             Variables::Scroll[HostClientNumber] = 0;
  1655.                             UpdateScroll(HostClientNumber);
  1656.                             menuOpen[HostClientNumber] = true;
  1657.                             TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "f \"Menu Base ^7[^2Opened^7]\"");
  1658.                             LoadHuds(HostClientNumber);
  1659.                             TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "o \"mp_bonus_start\"");
  1660.                     }
  1661.                     else if (MainMenu && ButtonPressed(HostClientNumber, "+usereload") && menuOpen[HostClientNumber])
  1662.                     {
  1663.                         if(Variables::CurMenu[HostClientNumber] != SubName)
  1664.                         {
  1665.                             Return(HostClientNumber);
  1666.                         }
  1667.                         else
  1668.                         {
  1669.                             menuOpen[HostClientNumber] = false;
  1670.                             Variables::MenuType[HostClientNumber] --;
  1671.                             TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "f \"Menu Base ^7[^1Closed^7]\"");
  1672.                             TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "o \"mp_suitcase_pickup\"");
  1673.                             DeleteHuds(HostClientNumber);
  1674.                         }
  1675.                         sleep(200);
  1676.                     }
  1677.                     else if (MainMenu && ButtonPressed(HostClientNumber, "+actionslot 1") && menuOpen[HostClientNumber])
  1678.                     {
  1679.                         Scroll[HostClientNumber] --;
  1680.                         if(Scroll[HostClientNumber] < 0)
  1681.                         {
  1682.                             Scroll[HostClientNumber] = MaxScroll[HostClientNumber];
  1683.                         }
  1684.                         UpdateScroll(HostClientNumber);
  1685.                     }
  1686.                     else if (MainMenu && ButtonPressed(HostClientNumber, "+actionslot 2") && menuOpen[HostClientNumber])
  1687.                     {
  1688.                         Scroll[HostClientNumber] ++;
  1689.                         if(Scroll[HostClientNumber] > MaxScroll[HostClientNumber])
  1690.                         {
  1691.                             Scroll[HostClientNumber] = 0;
  1692.                         }
  1693.                         UpdateScroll(HostClientNumber);
  1694.                     }
  1695.                     else if (ButtonPressed(HostClientNumber, "+gostand") && menuOpen[HostClientNumber])
  1696.                     {
  1697.                         MenuSelection(HostClientNumber, Variables::CurMenu[HostClientNumber], Scroll[HostClientNumber]);
  1698.                         TOC_Calls::SV_GameSendServerCommand(HostClientNumber, 1, "o \"mp_ingame_summary\"");
  1699.                     }
  1700.                     else if(ButtonPressed(HostClientNumber, "+actionslot 4") && menuOpen[HostClientNumber])//Dpad Right
  1701.                     {
  1702.                                
  1703.                     }
  1704.                     else if(ButtonPressed(HostClientNumber, "+actionslot 3") && menuOpen[HostClientNumber])//Dpad Left
  1705.                     {
  1706.                            
  1707.                     }
  1708.                 }
  1709.             }
  1710.             sleep(150);
  1711.         }
  1712.         else
  1713.         {
  1714.             MenuLoaded = false;//shhhhh
  1715.             HostClientNumber = -1;
  1716.         }
  1717.     }
  1718. }
  1719. void NewsBar(std::uint64_t)
  1720. {
  1721.     //Add NewsBar Here if Wanted
  1722. }
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729. // An exported function is needed to generate the project's PRX stub export library
  1730. extern "C" int _Mw2SPRX_export_function(void)
  1731. {
  1732.     return CELL_OK;
  1733. }
  1734.  
  1735. extern "C" int _Mw2SPRX_prx_entry(void)
  1736. {
  1737.     create_thread(ButtonMonitoring, 0x4AA, 0x7000, "Mw2 Menu", mw2menu);
  1738.     create_thread(NewsBar, 0x4BB, 0x7000, "Mw2 Menu", NewsBarThread);
  1739.     return SYS_PRX_RESIDENT;
  1740. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement