⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ck_setportal.ms

📁 3dmax导出3d模型二次开发插件
💻 MS
字号:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Register SetPortal Instruction
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
global instSetPortalStr = "Set Portal"
global instSetPortalRollout
global instSetPortalFct

rollout instSetPortalRollout "Set Portal Options" width:408 height:114
(
	label info_Label "Info: Set the object as a Portal between to Places (Groups in 3dsMax)." pos:[8,8] width:250 height:64
	include "CKInstScripts\\ApplyPreviewButtons.ms"

	label place1_Label "First Place:" pos:[230,40]
	pickbutton place1_PB "<Select Place>" pos:[290,35] width:100 \
		message:"Select a Group" tooltip:"Select a Group" \
		filter:isgroupmember

	label place2_Label "Second Place:" pos:[212,69]
	pickbutton place2_PB "<Select Place>" pos:[290,64] width:100 \
		message:"Select a Group" tooltip:"Select a Group" \
		filter:isgroupmember
		
	on place1_PB picked obj do (
		local parent = obj
		place1_PB.text = ( 
			while not isgrouphead parent do (parent = obj.parent)
			parent.name
		)
	)

	on place2_PB picked obj do (
		local parent = obj
		place2_PB.text = ( 
			while not isgrouphead parent do (parent = obj.parent)
			parent.name
		)
	)

)

fn instSetPortalFct = (

	-- Attach Script 
	chunkData = "  " + CKAttacheScriptOnThisStr + "(\"Set Portal\")"
	chunkdata += "\x0d\x0a"

	-- Place1 
	chunkData += "  " + CKSetParamOnThisStr + "(\"SP Place1\", \"" + instSetPortalRollout.place1_PB.text + "\" )"
	chunkdata += "\x0d\x0a"

	-- Place2 
	chunkData += "  " + CKSetParamOnThisStr + "(\"SP Place2\", \"" + instSetPortalRollout.place2_PB.text + "\" )"
	chunkdata += "\x0d\x0a"

	local portalName = "Portal "+(instSetPortalRollout.place1_PB.text)+"-"+(instSetPortalRollout.place2_PB.text)
	
	for obj in selection do (
		if( (superclassof obj)==geometryclass ) do (
			obj.name = portalName
			if not portalManagement do (
				VirtoolsExportOpt.placeasroup_Check.state = true
				portalManagement=true
			)
			
			AddCKChunk obj instSetPortalStr chunkData
			updateInstructionsList()
		)
	)
)

registerInstruction instSetPortalStr instSetPortalFct instRollout:instSetPortalRollout



-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Register Portal Management Instruction
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
global instPortalManagementStr = "Portal Management"
global instPortalManagementRollout
global instPortalManagementFct

global portalManagement = false

rollout instPortalManagementRollout "Portal Management Options" width:408 height:114
(
	label info_Label "Info: Activates the portal management options." pos:[8,8] width:250 height:16
	include "CKInstScripts\\ApplyPreviewButtons.ms"
)

fn instPortalManagementFct = (

	-- Attach Script 
	chunkData = "  " + CKAttacheScriptOnThisStr + "(\"Portal Management\")"
	chunkdata += "\x0d\x0a"

	for obj in selection do (
		AddCKChunk obj instPortalManagementStr chunkData
		updateInstructionsList()
	)
)

registerInstruction instPortalManagementStr instPortalManagementFct instRollout:instPortalManagementRollout

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -