Post: NBB's Map Creator [Public Beta V1.5.0]
12-05-2016, 12:35 AM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Hello NGU, Nothingbutbread here unveiling my most recent project that is nearing maturity. NBB's Map Creator.
The All-in-one Mod that aims to make Forge editing in Black ops 2 much easier and accessible to those who make Maps edits and gamemodes.
In the present state it as able to make all Zombieland Forge Functions and will have more in later updates.
If you find any bugs that are not listed here the "Known Bugs" area, please let me know so I can address them as I continue to work on this project. This is my heavily worked on project to date, Enjoy.
Note: This is a Public Beta, there are a bunch of known bugs and likely many more that I am not aware of (Hence a Public Beta).
Concerning the next update: I have delayed updates until I push out my next gamemode as I am putting another month into building on this editor and making it even better with the feed back provided. Next update: V1.1 Release, will be posted everywhere with that update.

Current Version: V1.5.0 Public Beta

Features:
> Spawn any Zombieland Forge Function and store the function that created it with just the push of a button
> Memory Editor: See the functions you have made and delete any objects you have made and don't like with the push of a button.
> Lots of Menu Customization Options. Make your own theme with the advanced theme creator and adjust the location to anywhere you like easily.
> Menu is aimed at new and experienced map makers and aims to make making maps faster, easier and more rewarding.

Pictures of V1.5.0 Public Beta
You must login or register to view this content.

Here is an early build video: [V1.2.5] Will have an updated video once I do more work on it.


Downloads:
V1.5.0 Compiled for PC and Console and GSCR
You must login or register to view this content.

V1.5.0 Source [Don't leech my code, I will know if you did]
You must login or register to view this content.

Known Bugs:
1) Create Wall Function: Making an wall invisible causes only a single entity to spawn and improperly updates the entity counter when deleted
2) When spawning in the Door, Solid Door or Turret. Random freeze may happen 45 minutes to 1 hour and 30 minutes after using that function.
3) When using Source or GSCR Versions (without injecting _rank.gsc fix) Rare GSC Overflow error
4) General Infobar text bugs, not properly integrated into all functions yet.

Expected Change Log for Release V1.1 [Unknown date of release, will be a much bigger than planed update]
Done:
1) Bug fix for invisible wall not working*
2) More Menu sound integration, More sounds for clicking, scrolling, errors ect.*
3) Add in Sound Menu to adjust the sounds these actions have.*
4) Fix menu allingment, (Should be alligned like the V1.2.5 Video)*
5) Add in in-game menu text color changer*
6) New Forge Function: Box Stair Case*
Pending:
1) Changes to the Memory editor
- Infinite Scrolling when there is more than 3 options present
- Ability to merge all forge entrys into a single list for easier access
- Changeing default theme to a Black and white theme
2) Gamemodes Forge Functions surported: Hells Treadmill, SWBF: Conquest, Project "Roleplay" - Releasing along side the update
3) Improvements to the Mysterybox function, allow for a sample usage.
4) Adding in spawning of simple entities of different models



Change Log:
    
V1.5.0 Public Beta:
1) Fixed a Bug in the Create Turret function that would cause it to complete incorrectly.
2) Fixed a Bug where removing the info bar then re-adding it would generate additional shaders, leading to the menu having issues displaying stuff.
3) Fixed a Bug where the infobar would display false information after using the RTM Concept Tool for any CreateForge Function.


Found a bug and/or need support?
    
If you find an bugs that are not listed in the Known bugs tag or have questions regarding this editor. Besure to PM via NGU or message my Skype "Nothingbutbread" with any questions (not pertaining to hosting XP Lobbies).



Credits:
    
////////////////////////////////////////////////////////////////////////////////////
// Credits: A shoutout for everyone contributed work that isn't mine. //
// HiddenHour [NGU]: Some custom code, general help. //
// Shark [NGU]: Base Forgefunctions, Menu Base. //
// xTurntUpLobbies: Base Overflow fix and fixed _rank.gsc //
// Extint: Entity Overflow Fix //
// Contributers to the NGU Script lists: Some functions used in the Host menu. //
// Anyone else I missed: Everything else that isn't 100% my code. //
////////////////////////////////////////////////////////////////////////////////////


Added Forge Functions (Copy and paste into Zombieland, may need to prechache stuff for other gamemodes)
    
