Files
gtav-src/tools_ng/dcc/debug/max2011/scripts/rockstar/helpers/milo.ms
T
2025-09-29 00:52:08 +02:00

123 lines
3.6 KiB
Plaintext
Executable File

-- Rockstar MILO Custom Tools
-- Rockstar North
-- 14/11/2005
-- by Luke Openshaw
-- A helper containing a series of tools for MILO objects
-----------------------------------------------------------------------------
-- Uses
-----------------------------------------------------------------------------
filein "pipeline/helpers/props/proprenderer.ms"
-----------------------------------------------------------------------------
-- Rollout
-----------------------------------------------------------------------------
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)
button btnMiloPortal "MILO Portal" width:110 height:30
button btnMultiAssign "Multi Assign Portals" width:110 height:30
button btnMultiAssignNone "Multi Assign None" width:110 height:30
--////////////////////////////////////////////////////////////
-- 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
)
)
--------------------------------------------------------------
-- beginning of execution
--------------------------------------------------------------
try CloseRolloutFloater RsMilo catch()
RsMilo = newRolloutFloater "Props and MILOs" 260 335 100 206
addRollout RsMiloRoll RsMilo
addRollout RsRenderPropsRoll RsMilo