ScriptSpot

Forum topic · General Scripting

script creates new menu on each startup

By fael099 · 2011-02-03

Description

i have an script from FSX SDK, but everytime i start max (2008 x32) it creates a new "Aces Tools" menu on my menu toolbar. i have to remove one each time i start, otherwise they'll reproduce as rabbits and populate my entire menu bar.

heres the script:



--Get the text for the macro scripts to be created from existing scripts
macroScript ExportLOD category:"Tools" tooltip:"Export and LOD tool"
(
	try (execute (openFile (acesPluginRoot + acesMax9ScriptsFolder + "\\ExportAndLOD.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroScript UVToolSuite category:"Tools" tooltip:"UV Suite Deluxe"
(
	try (execute (openFile (acesScriptsFolder + "\\UVSuiteDeluxe.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroScript containerCreator category:"Tools" tooltip:"Build Container Tool"
(
	try (execute (openFile (acesScriptsFolder + "\\BuildContainerTool.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript wheelTool category:"Tools" tooltip:"Wheel animation tool"
(
	try (execute (openFile (acesScriptsFolder + "\\WheelsSetupTool.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript fileRenamer category:"Tools" tooltip:"Rename Flightsim File"
(
	try (execute (openFile (acesScriptsFolder + "\\RenameFile.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript AttachPointTool category:"Tools" tooltip:"Attach Point Tool"
(
	try (execute (openFile (acesScriptsFolder + "\\AttachPointTool.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript FSCloudTool category:"Tools" tooltip:"Flight Simulator Cloud Tool"
(
	try (execute (openFile (acesScriptsFolder + "\\CloudTool.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript FSXShaderTool category:"Tools" tooltip:"Update to and Work with FSX Shaders"
(
	try (execute (openFile (acesPluginRoot + acesMax9ScriptsFolder + "\\FSXShaderTool.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript FSXMatEditorTool category:"Tools" tooltip:"Edit materials in the Materials.xml file"
(
	try (execute (openFile (acesScriptsFolder + "\\MaterialEditorTool.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript RemoveFSXMaterials category:"Tools" tooltip:"Remove FSX materials from scene"
(
	try (execute (openFile (acesScriptsFolder + "\\RemoveFSXMat.ms"))) catch (messageBox "This tool is currently not supported.")
)
macroscript AnimationManager category:"Tools" tooltip:"Start the FSX Animation Manager"
(
	StartFSXAnimationEditor();
)

try (fileIn (acesScriptsFolder + "\\Startup\\XMakeFootprint.ms")) catch ()
macroscript MakeFootprint category:"Tools" tooltip:"Make footprints per city"
(
	if usingAcesBuild then
	(
		setupFootprintUI ()
	)
	else
	(
		messageBox "This tool is currently not supported."
	)
)

macroscript FSMobileSceneryTool category:"Tools" tooltip:"Mobile Scenery Offset Tool"
(
	try (execute (openFile (acesScriptsFolder + "\\MobileSceneryTool.ms"))) catch (messageBox "This tool is currently not supported.")
)

newMenuID = genClassID returnValue:true
if menuMan.registerMenuContext newMenuID[1] then
(
	mainMenuBar = menuMan.getMainMenuBar ()
	subMenu = menuMan.createMenu "Aces Tools"
	exportItem = menuMan.createActionItem "ExportLOD" "Tools"
	if usingAcesBuild then UVScaleItem = menuMan.createActionItem "UVToolSuite" "Tools"
	if usingAcesBuild then containerItem = menuMan.createActionItem "containerCreator" "Tools"
	wheelToolItem = menuMan.createActionItem "wheelTool" "Tools"
	if usingAcesBuild then fileRenamerItem = menuMan.createActionItem "fileRenamer" "Tools"
	attachItem = menuMan.createActionItem "AttachPointTool" "Tools"
	fsxMatItem = menuMan.createActionItem "FSXShaderTool" "Tools"
	if usingAcesBuild then fsxMatEditorItem = menuMan.createActionItem "FSXMatEditorTool" "Tools"
	if usingAcesBuild then removeFSXItem = menuMan.createActionItem "RemoveFSXMaterials" "Tools"
	fsxAnimItem = menuMan.createActionItem "AnimationManager" "Tools"
	if usingAcesBuild then makeFPItem = menuMan.createActionItem "MakeFootprint" "Tools"
	cloudItem = menuMan.createActionItem "FSCloudTool" "Tools"
	if usingAcesBuild then msoTool = menuMan.createActionItem "FSMobileSceneryTool" "Tools"
	subMenu.addItem exportItem -1
	subMenu.addItem fsxMatItem -1
	subMenu.addItem fsxAnimItem -1
	subMenu.addItem attachItem -1
	if usingAcesBuild then subMenu.addItem UVScaleItem -1
	subMenu.addItem wheelToolItem -1
	subMenu.addItem cloudItem -1
	if usingAcesBuild then subMenu.addItem fsxMatEditorItem -1
	if usingAcesBuild then subMenu.addItem containerItem -1
	if usingAcesBuild then subMenu.addItem fileRenamerItem -1
	if usingAcesBuild then subMenu.addItem removeFSXItem -1
	if usingAcesBuild then subMenu.addItem makeFPItem -1
	if usingAcesBuild then subMenu.addItem msoTool -1
	subMenuItem = menuMan.createSubMenuItem "Aces Tools" subMenu
	subMenuIndex = mainMenuBar.numItems() + 1
	mainMenuBar.addItem subMenuItem subMenuIndex
	menuMan.updateMenuBar()
)

i believe the problem lies in the line that starts with:
"newMenuID = genClassID returnValue:true"
as if i start a comment in there, until the end of the document, every time i start 3ds max, one aces tools entry will disappear. but if i leave it like that, then i wont have the menu after some starts, so how to make it keep the menu, one time?! lol

thanks in advance

Comments (2)

try (menuMan.unRegisterMenu

Graph · 2011-02-04

try (menuMan.unRegisterMenu (menuMan.findMenu "Aces Tools") ) catch(); menuMan.updateMenuBar()

just execute that before you register your stuff

and instead of doing all these macroscripts and stuff manually why not make it automated?

check inbox

fael099 · 2011-02-04

bump.........