Extra Forge Functions that are createable in V1.6.0 PB:
Sample Demonstration Map Edit:
Nuketown()
{
level thread removeSkyBarrier();
level thread CreateBoxStair((-756.64,-833.06,-90.8833), 1200, 120, 120, 1, 18, 36, true, true);
level thread CreateBoxStair((-756.64,-833.06,-90.8833), 1200, 240, 240, 1, 18, 36, false, false);
}
Forge Function Code:
CreateBoxStair(Origin, Height, Width, Lenght, Enter, Stepheight, Gap, Right, invisible)
{
level endon("CreateBoxStairCaseInvalid");
Ground = Origin[2];
A = Origin[1] + Width;
B = Origin[0] + Lenght;
C = Origin[0] - Lenght;
D = Origin[1] - Width;
BA = (B, A, Origin[2]);
BD = (B, D, Origin[2]);
AC = (A, C, Origin[2]);
DC = (D, C, Origin[2]);
W = Distance(BA, AC);
L = Distance(BA, BD);
WL = W + L;
Tall = Ground + Height;
if (Tall < Stepheight)
level notify("CreateBoxStairCaseInvalid");
HI = Ceil(Tall / Stepheight);
Dir = NBBCustomForge_CreateBoxReturnDirrection(Enter, Right);
if (Enter == 1)
SOrigin = BA;
if (Enter == 2)
SOrigin = AC;
if (Enter == 3)
SOrigin = DC;
if (Enter == 4)
SOrigin = DB;
for (z = 0; z <= HI; z++)
{
reset = 0;
if (Dir == 110) //Point trying to get to, below is how to get there.
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] - Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
reset += 1;
if (SOrigin[1] <= D) //We have reached point, looking for next one.
Dir = NBBCustomForge_CreateBoxReturnDirrection(2, Right); //State location, get next one
}
if (Dir == 101)
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] + Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] >= A)
Dir = NBBCustomForge_CreateBoxReturnDirrection(4, Right);
}
if (Dir == 111) //End destination
{
if (z != 1)
SOrigin = (SOrigin[0] + Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] >= BA[0])
Dir = NBBCustomForge_CreateBoxReturnDirrection(1, Right);
}
if (Dir == 100)
{
if (z != 1)
SOrigin = (SOrigin[0] - Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] <= DC[0])
Dir = NBBCustomForge_CreateBoxReturnDirrection(3, Right);
}
if (Dir == 210) //Point trying to get to, below is how to get there.
{
if (z != 1)
SOrigin = (SOrigin[0] + Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
if (SOrigin[0] >= B) //We have reached point, looking for next one.
Dir = NBBCustomForge_CreateBoxReturnDirrection(2, Right); //State location, get next one
}
if (Dir == 201)
{
if (z != 1)
SOrigin = (SOrigin[0] - Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,00,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] <= C)
Dir = NBBCustomForge_CreateBoxReturnDirrection(4, Right);
}
if (Dir == 211) //End destination
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] + Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] >= BA[1])
Dir = NBBCustomForge_CreateBoxReturnDirrection(1, Right);
}
if (Dir == 200)
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] - Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] <= DC[1])
Dir = NBBCustomForge_CreateBoxReturnDirrection(3, Right);
}
}
}
NBBCustomForge_CreateBoxReturnDirrection(Location, Right) //Surport Function, need to add to use.
{
if (Location == 1 && Right == true)
return 110; //The place its going to
if (Location == 2 && Right == true)
return 100;
if (Location == 3 && Right == true)
return 101;
if (Location == 4 && Right == true)
return 111;
if (Location == 1 && Right == false)
return 201;
if (Location == 2 && Right == false)
return 211;
if (Location == 3 && Right == false)
return 210;
if (Location == 4 && Right == false)
return 200;
}
Last edited by Nothingbutbread ; 12-22-2016 at 05:35 PM. Reason: Update Thread info

The following 9 users say thank you to Nothingbutbread for this useful post:

/SneakerStreet/, DF_AUS, DoraTheKiller97, geheimpje, Mrtbyhyourwme, S63, Saber_JZY, Skonafid, xTiibo Modz

The following 2 users groaned at Nothingbutbread for this awful post:

anthonything, ProfoundModz
12-07-2016, 07:05 AM #11
S63
Space Ninja
Originally posted by Nothingbutbread View Post
It will be becoming even cleaner as I continue to update it with bug fixes and additional features. Cool Troll


Alright keep up the work :P

The following user thanked S63 for this useful post:

Nothingbutbread
12-07-2016, 05:24 PM #12
Originally posted by S63 View Post
Alright keep up the work :P


Going to be sneaking in some brand new forge functions in V1.6.0 PB, Going to hopefully have a bunch of new forge functions that can be seen in gamemodes.

The following user thanked Nothingbutbread for this useful post:

S63
12-09-2016, 01:43 AM #13
anthonything
Space Ninja
Originally posted by Nothingbutbread View Post
Hello NGU, Nothingbutbread here unveiling my most recent project that is nearing maturity. NBB's Map Creator.
The All-in-one Mod that aims to make Forge editing in Black ops 2 much easier and accessible to those who make Maps edits and gamemodes.
In the present state it as able to make all Zombieland Forge Functions and will have more in later updates.
If you find any bugs that are not listed here the "Known Bugs" area, please let me know so I can address them as I continue to work on this project. This is my heavily worked on project to date, Enjoy.
Note: This is a Public Beta, there are a bunch of known bugs and likely many more that I am not aware of (Hence a Public Beta).

Current Version: V1.5.0 Public Beta

Features:
> Spawn any Zombieland Forge Function and store the function that created it with just the push of a button
> Memory Editor: See the functions you have made and delete any objects you have made and don't like with the push of a button.
> Lots of Menu Customization Options. Make your own theme with the advanced theme creator and adjust the location to anywhere you like easily.
> Menu is aimed at new and experienced map makers and aims to make making maps faster, easier and more rewarding.

Pictures of V1.5.0 Public Beta
You must login or register to view this content.

Here is an early build video: [V1.2.5] Will have an updated video once I do more work on it.


Downloads:
V1.5.0 Compiled for PC and Console and GSCR
You must login or register to view this content.

V1.5.0 Source [Don't leech my code, I will know if you did]
You must login or register to view this content.

Known Bugs:
1) Create Wall Function: Making an wall invisible causes only a single entity to spawn and improperly updates the entity counter when deleted
2) When spawning in the Door, Solid Door or Turret. Random freeze may happen 45 minutes to 1 hour and 30 minutes after using that function.
3) When using Source or GSCR Versions (without injecting _rank.gsc fix) Rare GSC Overflow error
4) General Infobar text bugs, not properly integrated into all functions yet.

Expected Change Log for Public Beta V1.6.0 [Release date range: 12/7 - 12/14]
* = Confirmed/Completed
1) Bug fix for invisible wall not working*
2) More Menu sound integration, More sounds for clicking, scrolling, errors ect.
3) Add in Sound Menu to adjust the sounds these actions have.
4) Fix menu allingment, (Should be alligned like the V1.2.5 Video)*
5) Add in in-game menu text color changer*
6) New Forge Function: Box Stair Case*

Change Log:
    
V1.5.0 Public Beta:
1) Fixed a Bug in the Create Turret function that would cause it to complete incorrectly.
2) Fixed a Bug where removing the info bar then re-adding it would generate additional shaders, leading to the menu having issues displaying stuff.
3) Fixed a Bug where the infobar would display false information after using the RTM Concept Tool for any CreateForge Function.


Found a bug and/or need support?
    
If you find an bugs that are not listed in the Known bugs tag or have questions regarding this editor. Besure to PM via NGU or message my Skype "Nothingbutbread" with any questions (not pertaining to hosting XP Lobbies).


Planned additions:
    
1) In-game Menu Color Text changer, Can be changed from Source atm*
2) More Spawnable Forge Functions*
3) Sound Changer, Adjust sounds the menu makes in-game*
4) Last Forge Object editor, allows you to edit the parts of the previously made forge functions without deleting it
5) Custom weapon spawner, Any gun, Any attachment combo and Camo all in-game.



Credits:
    
////////////////////////////////////////////////////////////////////////////////////
// Credits: A shoutout for everyone contributed work that isn't mine. //
// HiddenHour [NGU]: Some custom code, general help. //
// Shark [NGU]: Base Forgefunctions, Menu Base. //
// xTurntUpLobbies: Base Overflow fix and fixed _rank.gsc //
// Extint: Entity Overflow Fix //
// Contributers to the NGU Script lists: Some functions used in the Host menu. //
// Anyone else I missed: Everything else that isn't 100% my code. //
////////////////////////////////////////////////////////////////////////////////////


Added Forge Functions (Copy and paste into Zombieland, may need to prechache stuff for other gamemodes)
    
