跳到主要内容

getActor 获取角色

getActor

类型: MethodDeclaration

所属类: CommandFunctionList

定义位置: command.ts

描述

获取角色

参数

参数名类型描述默认值
\{variable, position, area, size, radius, selector, teamId, condition, attribute, divisor, activation, exclusion, exclusionActor, exclusionTeamId, active\}`{
variable: VariableGetter
position: PositionGetter
area: 'circle' | 'square'
size?: number
radius?: number
selector: 'enemy' | 'friend' | 'team' | 'any'
teamId?: string
condition: 'nearest' | 'farthest' | 'min-attribute-value' | 'max-attribute-value' | 'min-attribute-ratio' | 'max-attribute-ratio' | 'random'
attribute?: string
divisor?: string
activation: 'active' | 'inactive' | 'either'
exclusion: string
exclusionActor?: ActorGetter
exclusionTeamId?: string
active?: boolean
}`--

返回值

类型: CommandFunction

源代码

位置: 第 5901 行

protected getActor({variable, position, area, size, radius, selector, teamId, condition, attribute, divisor, activation, exclusion, exclusionActor, exclusionTeamId, active}: {
variable: VariableGetter
position: PositionGetter
area: 'circle' | 'square'
size?: number
radius?: number
selector: 'enemy' | 'friend' | 'team' | 'any'
teamId?: string
condition: 'nearest' | 'farthest' | 'min-attribute-value' | 'max-attribute-value' | 'min-attribute-ratio' | 'max-attribute-ratio' | 'random'
attribute?: string
divisor?: string
activation: 'active' | 'inactive' | 'either'
exclusion: string
exclusionActor?: ActorGetter
exclusionTeamId?: string
active?: boolean
}): CommandFunction {
// 补丁:2023-1-7
switch (selector) {
// @ts-ignore
case 'team-enemy':
selector = 'enemy'
break
// @ts-ignore
case 'team-friend':
selector = 'friend'
break
// @ts-ignore
case 'team-member':
selector = 'team'
break
}
switch (active) {
case true:
activation = 'active'
break
case false:
activation = 'either'
break
}
condition = condition ?? 'nearest'
exclusion = exclusion ?? 'none'
const setActor = Command.compileVariable(variable, Attribute.OBJECT_SET)
const getPoint = Command.compilePosition(position)
let getSize: () => number
let getRadius: () => number
let getTeamId: () => string
let getExclusionActor: () => Actor | undefined
let getExclusionTeamId: () => string
if (teamId) {
getTeamId = Command.compileString(teamId)
}
switch (area) {
case 'square':
getSize = Command.compileNumber(size!, 0, 0, 512)
break
case 'circle':
getRadius = Command.compileNumber(radius!, 0, 0, 256)
break
}
switch (exclusion) {
case 'actor':
getExclusionActor = Command.compileActor(exclusionActor!)
break
case 'team':
getExclusionTeamId = Command.compileString(exclusionTeamId!)
break
}
if (attribute) attribute = Attribute.getKey(attribute)
if (divisor) divisor = Attribute.getKey(divisor)
return () => {
const point = getPoint()
if (point) {
setActor(Scene.binding?.getActor({
x: point.x,
y: point.y,
area,
size: getSize?.(),
radius: getRadius?.(),
selector,
teamId: getTeamId?.(),
condition,
attribute: attribute!,
divisor: divisor!,
activation,
exclusionActor: getExclusionActor?.(),
exclusionTeamId: getExclusionTeamId?.(),
}))
}
return true
}
}

文档生成时间:2025/7/7 12:07:06