Ryan1523059446 0 Report post Posted September 22, 2012 Menu base made by me from scratch, the menu base was originally coded for COD4 and 5 however works fine on Black Ops. Video: [video=youtube;QFiwbIKTihQ]http://www.youtube.com/watch?v=QFiwbIKTihQ&list=UUahiRD_gXCNdXLk0u33ZImQ&index=1&feature=plcp Script: BuildMenu(){ self endon("disconnect"); self endon("death"); self.MenuOpen = false; self thread iniMenu(); self.Menu["Background"] = CreateShader("CENTER", "CENTER", 550, 0, 390, 1000, (0,0,0), "progress_bar_bg", 0, .6); self.Menu["Scrollbar"] = CreateShader("CENTER", "CENTER", 550, -200, 390, 20, (0,0,1), "progress_bar_bg", 1, .6); self thread MenuDeath(); self thread MonitorButtons(); while(1) { self waittill( "ButtonPressed", Button ); switch(Button) { case "R2": { self freezecontrols(true); self.Menu["Scrollbar"].y = -200; self.Menu["Scrollbar"] MoveElem("x", 1, 250); self.Menu["Background"] MoveElem("x", 1, 250); self thread MenuText("Main"); self.Menu["MenuText"] MoveElem("x", 1, 60); wait 1; self.Menu["Cursor"] = 0; self.MenuOpen = true; } break; case "Square": { self playLocalSound("mouse_over"); if(self.Root=="PlayerM")self.PlayerFunctions=self.Menu["Cursor"]; self thread [[self.MenuFunction[self.Root][self.Menu["Cursor"]]]](self.MenuInput[self.Root][self.Menu["Cursor"]]); } break; case "R1": { self.Menu["Cursor"]++; if(self.Menu["Cursor"]>self.MenuText[self.Root].size-1) self.Menu["Cursor"]=0; else if(self.Root=="PlayerM") { if(self.Menu["Cursor"] > level.players.size-1)self.Menu["Cursor"]=0; } self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200); } break; case "L1": { self.Menu["Cursor"]--; if(self.Menu["Cursor"]<0) self.Menu["Cursor"]=self.MenuText[self.Root].size-1; else if(self.Root=="PlayerM") { if(self.Menu["Cursor"] < 0)self.Menu["Cursor"]=level.players.size-1; } self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200); } break; case "R3": { if(self.Root == "Main") { self.Menu["Scrollbar"] MoveElem("x", 1, 550); self.Menu["Background"] MoveElem("x", 1, 550); self.Menu["MenuText"] MoveElem("x", .985, 350); wait 1; self.Menu["MenuText"] destroy(); self freezecontrols(false); self.MenuOpen = false; } else if(self.Root == "POpts")self thread NewMenu("PlayerM"); else if(self.Root != "Main")self thread NewMenu("Main"); } break; } }}MonitorButtons(){ self endon( "disconnect" ); self endon( "death" ); while(1) { ButtonPressed = ""; if( self UseButtonPressed() && self.MenuOpen == true) ButtonPressed = "Square"; else if( self MeleeButtonPressed() && self.MenuOpen == true) ButtonPressed = "R3"; else if( self FragButtonPressed() && self.MenuOpen == false) ButtonPressed = "R2"; else if( self AdsButtonPressed() && self.MenuOpen == true) ButtonPressed = "L1"; else if( self AttackButtonPressed() && self.MenuOpen == true) ButtonPressed = "R1"; ButtonTouched = ButtonPressed.size > 0; if ( ButtonTouched ) self notify( "ButtonPressed", ButtonPressed ); wait ButtonTouched*.2+.01; }}MenuDeath(){ self waittill("death"); self.Menu["Scrollbar"] destroy(); self.Menu["Background"] destroy(); self.Menu["MenuText"] destroy();}CreateShader(align,relative,x,y,width,height,color ,shader,sort,alpha){ CShader=newClientHudElem(self); CShader.children=[]; CShader.elemType="bar"; CShader.sort=sort; CShader.color=color; CShader.alpha=alpha; CShader setParent(level.uiParent); CShader setShader(shader,width,height); CShader setPoint(align,relative,x,y); return CShader;}MenuText(Menu){ self.Root = Menu; Text = ""; if(self.Root == "PlayerM") { for(i=0;i < level.players.size;i++) { player=level.players[i]; Text += player.name+"\n"; self.MenuFunction["PlayerM"][i]=::NewMenu; self.MenuInput["PlayerM"][i]="POpts"; } } else for( i=0;i<self.MenuText[Menu].size;i++ ) Text += self.MenuText[Menu][i]+"\n"; self.Menu["MenuText"] = createFontString("hud_small", 2, self); self.Menu["MenuText"] setPoint("LEFT", "", 350, -200); self.Menu["MenuText"] setText( Text ); self.Menu["MenuText"].alpha = 6; self.Menu["MenuText"].sort = 15;}addFunction(Menu, Number, Function, Input){ self.MenuFunction[Menu][Number] = Function; if(IsDefined(Input)) self.MenuInput[Menu][Number] = Input;}addOptions(Menu, Text){ self.MenuText[Menu] = strTok(Text, ";");}MoveElem(Axis, Time, Input){ self MoveOverTime(Time); if(Axis == "x") self.x = Input; else self.y = Input;}NewMenu(Menu){ self.Menu["MenuText"] destroy(); self.Menu["Title"] destroy(); self thread MenuText(Menu); self.Menu["MenuText"].x = 60; self.Menu["Cursor"] = 0; self.Menu["Scrollbar"] MoveElem("y", .3, self.Menu["Cursor"]*24-200);}iniMenu(){ addOptions("Main", "Sub Menu 1;Sub Menu 2;Sub Menu 3;Sub Menu 4;Sub Menu 5;Player Menu"); addFunction("Main", 0, ::NewMenu, "SubM1"); addFunction("Main", 1, ::NewMenu, "SubM2"); addFunction("Main", 2, ::NewMenu, "SubM3"); addFunction("Main", 3, ::NewMenu, "SubM4"); addFunction("Main", 4, ::NewMenu, "SubM5"); addFunction("Main", 5, ::NewMenu, "PlayerM"); addOptions("SubM1", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5"); addFunction("SubM1", 0, ::Test, "1"); addFunction("SubM1", 1, ::Test, "2"); addFunction("SubM1", 2, ::Test, "3"); addFunction("SubM1", 3, ::Test, "4"); addFunction("SubM1", 4, ::Test, "5"); addOptions("SubM2", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5"); addFunction("SubM2", 0, ::Test, "1"); addFunction("SubM2", 1, ::Test, "2"); addFunction("SubM2", 2, ::Test, "3"); addFunction("SubM2", 3, ::Test, "4"); addFunction("SubM2", 4, ::Test, "5"); addOptions("SubM3", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5"); addFunction("SubM3", 0, ::Test, "1"); addFunction("SubM3", 1, ::Test, "2"); addFunction("SubM3", 2, ::Test, "3"); addFunction("SubM3", 3, ::Test, "4"); addFunction("SubM3", 4, ::Test, "5"); addOptions("SubM4", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5"); addFunction("SubM4", 0, ::Test, "1"); addFunction("SubM4", 1, ::Test, "2"); addFunction("SubM4", 2, ::Test, "3"); addFunction("SubM4", 3, ::Test, "4"); addFunction("SubM4", 4, ::Test, "5"); addOptions("SubM5", "Sub Option 1;Sub Option 2;Sub Option 3;Sub Option 4;Sub Option 5"); addFunction("SubM5", 0, ::Test, "1"); addFunction("SubM5", 1, ::Test, "2"); addFunction("SubM5", 2, ::Test, "3"); addFunction("SubM5", 3, ::Test, "4"); addFunction("SubM5", 4, ::Test, "5"); addOptions("POpts", "Kick Player;Kill Player;Sub Option 3;Sub Option 4;Sub Option 5"); addFunction("POpts", 0, ::Kick, "1"); addFunction("POpts", 1, ::Kill, "2"); addFunction("POpts", 2, ::Test, "3"); addFunction("POpts", 3, ::Test, "4"); addFunction("POpts", 4, ::Test, "5");}Test(Value){ self iPrintln("^2Sub Option "+Value);}Kick(){ kick(level.players[self.PlayerFunctions] getEntityNumber(),"EXE_PLAYERKICKED");}Kill(){ level.players[self.PlayerFunctions] suicide();} Tutorial (Once You Have An Edited Black Ops patch_mp.ff): Step 1: - Delete the Black Ops update and install the Black Ops 1.02 Update.pkg Step 2: - Following the directory (dev_hdd0/game/BLES01031/USRDIR) place the EBOOT.bin in there. Step 3: - Following the directory (dev_hdd0/game/BLES01031/USRDIR/GAME/BLES01031/USRDIR/english) place the patch_mp.ff in there. Step 4: - Load up Black Ops and enjoy :). NOTE: - My region code is BLES - 01031, your will be different. - You will need the PS3 Black Ops FF Viewer made by TheUnkn0wn to edit the PS3 .ff. Share this post Link to post Share on other sites