Extra Forge Functions that are createable in V1.6.0 PB:
Sample Demonstration Map Edit:
Nuketown()
{
level thread removeSkyBarrier();
level thread CreateBoxStair((-756.64,-833.06,-90.8833), 1200, 120, 120, 1, 18, 36, true, true);
level thread CreateBoxStair((-756.64,-833.06,-90.8833), 1200, 240, 240, 1, 18, 36, false, false);
}
Forge Function Code:
CreateBoxStair(Origin, Height, Width, Lenght, Enter, Stepheight, Gap, Right, invisible)
{
level endon("CreateBoxStairCaseInvalid");
Ground = Origin[2];
A = Origin[1] + Width;
B = Origin[0] + Lenght;
C = Origin[0] - Lenght;
D = Origin[1] - Width;
BA = (B, A, Origin[2]);
BD = (B, D, Origin[2]);
AC = (A, C, Origin[2]);
DC = (D, C, Origin[2]);
W = Distance(BA, AC);
L = Distance(BA, BD);
WL = W + L;
Tall = Ground + Height;
if (Tall < Stepheight)
level notify("CreateBoxStairCaseInvalid");
HI = Ceil(Tall / Stepheight);
Dir = NBBCustomForge_CreateBoxReturnDirrection(Enter, Right);
if (Enter == 1)
SOrigin = BA;
if (Enter == 2)
SOrigin = AC;
if (Enter == 3)
SOrigin = DC;
if (Enter == 4)
SOrigin = DB;
for (z = 0; z <= HI; z++)
{
reset = 0;
if (Dir == 110) //Point trying to get to, below is how to get there.
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] - Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
reset += 1;
if (SOrigin[1] <= D) //We have reached point, looking for next one.
Dir = NBBCustomForge_CreateBoxReturnDirrection(2, Right); //State location, get next one
}
if (Dir == 101)
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] + Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] >= A)
Dir = NBBCustomForge_CreateBoxReturnDirrection(4, Right);
}
if (Dir == 111) //End destination
{
if (z != 1)
SOrigin = (SOrigin[0] + Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] >= BA[0])
Dir = NBBCustomForge_CreateBoxReturnDirrection(1, Right);
}
if (Dir == 100)
{
if (z != 1)
SOrigin = (SOrigin[0] - Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] <= DC[0])
Dir = NBBCustomForge_CreateBoxReturnDirrection(3, Right);
}
if (Dir == 210) //Point trying to get to, below is how to get there.
{
if (z != 1)
SOrigin = (SOrigin[0] + Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
if (SOrigin[0] >= B) //We have reached point, looking for next one.
Dir = NBBCustomForge_CreateBoxReturnDirrection(2, Right); //State location, get next one
}
if (Dir == 201)
{
if (z != 1)
SOrigin = (SOrigin[0] - Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,00,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] <= C)
Dir = NBBCustomForge_CreateBoxReturnDirrection(4, Right);
}
if (Dir == 211) //End destination
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] + Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] >= BA[1])
Dir = NBBCustomForge_CreateBoxReturnDirrection(1, Right);
}
if (Dir == 200)
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] - Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] <= DC[1])
Dir = NBBCustomForge_CreateBoxReturnDirrection(3, Right);
}
}
}
NBBCustomForge_CreateBoxReturnDirrection(Location, Right) //Surport Function, need to add to use.
{
if (Location == 1 && Right == true)
return 110; //The place its going to
if (Location == 2 && Right == true)
return 100;
if (Location == 3 && Right == true)
return 101;
if (Location == 4 && Right == true)
return 111;
if (Location == 1 && Right == false)
return 201;
if (Location == 2 && Right == false)
return 211;
if (Location == 3 && Right == false)
return 210;
if (Location == 4 && Right == false)
return 200;
}

Lets look at this objectively then, shall we?

Here are the things you did right:
1: You tried something original
2: You dedicated much of your time to something you enjoy
3: You thought of the newbies and people who enjoy zombieland

Now as far as the project goes... I cant really find anything to praise.

Lets go into the negatives:
1: You started off wrong because you attempted to build off a structure that doesn't work efficiently and tried to make it do so. How are we saving any time with this as in comparison to a simple script to shoot and grab an origin, then systematically adding packages based on an endpoint vector? This makes no sense and begins to show the futility of this post, but you could argue that newbies wont seek out the other script and might like a gui. Lets continue

2: Your gui was a failed attempt to manage too many functions at once, which would have been solved by a bit of planning and effort towards that problem in stead of throwing it together in an attempt to get it done for the sake of having it done.

3: This is a bit nit picky, but your source is absolutely atrocious. I have no reason objectively to pick it apart, so I will just leave it at that.

4: Overall, this is low quality content and needs to be much improved if you cant consider the first point I made. Having an idea is one thing, bringing it to life is another. Throwing a half finished Idea into a sharks base as quickly as you can is just a mistake.

