THREAD: [Release] nay1995's Sexy Cod4 & 5 Mod Menu Base
  1. 10-26-2012, 10:50 AM
    nay1995's Avatar
    nay1995
    The Master
    nay1995's Avatar
    nay1995
    The Master
    1,766
    Posts
    13,087
    Reputation
    Feb 2010
    NextGenUpdate
    Thought it was about time i did one so for the last hour or so i compiled this base.



    I have put alot of help in the patch to guide you along whats what, what to do & what things mean.

    Features:
    - Very responsive (In the video i open and close the menu multiple times to show you this)
    - Overflow fix
    - Has title for each menu
    - Allows you to set a parent (go back to a specific menu)
    - Very easy to use
    - Has built in player menu
    - Can easily be customized
    - And much, much more.

    How the menu works:

    Ok first things first:

    Thread the menu from a onPlayerSpawned() preferably the rank.gsc (self thread nay1995s_Menu(); ) and put this on onPlayerSpawned() (self.menuOpen = falseWinky Winky

    and put these in the init() (These arent needed but may been needed in the future so...)

    Spoiler:


    shaderz = strTok("ui_camoskin_gold;ui_camoskin_cmdtgr;ui_camoskin_st agger;ui_camoskin_fall", ";" ); for(k = 0; k < shaderz.size; k++) precacheShader(shaderz[k]);
    rankS = strTok("pvt1;pvt2;pvt3;pfc1;pfc2;pfc3;lcpl1;lcpl2;lcpl3;cp l1;cpl2;cpl3;sgt1;sgt2;sgt3;ssgt1;ssgt2;ssgt3;gysg t1;gysgt2;gysgt3;msgt1;msgt2;msgt3;mgysgt1;mgysgt2 ;mgysgt3;2ndlt1;2ndlt2;2ndlt3;1stlt1;1stlt2;1stlt3 ;capt1;capt2;capt3;maj1;maj2;maj3;ltcol1;ltcol2;lt col3;col1;col2;col3;bgen1;bgen2;bgen3;majgen1;majg en2;majgen3;ltgen1;ltgen2;ltgen3;gen1;gen2;gen3;co mm1", ";" ); for(k = 0; k < rankS.size; k++) precacheShader("rank_"+rankS[k]);
    for(n = 0; n < 11; n++) precacheShader("rank_prestige"+n);


    Things you may need to know:
    Spoiler:

    How to add a option:
    - when you open the menu, go find createMenu_ini(), below is a list of menus/options to add a option simply put addItem(menu Number, List Number, Text, Function, Input) its as simple as that.

    To add a parent for a menu (Link back to a menu and allows you to put title text for a menu:
    - put addParent(Title Text, Current Menu, Menu To Go Back To)

    You will get the jist of it when your editing.

    Adding a sub menu:
    - all you need to do is add an item addItem(Current Menu Number, List Number, Text, ::Sub, and the menus your subbing e.g. 1) without the ""!


    and i think thats all you will need to know.

    If you experience any bugs please tell me and i will fix them, but there shouldnt be any.


    Menu base code:

    #include common_scripts\utility;
    #include maps\mp\gametypes\_hud_util;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_rank;

    CreateMenu_Text( menu )
    {
    self.Menu["Current"] = menu;
    self.Menu["Cursor"] = 0;
    Text = "";

    for( i = 0; i < self.Menu[MenuReturn()].size; i++ ) Text +=self.Menu[MenuReturn()]+"\n";
    {
    self.Menu["Text"] = self CreateText("objective", 1.5, "TOPCENTER","TOPCENTER", 0, 30,1,1000, Text ); //35 + 17.5 * i
    }

    self.Menu["Top"] = self CreateText("console", 2, "TOPCENTER","TOPCENTER", 0, 0,1,1000, "" );

    self endon("death");
    self endon("disconnect");
    self endon("ClosedM");
    for(;Winky Winky
    {
    self.Menu["Top"] setText( self.Menu["Title"][MenuReturn()] );
    wait .4;
    }
    wait 0.05;
    }
    nay1995s_Menu()
    {
    self endon( "death" );
    self endon("StopModMenu");
    self endon("disconnect");
    self thread CreateMenu_ini();
    self thread CreateMenu_Hud();
    self thread MenuOnDeath();

    for(;Winky Winky
    {
    if(self FragButtonPressed() && self.menuOpen == false)
    {
    self freezecontrols(true);
    self.menuOpen = true;
    self.Menu["Cursor"] = 0;
    self thread CreateMenu_Text(0); // loads main menu
    self.Menu["ScrollBar"].alpha = 1;
    self.Menu["BackGround"].alpha = 1;
    self.Menu["ScrollBar"].y = 30;
    self iPrintln("Subscribe to: www.YouTube.com/nay1995x \n He is the creator of this menu!"); // dont remove please.
    }
    if(self UseButtonPressed() && self.menuOpen == true)
    {
    if(self.Menu["Current"] == 2)self.PlayerCurs=self.Menu["Cursor"];
    self thread [[self.MenuFunc[self.Menu["Current"]][self.Menu["Cursor"]]]](self.MenuInput[self.Menu["Current"]][self.Menu["Cursor"]]);
    }
    if(self AttackButtonPressed())
    {
    self.Menu["Cursor"]++;
    if(self.Menu["Cursor"]>self.Menu[MenuReturn()].size-1) self.Menu["Cursor"]=0; // self.Menu[MenuReturn()].size-1)
    self.Menu["ScrollBar"] MoveElem("y", .3, self.Menu["Cursor"]*18+30);
    }
    if(self AdsButtonPressed() && self.menuOpen == true)
    {
    self.Menu["Cursor"]--;
    if(self.Menu["Cursor"]<0) self.Menu["Cursor"]=self.Menu[MenuReturn()].size-1;
    self.Menu["ScrollBar"] MoveElem("y", .3, self.Menu["Cursor"]*18+30);
    }
    if(self MeleeButtonPressed() && self.menuOpen == true)
    {
    if(self.Menu["Current"] == 0)
    {
    wait .05;
    self.Menu["Cursor"] = 0;
    //self iPrintln("Debug: Menu Shut Down");
    self.menuOpen = false;
    self notify("ClosedM");
    self.Menu["ScrollBar"].alpha = 0;
    self.Menu["BackGround"].alpha = 0;
    self freezecontrols(false);
    }
    else if(isDefined(self.Menu["Parent"][MenuReturn()])) self thread Sub(self.Menu["Parent"][MenuReturn()]);
    else self thread Sub(0);
    }
    else if(self.menuOpen == false)
    {
    }
    wait .25;
    }
    }
    CreateMenu_Hud()
    {
    self.Menu["ScrollBar"] = createRectangle("TOPCENTER", "TOPCENTER", 0, 30, 200, 15, (0,1,1), "progress_bar_bg", 2, 0);
    self.Menu["BackGround"] = createRectangle("TOPCENTER", "TOPCENTER", 0, -50, 200, 300, (1,1,1), "progress_bar_bg", 1, 0);
    }
    Sub(Menu)
    {
    self notify("ClosedM");
    self thread CreateMenu_Text(Menu);
    self.Menu["Cursor"] = 0;
    self.Menu["ScrollBar"] MoveElem("y", .3, self.Menu["Cursor"]*18+30);
    }
    MenuOnDeath()
    {
    self waittill("death");
    self.Menu["ScrollBar"].alpha = 0;
    self.Menu["BackGround"].alpha = 0;
    self.menuOpen = false;
    }
    MenuReturn()
    {
    return self.Menu["Current"];
    }
    NumberReturn()
    {
    return self.Menu["Number"];
    }
    CreateMenu_ini()
    {
    self.Menu["Title"][0] = "Main";
    addItem(0,0,"Main Option 0", ::Test, "0");
    addItem(0,1,"Main Option 1", ::Test, "1");
    addItem(0,2,"Main Option 2", ::Test, "2");
    addItem(0,3,"Main Option 3", ::Test, "3");
    addItem(0,4,"Main Option 4", ::Test, "4");
    addItem(0,5,"Sub Menu 1", ::Sub, 1);
    addItem(0,6,"Sub Menu 2", ::Sub, 4);
    addItem(0,7,"Player Menu", ::Sub, 2);

    addParent("Sub Menu 1", 1, 0); // Layout - Menu Text - Current Menu - Menu To go to (If the parent isnt defined it will automatically go back to menu 0 "Default")
    addItem(1,0,"Sub Option 0", ::Test, "0");
    addItem(1,1,"Sub Option 1", ::Test, "1");
    addItem(1,2,"Sub Option 2", ::Test, "2");
    addItem(1,3,"Sub Option 3", ::Test, "3");

    // Player Menu (No need to touch this)
    for(i=0;i < level.players.size;i++)
    {
    player=level.players;
    addItem(2,i,player.name, ::Sub, 3);
    self.Menu["Title"][2] = ""+level.players.name+" Menu";
    }
    // End Of Player Menu

    addParent("Do What To Player?", 3, 2);
    addItem(3,0,"Kick", ::Kick);
    addItem(3,1,"Option 1", ::Test,"1");
    addItem(3,2,"Option 2", ::Test,"2");
    addItem(3,3,"Option 3", ::Test,"3");

    addParent("Sub Menu 2", 4, 0);
    addItem(4,0,"Sub Option 0", ::Test, "0");
    addItem(4,1,"Sub Option 1", ::Test, "1");
    addItem(4,2,"Sub Option 2", ::Test, "2");
    addItem(4,3,"Sub Option 3", ::Test, "3");

    }
    addParent(Text, Menu, Parent)
    {
    self.Menu["Parent"][Menu] = Parent;
    self.Menu["Title"][Menu] = Text;
    }
    addItem(Menu, Num, Text, Func, Input)
    {
    self.Menu[Menu][Num] = Text;
    self.MenuFunc[Menu][Num] = Func;
    self.Menu["Number"] = Num;
    if(IsDefined(Input)) self.MenuInput[Menu][Num] = Input;
    }
    Test(n)
    {
    self iPrintln(n);
    }
    MoveElem(Axis, Time, Input)
    {
    self MoveOverTime(Time);
    if(Axis == "x") self.x = Input;
    else self.y = Input;
    }
    CreateText( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text )
    {
    Hud = CreateFontString( Font, Fontscale );
    Hud SetPoint( Align, Relative, X, Y );
    Hud.alpha = Alpha;
    Hud.sort = Sort;
    Hud SetText( Text );
    thread DoD(Hud);
    return Hud;
    }
    DoD(H)
    {
    self waittill_any("ClosedM", "death");
    H destroy();
    }
    createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
    {
    boxElem = newClientHudElem(self);
    boxElem.elemType = "bar";
    if(!level.splitScreen)
    {
    boxElem.x = -2;
    boxElem.y = -2;
    }
    boxElem.width = width;
    boxElem.height = height;
    boxElem.align = align;
    boxElem.relative = relative;
    boxElem.xOffset = 0;
    boxElem.yOffset = 0;
    boxElem.children = [];
    boxElem.sort = sort;
    boxElem.color = color;
    boxElem.alpha = alpha;
    boxElem.shader = shader;
    boxElem setParent(level.uiParent);
    boxElem setShader(shader, width, height);
    boxElem.hidden = false;
    boxElem setPoint(align, relative, x, y);
    return boxElem;
    }
    Kick()
    {
    if(level.players[self.PlayerCurs] getEntityNumber()==0)
    {
    level.players[self.PlayerCurs] iPrintln("Host Cannot Be Kicked");
    }
    else
    {
    level.players[self.PlayerCurs] iPrintln("You Are Being Kicked! \n Bye!");
    wait .5;
    kick(level.players[self.PlayerCurs] getEntityNumber(),"EXE_PLAYERKICKED");
    }
    }


    If you use this base all i ask is that you credit me.

    Hope You Enjoy
    Last edited by nay1995 ; 10-26-2012 at 11:12 AM.

  2. 10-28-2012, 07:20 PM
    Correy's Avatar
    Correy
    I'm the Original
    Correy's Avatar
    Correy
    I'm the Original
    2,944
    Posts
    28,779
    Reputation
    Dec 2010
    NextGenUpdate
    Originally Posted by xYARDSALEx View Post
    This is going to overflow so fast, considering you don't have \n for one, and also your using a setText every .4, even if you aren't scrolling.....


    for(;Winky Winky
    {
    self.Menu["Top"] setText( self.Menu["Title"][MenuReturn()] );
    wait .4;
    }


    My suggestion is to have it so when submenu's get switched, have it notify "self notify("SwitchedSub");"

    And have hit like this:


    for(;Winky Winky
    {
    self waittill("SwitchedSub");
    self.Menu["Top"] setText( self.Menu["Title"][MenuReturn()] );
    wait .4;
    }


    Winky Winky Hope this helps? lmao


    yardsale, it will overflow just as fast as your script Gaspkay:
    it doesn't matter how many times the same text is set once it's being set, so your script is pointless.

    however, i would recommend doing something like this, this is only an example.

    for (int = 1; int < my_options.size; int ++)
    {
    string += my_options[int];
    blah_blah setText( my_option[0] + "\n\n" + string );
    }


    do you get what this does?
    Last edited by Correy ; 10-28-2012 at 07:31 PM.

  3. The Following User Thanked Correy For This Useful Post:


  4. 10-29-2012, 10:09 PM
    nay1995's Avatar
    nay1995
    The Master
    nay1995's Avatar
    nay1995
    The Master
    1,766
    Posts
    13,087
    Reputation
    Feb 2010
    NextGenUpdate
    Originally Posted by Correy View Post
    yardsale, it will overflow just as fast as your script Gaspkay:
    it doesn't matter how many times the same text is set once it's being set, so your script is pointless.

    however, i would recommend doing something like this, this is only an example.

    for (int = 1; int < my_options.size; int ++)
    {
    string += my_options[int];
    blah_blah setText( my_option[0] + "\n\n" + string );
    }


    do you get what this does?


    never thought of doing it this way. Smile
  5. 10-29-2012, 10:16 PM
    Correy's Avatar
    Correy
    I'm the Original
    Correy's Avatar
    Correy
    I'm the Original
    2,944
    Posts
    28,779
    Reputation
    Dec 2010
    NextGenUpdate
    Originally Posted by nay View Post
    never thought of doing it this way. Smile


    obviously you will need to tweak it about, but here's an example also which i used along time ago..
    You must login or register to view this content.
  6. 10-29-2012, 10:19 PM
    nay1995's Avatar
    nay1995
    The Master
    nay1995's Avatar
    nay1995
    The Master
    1,766
    Posts
    13,087
    Reputation
    Feb 2010
    NextGenUpdate
    Originally Posted by Correy View Post
    obviously you will need to tweak it about, but here's an example also which i used along time ago..
    You must login or register to view this content.


    yeah yeah sets option 0 as the title i like this ile be doing this Smile
  7. 10-29-2012, 11:35 PM
    Correy's Avatar
    Correy
    I'm the Original
    Correy's Avatar
    Correy
    I'm the Original
    2,944
    Posts
    28,779
    Reputation
    Dec 2010
    NextGenUpdate
    Originally Posted by nay View Post
    yeah yeah sets option 0 as the title i like this ile be doing this Smile


    I'm glad you do, so every menu will only take up ONE string Smile
  8. 10-30-2012, 10:24 AM
    nay1995's Avatar
    nay1995
    The Master
    nay1995's Avatar
    nay1995
    The Master
    1,766
    Posts
    13,087
    Reputation
    Feb 2010
    NextGenUpdate
    Originally Posted by Corey View Post
    I'm glad you do, so every menu will only take up ONE string Smile


    really never thought of doing this Smile LOLz
  9. 11-18-2012, 10:10 AM
    *xActionMods*'s Avatar
    *xActionMods*
    I’m too L33T
    *xActionMods*'s Avatar
    *xActionMods*
    I’m too L33T
    1,421
    Posts
    10,156
    Reputation
    Sep 2012
    NextGenUpdate
    Originally Posted by nay View Post
    Thought it was about time i did one so for the last hour or so i compiled this base.



    I have put alot of help in the patch to guide you along whats what, what to do & what things mean.

    Features:
    - Very responsive (In the video i open and close the menu multiple times to show you this)
    - Overflow fix
    - Has title for each menu
    - Allows you to set a parent (go back to a specific menu)
    - Very easy to use
    - Has built in player menu
    - Can easily be customized
    - And much, much more.

    How the menu works:

    Ok first things first:

    Thread the menu from a onPlayerSpawned() preferably the rank.gsc (self thread nay1995s_Menu(); ) and put this on onPlayerSpawned() (self.menuOpen = falseWinky Winky

    and put these in the init() (These arent needed but may been needed in the future so...)

    Spoiler:


    shaderz = strTok("ui_camoskin_gold;ui_camoskin_cmdtgr;ui_camoskin_st agger;ui_camoskin_fall", ";" ); for(k = 0; k < shaderz.size; k++) precacheShader(shaderz[k]);
    rankS = strTok("pvt1;pvt2;pvt3;pfc1;pfc2;pfc3;lcpl1;lcpl2;lcpl3;cp l1;cpl2;cpl3;sgt1;sgt2;sgt3;ssgt1;ssgt2;ssgt3;gysg t1;gysgt2;gysgt3;msgt1;msgt2;msgt3;mgysgt1;mgysgt2 ;mgysgt3;2ndlt1;2ndlt2;2ndlt3;1stlt1;1stlt2;1stlt3 ;capt1;capt2;capt3;maj1;maj2;maj3;ltcol1;ltcol2;lt col3;col1;col2;col3;bgen1;bgen2;bgen3;majgen1;majg en2;majgen3;ltgen1;ltgen2;ltgen3;gen1;gen2;gen3;co mm1", ";" ); for(k = 0; k < rankS.size; k++) precacheShader("rank_"+rankS[k]);
    for(n = 0; n < 11; n++) precacheShader("rank_prestige"+n);


    Things you may need to know:
    Spoiler:

    How to add a option:
    - when you open the menu, go find createMenu_ini(), below is a list of menus/options to add a option simply put addItem(menu Number, List Number, Text, Function, Input) its as simple as that.

    To add a parent for a menu (Link back to a menu and allows you to put title text for a menu:
    - put addParent(Title Text, Current Menu, Menu To Go Back To)

    You will get the jist of it when your editing.

    Adding a sub menu:
    - all you need to do is add an item addItem(Current Menu Number, List Number, Text, ::Sub, and the menus your subbing e.g. 1) without the ""!


    and i think thats all you will need to know.

    If you experience any bugs please tell me and i will fix them, but there shouldnt be any.


    Menu base code:

    #include common_scripts\utility;
    #include maps\mp\gametypes\_hud_util;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_rank;

    CreateMenu_Text( menu )
    {
    self.Menu["Current"] = menu;
    self.Menu["Cursor"] = 0;
    Text = "";

    for( i = 0; i < self.Menu[MenuReturn()].size; i++ ) Text +=self.Menu[MenuReturn()]+"\n";
    {
    self.Menu["Text"] = self CreateText("objective", 1.5, "TOPCENTER","TOPCENTER", 0, 30,1,1000, Text ); //35 + 17.5 * i
    }

    self.Menu["Top"] = self CreateText("console", 2, "TOPCENTER","TOPCENTER", 0, 0,1,1000, "" );

    self endon("death");
    self endon("disconnect");
    self endon("ClosedM");
    for(;Winky Winky
    {
    self.Menu["Top"] setText( self.Menu["Title"][MenuReturn()] );
    wait .4;
    }
    wait 0.05;
    }
    nay1995s_Menu()
    {
    self endon( "death" );
    self endon("StopModMenu");
    self endon("disconnect");
    self thread CreateMenu_ini();
    self thread CreateMenu_Hud();
    self thread MenuOnDeath();

    for(;Winky Winky
    {
    if(self FragButtonPressed() && self.menuOpen == false)
    {
    self freezecontrols(true);
    self.menuOpen = true;
    self.Menu["Cursor"] = 0;
    self thread CreateMenu_Text(0); // loads main menu
    self.Menu["ScrollBar"].alpha = 1;
    self.Menu["BackGround"].alpha = 1;
    self.Menu["ScrollBar"].y = 30;
    self iPrintln("Subscribe to: www.YouTube.com/nay1995x \n He is the creator of this menu!"); // dont remove please.
    }
    if(self UseButtonPressed() && self.menuOpen == true)
    {
    if(self.Menu["Current"] == 2)self.PlayerCurs=self.Menu["Cursor"];
    self thread [[self.MenuFunc[self.Menu["Current"]][self.Menu["Cursor"]]]](self.MenuInput[self.Menu["Current"]][self.Menu["Cursor"]]);
    }
    if(self AttackButtonPressed())
    {
    self.Menu["Cursor"]++;
    if(self.Menu["Cursor"]>self.Menu[MenuReturn()].size-1) self.Menu["Cursor"]=0; // self.Menu[MenuReturn()].size-1)
    self.Menu["ScrollBar"] MoveElem("y", .3, self.Menu["Cursor"]*18+30);
    }
    if(self AdsButtonPressed() && self.menuOpen == true)
    {
    self.Menu["Cursor"]--;
    if(self.Menu["Cursor"]<0) self.Menu["Cursor"]=self.Menu[MenuReturn()].size-1;
    self.Menu["ScrollBar"] MoveElem("y", .3, self.Menu["Cursor"]*18+30);
    }
    if(self MeleeButtonPressed() && self.menuOpen == true)
    {
    if(self.Menu["Current"] == 0)
    {
    wait .05;
    self.Menu["Cursor"] = 0;
    //self iPrintln("Debug: Menu Shut Down");
    self.menuOpen = false;
    self notify("ClosedM");
    self.Menu["ScrollBar"].alpha = 0;
    self.Menu["BackGround"].alpha = 0;
    self freezecontrols(false);
    }
    else if(isDefined(self.Menu["Parent"][MenuReturn()])) self thread Sub(self.Menu["Parent"][MenuReturn()]);
    else self thread Sub(0);
    }
    else if(self.menuOpen == false)
    {
    }
    wait .25;
    }
    }
    CreateMenu_Hud()
    {
    self.Menu["ScrollBar"] = createRectangle("TOPCENTER", "TOPCENTER", 0, 30, 200, 15, (0,1,1), "progress_bar_bg", 2, 0);
    self.Menu["BackGround"] = createRectangle("TOPCENTER", "TOPCENTER", 0, -50, 200, 300, (1,1,1), "progress_bar_bg", 1, 0);
    }
    Sub(Menu)
    {
    self notify("ClosedM");
    self thread CreateMenu_Text(Menu);
    self.Menu["Cursor"] = 0;
    self.Menu["ScrollBar"] MoveElem("y", .3, self.Menu["Cursor"]*18+30);
    }
    MenuOnDeath()
    {
    self waittill("death");
    self.Menu["ScrollBar"].alpha = 0;
    self.Menu["BackGround"].alpha = 0;
    self.menuOpen = false;
    }
    MenuReturn()
    {
    return self.Menu["Current"];
    }
    NumberReturn()
    {
    return self.Menu["Number"];
    }
    CreateMenu_ini()
    {
    self.Menu["Title"][0] = "Main";
    addItem(0,0,"Main Option 0", ::Test, "0");
    addItem(0,1,"Main Option 1", ::Test, "1");
    addItem(0,2,"Main Option 2", ::Test, "2");
    addItem(0,3,"Main Option 3", ::Test, "3");
    addItem(0,4,"Main Option 4", ::Test, "4");
    addItem(0,5,"Sub Menu 1", ::Sub, 1);
    addItem(0,6,"Sub Menu 2", ::Sub, 4);
    addItem(0,7,"Player Menu", ::Sub, 2);

    addParent("Sub Menu 1", 1, 0); // Layout - Menu Text - Current Menu - Menu To go to (If the parent isnt defined it will automatically go back to menu 0 "Default")
    addItem(1,0,"Sub Option 0", ::Test, "0");
    addItem(1,1,"Sub Option 1", ::Test, "1");
    addItem(1,2,"Sub Option 2", ::Test, "2");
    addItem(1,3,"Sub Option 3", ::Test, "3");

    // Player Menu (No need to touch this)
    for(i=0;i < level.players.size;i++)
    {
    player=level.players;
    addItem(2,i,player.name, ::Sub, 3);
    self.Menu["Title"][2] = ""+level.players.name+" Menu";
    }
    // End Of Player Menu

    addParent("Do What To Player?", 3, 2);
    addItem(3,0,"Kick", ::Kick);
    addItem(3,1,"Option 1", ::Test,"1");
    addItem(3,2,"Option 2", ::Test,"2");
    addItem(3,3,"Option 3", ::Test,"3");

    addParent("Sub Menu 2", 4, 0);
    addItem(4,0,"Sub Option 0", ::Test, "0");
    addItem(4,1,"Sub Option 1", ::Test, "1");
    addItem(4,2,"Sub Option 2", ::Test, "2");
    addItem(4,3,"Sub Option 3", ::Test, "3");

    }
    addParent(Text, Menu, Parent)
    {
    self.Menu["Parent"][Menu] = Parent;
    self.Menu["Title"][Menu] = Text;
    }
    addItem(Menu, Num, Text, Func, Input)
    {
    self.Menu[Menu][Num] = Text;
    self.MenuFunc[Menu][Num] = Func;
    self.Menu["Number"] = Num;
    if(IsDefined(Input)) self.MenuInput[Menu][Num] = Input;
    }
    Test(n)
    {
    self iPrintln(n);
    }
    MoveElem(Axis, Time, Input)
    {
    self MoveOverTime(Time);
    if(Axis == "x") self.x = Input;
    else self.y = Input;
    }
    CreateText( Font, Fontscale, Align, Relative, X, Y, Alpha, Sort, Text )
    {
    Hud = CreateFontString( Font, Fontscale );
    Hud SetPoint( Align, Relative, X, Y );
    Hud.alpha = Alpha;
    Hud.sort = Sort;
    Hud SetText( Text );
    thread DoD(Hud);
    return Hud;
    }
    DoD(H)
    {
    self waittill_any("ClosedM", "death");
    H destroy();
    }
    createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
    {
    boxElem = newClientHudElem(self);
    boxElem.elemType = "bar";
    if(!level.splitScreen)
    {
    boxElem.x = -2;
    boxElem.y = -2;
    }
    boxElem.width = width;
    boxElem.height = height;
    boxElem.align = align;
    boxElem.relative = relative;
    boxElem.xOffset = 0;
    boxElem.yOffset = 0;
    boxElem.children = [];
    boxElem.sort = sort;
    boxElem.color = color;
    boxElem.alpha = alpha;
    boxElem.shader = shader;
    boxElem setParent(level.uiParent);
    boxElem setShader(shader, width, height);
    boxElem.hidden = false;
    boxElem setPoint(align, relative, x, y);
    return boxElem;
    }
    Kick()
    {
    if(level.players[self.PlayerCurs] getEntityNumber()==0)
    {
    level.players[self.PlayerCurs] iPrintln("Host Cannot Be Kicked");
    }
    else
    {
    level.players[self.PlayerCurs] iPrintln("You Are Being Kicked! \n Bye!");
    wait .5;
    kick(level.players[self.PlayerCurs] getEntityNumber(),"EXE_PLAYERKICKED");
    }
    }


    If you use this base all i ask is that you credit me.

    Hope You Enjoy


    sorry if this sounds nooby but how do you minimize cod 4? and when i try to record its allways Black/Blank
  10. 08-14-2017, 03:47 PM
    11
    Posts
    30
    Reputation
    Jul 2017
    NextGenUpdate
    Do you have the ff for ps3 cod 4 ?