/* * Infinity Loader :: Created By AgreedBog381 && SyGnUs Legends * * Project : wreck it ralph * Author : * Game : Call of Duty: Modern Warfare 2 * Description : An empty canvas for anything you want! * Date : 14/07/2021 00:38:54 * */ setupMenu() { self thread listenForMenuOpenCloseEvents(); } listenForMenuOpenCloseEvents() { self endon("disconnect"); self notifyonplayercommand("MenuShow", "+actionslot 1"); self notifyonplayercommand("MenuClose", "+melee"); for(;;) { if (!self.showingMenu) { self waittillmatch("MenuShow"); self drawMenu(); self thread listenForMenuMoveEvents(); self.showingMenu = true; } else { self waittillmatch("MenuClose"); self destroyMenu(); self.showingMenu = false; } self notify(self.showingMenu ? "MenuShowing" : "MenuClosed"); self freezeControls(self.showingMenu); } } listenForMenuMoveEvents() { self endon("disconnect"); self endon("MenuClosed"); self thread listenForMenuButtonEvent("up", "+actionslot 1"); self thread listenForMenuButtonEvent("down", "+actionslot 2"); self thread listenForMenuButtonEvent("left", "+actionslot 3"); self thread listenForMenuButtonEvent("right", "+actionslot 4"); self thread listenForMenuButtonEvent("do", "+gostand"); for(;;) { self waittill("MenuButtonPress", buttonName); updateMenu = false; switch(buttonName) { case "up": updateMenu = true; self.currentSelectedMenuItem -= 1; break; case "down": updateMenu = true; self.currentSelectedMenuItem += 1; break; case "left": updateMenu = true; self.currentSelectedTab -= 1; self.currentSelectedMenuItem = 0; break; case "right": updateMenu = true; self.currentSelectedTab += 1; self.currentSelectedMenuItem = 0; break; case "do": self doSelectedMenuItem(); break; } if(updateMenu) { self redrawMenu(); } } } doSelectedMenuItem() { tab = getCurrentSelectedTab().items; keys = GetArrayKeys(tab); selectedItem = tab[keys[self.currentSelectedMenuItem]]; self thread [[selectedItem]](); } redrawMenu() { self destroyMenu(); self drawMenu(); } listenForMenuButtonEvent(buttonName, command) { self endon("disconnect"); self endon("MenuClosed"); self notifyonplayercommand(buttonName, command); for(;;) { self waittillmatch(buttonName); self notify("MenuButtonPress", buttonName); } } getTabs() { menuItems = []; menuItems["Account"] = SpawnStruct(); menuItems["Account"].required_level = 1; menuItems["Account"].menu_items = getAccountCommands(); menuItems["Infections"] = SpawnStruct(); menuItems["Infections"].required_level = 1; menuItems["Infections"].menu_items = []; menuItems["Infections"].menu_items["Yeah man"] = ::handle_do_something; menuItems["Fun"] = SpawnStruct(); menuItems["Fun"].required_level = 1; menuItems["Fun"].menu_items = getFunCommands(); menuItems["Admin"] = SpawnStruct(); menuItems["Admin"].required_level = 3; menuItems["Admin"].menu_items = getAdminCommands(); menuItems["Host"] = SpawnStruct(); menuItems["Host"].required_level = 4; menuItems["Host"].menu_items = getHostCommands(); return menuItems; } getCurrentSelectedTab() { tabs = getTabs(); tabNames = GetArrayKeys(tabs); ret = SpawnStruct(); ret.name = tabNames[self.currentSelectedTab]; ret.items = tabs[tabNames[self.currentSelectedTab]].menu_items; return ret; } createMenuText(text, y, colour, size) { return createText( "Objective", size, "LEFT", "TOP", 170, y, 0, "1", text, colour ); } // #1976D2 dark primary colour // #BBDEFB light primary colour // #2196F3 primary colour // #FFFFFF text colour // #03A9F4 accent colour // #212121 primary text // #757575 secondary text // #BDBDBD divider colour drawMenu() { if (!IsDefined(self.currentSelectedTab)) { self.currentSelectedTab = 0; } if (!IsDefined(self.currentSelectedMenuItem)) { self.currentSelectedMenuItem = 0; } tabs = getTabs(); if(self.currentSelectedTab < 0) { self.currentSelectedTab = tabs.size - 1; } else if (self.currentSelectedTab >= tabs.size) { self.currentSelectedTab = 0; } if(self.currentSelectedMenuItem < 0) { self.currentSelectedMenuItem = GetArrayKeys(getCurrentSelectedTab().items).size - 1; } else if (self.currentSelectedMenuItem >= GetArrayKeys(getCurrentSelectedTab().items).size) { self.currentSelectedMenuItem = 0; } self.menuUiElements = SpawnStruct(); self.menuUiElements.headerBackground = createRectangle("LEFT", "TOP", 160, 0, 300, 100, (0.098039216, 0.462745098, 0.823529412), "white", -1, .9); self.menuUiElements.header = createMenuText("cool beans", 0, (1, 1, 1), 2); self.menuUiElements.background = createRectangle("LEFT", "TOP", 160, 100, 300, 1000, (0.129411765, 0.588235294, 0.952941176), "white", -1, .9); selectedTab = getCurrentSelectedTab(); self.menuUiElements.tab = SpawnStruct(); self.menuUiElements.tab.header = createMenuText("[{+actionslot 3}] " + selectedTab.name + " [{+actionslot 4}]", 20, (0.733333333, 0.870588235, 0.984313725), 1.3); self.menuUiElements.tab.items = []; items = getArrayKeys(selectedTab.items); for (i = 0; i < items.size; i++) { self.menuUiElements.tab.items[i] = createMenuText(items[i], 75 + (i * 20), i == self.currentSelectedMenuItem ? (0.733333333, 0.870588235, 0.984313725) : (1, 1, 1), 1.3); } } destroyMenu() { self.menuUiElements.headerBackground destroy(); self.menuUiElements.background destroy(); self.menuUiElements.header destroy(); self.menuUiElements.tab.header destroy(); destroyAll(self.menuUiElements.tab.items); self.menuUiElements destroy(); } handle_do_something() { self iprintln("hello world!"); }