If you cant review this as constructive criticism then take it as what ever you would like, but I am done lying for friends and people I know. Release something that is finished. You reply with 'its a beta'? Then why did you post it here? Most people are looking for a finished project when they come to this section, and it would be nice to see that once in a while from someone who considers himself able.

The following 3 users groaned at anthonything for this awful post:

DF_AUS, DoraTheKiller97, Nothingbutbread
12-09-2016, 03:30 AM #14
Originally posted by anthonything View Post
Lets look at this objectively then, shall we?

Here are the things you did right:
1: You tried something original
2: You dedicated much of your time to something you enjoy
3: You thought of the newbies and people who enjoy zombieland

Now as far as the project goes... I cant really find anything to praise.

Lets go into the negatives:
1: You started off wrong because you attempted to build off a structure that doesn't work efficiently and tried to make it do so. How are we saving any time with this as in comparison to a simple script to shoot and grab an origin, then systematically adding packages based on an endpoint vector? This makes no sense and begins to show the futility of this post, but you could argue that newbies wont seek out the other script and might like a gui. Lets continue

2: Your gui was a failed attempt to manage too many functions at once, which would have been solved by a bit of planning and effort towards that problem in stead of throwing it together in an attempt to get it done for the sake of having it done.

3: This is a bit nit picky, but your source is absolutely atrocious. I have no reason objectively to pick it apart, so I will just leave it at that.

4: Overall, this is low quality content and needs to be much improved if you cant consider the first point I made. Having an idea is one thing, bringing it to life is another. Throwing a half finished Idea into a sharks base as quickly as you can is just a mistake.

If you cant review this as constructive criticism then take it as what ever you would like, but I am done lying for friends and people I know. Release something that is finished. You reply with 'its a beta'? Then why did you post it here? Most people are looking for a finished project when they come to this section, and it would be nice to see that once in a while from someone who considers himself able.


Thank you for the feed back. While I will try to implement the feedback into my works to continue to improve them, there is a difference between being a constructive and being a dick.
Give me REALISTIC suggestions for improvement. For example: on 2), I planned it and sticked to my plan over the developmental period. You disagree with how I did it. What aspects of the design cause it to be less effective than it should be or to appear "thrown together"?
4) Specify areas that can be improved and propose a solution to your claims. The entire idea was fully fleshed out before posting the project here. All updates that were planned for additions to further it and make it better. Give me some useful advice for improving this "low quality content". I'd like to grow and make better stuff.
- Reason for groan, the amount of insults combined with previous posts on different threads suggesting you're trying to swing at me.

Edit: Another thing: Simple origin givers (V1.6.0 PB has this as a separate option) don't allow you to see what you made without writing it down and re-injecting. That was the reason I sat down back in September and started building this. This was designed around the issues I had when making map edits normally.
Last edited by Nothingbutbread ; 12-09-2016 at 04:14 AM.
12-09-2016, 03:52 AM #15
Saber_JZY
Bounty hunter
Originally posted by Nothingbutbread View Post
Hello NGU, Nothingbutbread here unveiling my most recent project that is nearing maturity. NBB's Map Creator.
The All-in-one Mod that aims to make Forge editing in Black ops 2 much easier and accessible to those who make Maps edits and gamemodes.
In the present state it as able to make all Zombieland Forge Functions and will have more in later updates.
If you find any bugs that are not listed here the "Known Bugs" area, please let me know so I can address them as I continue to work on this project. This is my heavily worked on project to date, Enjoy.
Note: This is a Public Beta, there are a bunch of known bugs and likely many more that I am not aware of (Hence a Public Beta).

Current Version: V1.5.0 Public Beta

Features:
> Spawn any Zombieland Forge Function and store the function that created it with just the push of a button
> Memory Editor: See the functions you have made and delete any objects you have made and don't like with the push of a button.
> Lots of Menu Customization Options. Make your own theme with the advanced theme creator and adjust the location to anywhere you like easily.
> Menu is aimed at new and experienced map makers and aims to make making maps faster, easier and more rewarding.

Pictures of V1.5.0 Public Beta
You must login or register to view this content.

Here is an early build video: [V1.2.5] Will have an updated video once I do more work on it.


Downloads:
V1.5.0 Compiled for PC and Console and GSCR
You must login or register to view this content.

