-- Rockstar MILO Custom Tools -- Rockstar North -- 14/11/2005 -- by Luke Openshaw -- A helper containing a series of tools for MILO objects ----------------------------------------------------------------------------- -- Rollout ----------------------------------------------------------------------------- try (destroyDialog RsMiloRoll) catch () rollout RsMiloRoll "MILO Tools" ( --//////////////////////////////////////////////////////////// -- interface --//////////////////////////////////////////////////////////// hyperlink lnkHelp "Help?" address:"https://devstar.rockstargames.com/wiki/index.php/Props_and_MILOs#MILO_Tools" align:#right color:(color 0 0 255) hoverColor:(color 0 0 255) visitedColor:(color 0 0 255) local btnWidth = 110 local btnHeight = 30 button btnMiloPortal "MILO Portal" width:btnWidth height:btnHeight button btnMultiAssign "Multi Assign Portals" width:btnWidth height:btnHeight button btnMultiAssignNone "Multi Assign None" width:btnWidth height:btnHeight button btnPropRender "Prop Renderer" width:btnWidth height:btnHeight --//////////////////////////////////////////////////////////// -- methods --//////////////////////////////////////////////////////////// -------------------------------------------------------------- -- Create a MILO portal 2.5m by 1.5m at the point selected -------------------------------------------------------------- fn CreatePortal = ( creationPos = pickPoint message:"Please select a location for portal creation." GtaMloPortal pos:creationPos isSelected:on $.wirecolor = (color 0 255 255) $.grid.length = 2.5 $.grid.width = 1.5 portalRot = eulerangles 90 0 0 rotate $ portalRot return true ) -------------------------------------------------------------- -- Assign a link from the selected MILO portals to the MILO -- room selected by the user. -------------------------------------------------------------- fn MultiAssign = ( sel = selection as array if sel.count == 0 then ( messagebox "Please select at least one MILO Portal" return false ) obj = pickObject message:"Please select a room MILO" print obj for i = 1 to sel.count do ( if sel[i].LinkFirst == undefined then ( sel[i].LinkFirst = obj ) else if sel[i].LinkSecond == undefined then ( sel[i].LinkSecond = obj ) else ( messagebox ("MILO Portal " + sel[i].name + " already had two room links. The first link has now been replaced.") sel[i].LinkFirst = obj ) ) return true ) fn MultiAssignNone = ( sel = selection as array if sel.count == 0 then ( messagebox "Please select at least one MILO Portal" return false ) for i = 1 to sel.count do ( sel[i].LinkFirst = undefined sel[i].LinkSecond = undefined ) return true ) --//////////////////////////////////////////////////////////// -- events --//////////////////////////////////////////////////////////// on btnMiloPortal pressed do ( if CreatePortal() == false then return false ) on btnMultiAssign pressed do ( if MultiAssign() == false then return false ) on btnMultiAssignNone pressed do ( if MultiAssignNone() == false then return false ) on btnPropRender pressed do ( fileIn (::RsConfigGetWildWestDir() + "script/3dsMax/Props/propRenderer.ms") ) ) -------------------------------------------------------------- -- beginning of execution -------------------------------------------------------------- createDialog RsMiloRoll