V1.5.0 Source [Don't leech my code, I will know if you did]
You must login or register to view this content.

Known Bugs:
1) Create Wall Function: Making an wall invisible causes only a single entity to spawn and improperly updates the entity counter when deleted
2) When spawning in the Door, Solid Door or Turret. Random freeze may happen 45 minutes to 1 hour and 30 minutes after using that function.
3) When using Source or GSCR Versions (without injecting _rank.gsc fix) Rare GSC Overflow error
4) General Infobar text bugs, not properly integrated into all functions yet.

Expected Change Log for Public Beta V1.6.0 [Release date range: 12/7 - 12/14]
* = Confirmed/Completed
1) Bug fix for invisible wall not working*
2) More Menu sound integration, More sounds for clicking, scrolling, errors ect.
3) Add in Sound Menu to adjust the sounds these actions have.
4) Fix menu allingment, (Should be alligned like the V1.2.5 Video)*
5) Add in in-game menu text color changer*
6) New Forge Function: Box Stair Case*

Change Log:
    
V1.5.0 Public Beta:
1) Fixed a Bug in the Create Turret function that would cause it to complete incorrectly.
2) Fixed a Bug where removing the info bar then re-adding it would generate additional shaders, leading to the menu having issues displaying stuff.
3) Fixed a Bug where the infobar would display false information after using the RTM Concept Tool for any CreateForge Function.


Found a bug and/or need support?
    
If you find an bugs that are not listed in the Known bugs tag or have questions regarding this editor. Besure to PM via NGU or message my Skype "Nothingbutbread" with any questions (not pertaining to hosting XP Lobbies).


Planned additions:
    
1) In-game Menu Color Text changer, Can be changed from Source atm*
2) More Spawnable Forge Functions*
3) Sound Changer, Adjust sounds the menu makes in-game*
4) Last Forge Object editor, allows you to edit the parts of the previously made forge functions without deleting it
5) Custom weapon spawner, Any gun, Any attachment combo and Camo all in-game.



Credits:
    
////////////////////////////////////////////////////////////////////////////////////
// Credits: A shoutout for everyone contributed work that isn't mine. //
// HiddenHour [NGU]: Some custom code, general help. //
// Shark [NGU]: Base Forgefunctions, Menu Base. //
// xTurntUpLobbies: Base Overflow fix and fixed _rank.gsc //
// Extint: Entity Overflow Fix //
// Contributers to the NGU Script lists: Some functions used in the Host menu. //
// Anyone else I missed: Everything else that isn't 100% my code. //
////////////////////////////////////////////////////////////////////////////////////


Added Forge Functions (Copy and paste into Zombieland, may need to prechache stuff for other gamemodes)
    
Extra Forge Functions that are createable in V1.6.0 PB:
Sample Demonstration Map Edit:
Nuketown()
{
level thread removeSkyBarrier();
level thread CreateBoxStair((-756.64,-833.06,-90.8833), 1200, 120, 120, 1, 18, 36, true, true);
level thread CreateBoxStair((-756.64,-833.06,-90.8833), 1200, 240, 240, 1, 18, 36, false, false);
}
Forge Function Code:
CreateBoxStair(Origin, Height, Width, Lenght, Enter, Stepheight, Gap, Right, invisible)
{
level endon("CreateBoxStairCaseInvalid");
Ground = Origin[2];
A = Origin[1] + Width;
B = Origin[0] + Lenght;
C = Origin[0] - Lenght;
D = Origin[1] - Width;
BA = (B, A, Origin[2]);
BD = (B, D, Origin[2]);
AC = (A, C, Origin[2]);
DC = (D, C, Origin[2]);
W = Distance(BA, AC);
L = Distance(BA, BD);
WL = W + L;
Tall = Ground + Height;
if (Tall < Stepheight)
level notify("CreateBoxStairCaseInvalid");
HI = Ceil(Tall / Stepheight);
Dir = NBBCustomForge_CreateBoxReturnDirrection(Enter, Right);
if (Enter == 1)
SOrigin = BA;
if (Enter == 2)
SOrigin = AC;
if (Enter == 3)
SOrigin = DC;
if (Enter == 4)
SOrigin = DB;
for (z = 0; z <= HI; z++)
{
reset = 0;
if (Dir == 110) //Point trying to get to, below is how to get there.
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] - Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
reset += 1;
if (SOrigin[1] <= D) //We have reached point, looking for next one.
Dir = NBBCustomForge_CreateBoxReturnDirrection(2, Right); //State location, get next one
}
if (Dir == 101)
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] + Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] >= A)
Dir = NBBCustomForge_CreateBoxReturnDirrection(4, Right);
}
if (Dir == 111) //End destination
{
if (z != 1)
SOrigin = (SOrigin[0] + Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] >= BA[0])
Dir = NBBCustomForge_CreateBoxReturnDirrection(1, Right);
}
if (Dir == 100)
{
if (z != 1)
SOrigin = (SOrigin[0] - Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] <= DC[0])
Dir = NBBCustomForge_CreateBoxReturnDirrection(3, Right);
}
if (Dir == 210) //Point trying to get to, below is how to get there.
{
if (z != 1)
SOrigin = (SOrigin[0] + Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,0,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
if (SOrigin[0] >= B) //We have reached point, looking for next one.
Dir = NBBCustomForge_CreateBoxReturnDirrection(2, Right); //State location, get next one
}
if (Dir == 201)
{
if (z != 1)
SOrigin = (SOrigin[0] - Gap, SOrigin[1], SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,00,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[0] <= C)
Dir = NBBCustomForge_CreateBoxReturnDirrection(4, Right);
}
if (Dir == 211) //End destination
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] + Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] >= BA[1])
Dir = NBBCustomForge_CreateBoxReturnDirrection(1, Right);
}
if (Dir == 200)
{
if (z != 1)
SOrigin = (SOrigin[0], SOrigin[1] - Gap, SOrigin[2] + Stepheight);
block = spawnEntity("script_model", "t6_wpn_supply_drop_ally", SOrigin, (0,90,0));
if (invisible == true)
block hide();
if (reset > 0)
z += 1;
reset += 1;
if (SOrigin[1] <= DC[1])
Dir = NBBCustomForge_CreateBoxReturnDirrection(3, Right);
}
}
}
NBBCustomForge_CreateBoxReturnDirrection(Location, Right) //Surport Function, need to add to use.
{
if (Location == 1 && Right == true)
return 110; //The place its going to
if (Location == 2 && Right == true)
return 100;
if (Location == 3 && Right == true)
return 101;
if (Location == 4 && Right == true)
return 111;
if (Location == 1 && Right == false)
return 201;
if (Location == 2 && Right == false)
return 211;
if (Location == 3 && Right == false)
return 210;
if (Location == 4 && Right == false)
return 200;
}


All do respect Bred,this is actually a decent release,I was just messing around with some map edits and found it really easy to use,your coding ain't that bad either,ignore the haters,good release.

The following user thanked Saber_JZY for this useful post:

Nothingbutbread
12-09-2016, 04:11 AM #16
anthonything
Space Ninja
Originally posted by Nothingbutbread View Post
Thank you for the feed back. While I will try to implement the feedback into my works to continue to improve them, there is a difference between being a constructive and being a dick.
Give me REALISTIC suggestions for improvement. For example: on 2), I planned it and sticked to my plan over the developmental period. You disagree with how I did it. What aspects of the design cause it to be less effective than it should be or to appear "thrown together"?
4) Specify areas that can be improved and propose a solution to your claims. The entire idea was fully fleshed out before posting the project here. All updates that were planned for additions to further it and make it better. Give me some useful advice for improving this "low quality content". I'd like to grow and make better stuff.
- Reason for groan, the amount of insults combined with previous posts on different threads suggesting you're trying to swing at me.


I gave you what you need to make it better. You seem to think all of your comments are always constructive, yet I literally copy your format and suddenly it is me being a dick? Seems a bit ironic to me.
Aspects of design:
1: The shaders do not blend, the menu is bland and doesnt seem to be of any concern to the developer
2: Using Iprints for crucial information is always frowned upon because it puts a time limit on the user for instructions, etc.
3: You could have made the function Info an incorporated part of the design to make the memory menu and stuff more readily accessible
4: Requiring the user to be in the position they are placing the ent in is tedious for the end user and could be fixed by incorporating a cursor of sort

General:
1: Your backend needs to be much more stable as far as functionality, as this will most likely not stand a stress test for very long at all.
2: Implement a dvar saved backup for users who do get kicked out for whatever reason to be able to load their work back into the game (wont fix crashes, but that is an issue I dont think that you can fix)
3: Implement an easier movement system
4: Implement entity properties besides origin, angles, etc
5: Provide the end user with a source of these functions you reference in your menu to allow them to know exactly what your menu is designed upon (ie: a user might not have the createxxx function)

Suggestions:
1: Implement a grid system with a snap to make cleaner movement, allow toggle, etc
2: Implement a grouping system for entities to allow mass movement
3: Add copy paste for that grouping system
4: Add basic undo - redo

That is a small list of what you can do to improve it.

The following user thanked anthonything for this useful post:

Nothingbutbread
12-09-2016, 04:32 AM #17
Originally posted by anthonything View Post
I gave you what you need to make it better. You seem to think all of your comments are always constructive, yet I literally copy your format and suddenly it is me being a dick? Seems a bit ironic to me.
Aspects of design:
1: The shaders do not blend, the menu is bland and doesnt seem to be of any concern to the developer
2: Using Iprints for crucial information is always frowned upon because it puts a time limit on the user for instructions, etc.
3: You could have made the function Info an incorporated part of the design to make the memory menu and stuff more readily accessible
4: Requiring the user to be in the position they are placing the ent in is tedious for the end user and could be fixed by incorporating a cursor of sort

General:
1: Your backend needs to be much more stable as far as functionality, as this will most likely not stand a stress test for very long at all.
2: Implement a dvar saved backup for users who do get kicked out for whatever reason to be able to load their work back into the game (wont fix crashes, but that is an issue I dont think that you can fix)
3: Implement an easier movement system
4: Implement entity properties besides origin, angles, etc
5: Provide the end user with a source of these functions you reference in your menu to allow them to know exactly what your menu is designed upon (ie: a user might not have the createxxx function)

Suggestions:
1: Implement a grid system with a snap to make cleaner movement, allow toggle, etc
2: Implement a grouping system for entities to allow mass movement
3: Add copy paste for that grouping system
4: Add basic undo - redo

That is a small list of what you can do to improve it.


This is true constitutive criticism, stuff I can note and have in the back of mind as I continue to update my work.

Aspects of design:
1: Not everyone has my tastes for menu design, I get that :/ | Thats what I took a some time to make a full service theme editor.
2: Most info that would needed for operation is put into the info bar. I do see some points where this does apply, will look for a way to make it more accessable at all times.
3: What did you have inmind?
4: ?????

General:
1: This is known and has is listed as a known bug. Still working out this. If you want to give me feedback on the code that may be causing some problems, hit me up.
2: A user can load their previous work back into the edit by putting it in the mapeidts.gsc file with an id number as the last augment. It would be pointless in-game as if you're kicked out, its likely due a freeze.
3: What would make it easier? I was thinking of putting in a no-clip bind possibly.
4: What more is there to add to the propetys of the enties spawned? This is ment to output a function that users can input dirrectly into zombieland.
5: The can dig that up in the source I posted.

Suggestions:
1: Will look into this.
2: On my dream list, Will add if I can
3: Will add If I can
4: Temporal editor feature got that covered. [Likey Release V1.1 or V1.2]
12-09-2016, 05:02 AM #18
anthonything
Space Ninja
Originally posted by Nothingbutbread View Post
This is true constitutive criticism, stuff I can note and have in the back of mind as I continue to update my work.

Aspects of design:
1: Not everyone has my tastes for menu design, I get that :/ | Thats what I took a some time to make a full service theme editor.
2: Most info that would needed for operation is put into the info bar. I do see some points where this does apply, will look for a way to make it more accessable at all times.
3: What did you have inmind?
4: ?????

General:
1: This is known and has is listed as a known bug. Still working out this. If you want to give me feedback on the code that may be causing some problems, hit me up.
2: A user can load their previous work back into the edit by putting it in the mapeidts.gsc file with an id number as the last augment. It would be pointless in-game as if you're kicked out, its likely due a freeze.
3: What would make it easier? I was thinking of putting in a no-clip bind possibly.
4: What more is there to add to the propetys of the enties spawned? This is ment to output a function that users can input dirrectly into zombieland.
5: The can dig that up in the source I posted.

Suggestions:
1: Will look into this.
2: On my dream list, Will add if I can
3: Will add If I can
4: Temporal editor feature got that covered. [Likey Release V1.1 or V1.2]


I dont have time to reply to that entire list, but I can tell you one thing that hit me that seems appropriate. If you intend this to be solely a zombieland map editor, please label it as such. I cant see anyone using this for anything else, and as you are putting it and replying, you seem to think the same. I had the idea that you intended this to be a utility for all types of game modes.

The following user groaned anthonything for this awful post:

DF_AUS
12-09-2016, 05:21 AM #19
Saber_JZY
Bounty hunter
This doesn't have to be titled as specifically for zombieland,I use it for making map edits for my menu,so does a few others,this can be used for any menu/or gamemode that's looking to use map edits + it's incredibly easy to use,I'm really liking it Smile

The following user thanked Saber_JZY for this useful post:

Nothingbutbread

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo