--- sidebarDepth: 1 --- # 控制 # 索引 包括屏幕操作的相关接口 --- | 接口 |
| 描述 | | --- | --- | --- | | [AddPickBlacklist](控制.md#addpickblacklist) | 客户端 | 添加使用camera组件选取实体时的黑名单,即该实体不会被选取到 | | [ClearPickBlacklist](控制.md#clearpickblacklist) | 客户端 | 清除使用camera组件选取实体的黑名单 | | [GetChosen](控制.md#getchosen) | 客户端 | 获取屏幕点击位置的实体或方块信息,通常与GetEntityByCoordEvent配合使用 | | [GetChosenEntity](控制.md#getchosenentity) | 客户端 | 获取屏幕点击位置的实体id,通常与GetEntityByCoordEvent配合使用 | | [GetHoldTimeThresholdInMs](控制.md#getholdtimethresholdinms) | 客户端 | 获取长按判定时间,即按着屏幕多长时间会触发长按操作 | | [GetInputVector](控制.md#getinputvector) | 客户端 | 获取方向键(移动轮盘)的输入 | | [GetTouchPos](控制.md#gettouchpos) | 客户端 | 获取点击的屏幕坐标。可以监听TapBeforeClientEvent或TapOrHoldReleaseClientEvent事件,调用本API获取点击坐标。 | | [LockInputVector](控制.md#lockinputvector) | 客户端 | 锁定本地玩家方向键(移动轮盘)的输入,可使本地玩家持续向指定方向前行,且不会再受玩家输入影响 | | [PickFacing](控制.md#pickfacing) | 客户端 | 获取准星选中的实体或者方块 | | [SetCanAll](控制.md#setcanall) | 客户端 | 同时设置SetCanMove,SetCanJump,SetCanAttack,SetCanWalkMode,SetCanPerspective,SetCanPause,SetCanChat,SetCanScreenShot,SetCanOpenInv,SetCanDrag,SetCanInair | | [SetCanAttack](控制.md#setcanattack) | 客户端 | 设置是否响应攻击 | | [SetCanChat](控制.md#setcanchat) | 客户端 | 设置是否响应聊天按钮 | | [SetCanDrag](控制.md#setcandrag) | 客户端 | 设置是否响应屏幕拖动 | | [SetCanInair](控制.md#setcaninair) | 客户端 | 设置是否响应上升下降按钮(飞在空中时右下角的三个按钮) | | [SetCanJump](控制.md#setcanjump) | 客户端 | 设置是否响应跳跃(以及在水中浮起) | | [SetCanMove](控制.md#setcanmove) | 客户端 | 设置是否响应移动 | | [SetCanOpenInv](控制.md#setcanopeninv) | 客户端 | 设置是否响应打开背包按钮 | | [SetCanPause](控制.md#setcanpause) | 客户端 | 设置是否响应暂停按钮 | | [SetCanPerspective](控制.md#setcanperspective) | 客户端 | 设置是否响应切换视角 | | [SetCanScreenShot](控制.md#setcanscreenshot) | 客户端 | 设置是否响应截图按钮 | | [SetCanWalkMode](控制.md#setcanwalkmode) | 客户端 | 设置是否响应切换行走模式 | | [SetDeviceVibrate](控制.md#setdevicevibrate) | 客户端 | 设置设备震动 | | [SetHoldTimeThreshold](控制.md#setholdtimethreshold) | 客户端 | 设置长按判定时间,即按着屏幕多长时间会触发长按操作 | | [SetMoveLock](控制.md#setmovelock) | 客户端 | 设置是否锁住移动。实际上为是否响应十字键与遥感的操作。 | | [SetShowRideUI](控制.md#setshowrideui) | 服务端 | 设置是否显示马匹的UI界面 | | [SimulateTouchWithMouse](控制.md#simulatetouchwithmouse) | 客户端 | 模拟使用鼠标控制UI(PC F11快捷键) | | [UnlockInputVector](控制.md#unlockinputvector) | 客户端 | 解锁本地玩家方向键(移动轮盘)的输入 | ## AddPickBlacklist 客户端 method in mod.client.component.gameCompClient.GameComponentClient - 描述 添加使用camera组件选取实体时的黑名单,即该实体不会被选取到 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | entityId | str | 实体id | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateGame(levelId) # 添加黑名单 comp.AddPickBlacklist(entityId) ``` ## ClearPickBlacklist 客户端 method in mod.client.component.gameCompClient.GameComponentClient - 描述 清除使用camera组件选取实体的黑名单 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateGame(levelId) # 清除黑名单中所有实体 comp.ClearPickBlacklist() ``` ## GetChosen 客户端 method in mod.client.component.cameraCompClient.CameraComponentClient - 描述 获取屏幕点击位置的实体或方块信息,通常与GetEntityByCoordEvent配合使用 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | dict | 选中目标的数据,详见[PickFacing接口](控制.md#pickfacing)的备注 | - 备注 - 目前只有在第一人称视角才能准确获取 - 示例 ```python import mod.client.extraClientApi as clientApi # 当玩家点击屏幕时获取点击位置的entityId class MyClientSystem(ClientSystem): def __init__(self, namespace, name): ClientSystem.__init__(self, namespace, name) self.ListenForEvent('Minecraft', 'Engine', 'GetEntityByCoordEvent', self, self.click) def click(self, args): comp = clientApi.GetEngineCompFactory().CreateCamera(levelId) pickData = comp.GetChosen() ``` ## GetChosenEntity 客户端 method in mod.client.component.cameraCompClient.CameraComponentClient - 描述 获取屏幕点击位置的实体id,通常与GetEntityByCoordEvent配合使用 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | str | 实体id | - 备注 - 目前只有在第一人称视角才能准确获取 - 示例 ```python # 当玩家点击屏幕时获取点击位置的entityId import mod.client.extraClientApi as clientApi class MyClientSystem(ClientSystem): def __init__(self, namespace, name): ClientSystem.__init__(self, namespace, name) self.ListenForEvent('Minecraft', 'Engine', 'GetEntityByCoordEvent', self, self.click) def click(self, args): comp = clientApi.GetEngineCompFactory().CreateCamera(levelId) entityId = comp.GetChosenEntity() ``` ## GetHoldTimeThresholdInMs 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 获取长按判定时间,即按着屏幕多长时间会触发长按操作 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | int | 时间,单位毫秒。默认为400 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) timeMs = comp.GetHoldTimeThresholdInMs() ``` ## GetInputVector 客户端 method in mod.client.component.actorMotionCompClient.ActorMotionComponentClient - 描述 获取方向键(移动轮盘)的输入 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | tuple(float,float) | 返回一个单位向量,向量第一项为向左的大小,第二项为向前的大小 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateActorMotion(localPlayerId) left, up = comp.GetInputVector() ``` ## GetTouchPos 客户端 method in mod.client.extraClientApi - 描述 获取点击的屏幕坐标。可以监听TapBeforeClientEvent或TapOrHoldReleaseClientEvent事件,调用本API获取点击坐标。 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | tuple(float,float) | 屏幕坐标 | - 示例 ```python import mod.client.extraClientApi as clientApi def GetTouchPosTest(): touchX, touchY = clientApi.GetTouchPos() ``` ## LockInputVector 客户端 method in mod.client.component.actorMotionCompClient.ActorMotionComponentClient - 描述 锁定本地玩家方向键(移动轮盘)的输入,可使本地玩家持续向指定方向前行,且不会再受玩家输入影响 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | inputVector | tuple(float,float) | 输入向量,第一项控制向左的大小,第二项控制向前的大小。传入(0, 0)时玩家将会被强制固定在原地,不允许移动。 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否锁定成功,True:成功 False:失败 | - 备注 - 传入的向量会被转化为单位向量,因此传入(10, 0)与传入(0.1, 0)效果相同 - 示例 ```python import mod.client.extraClientApi as clientApi # 使玩家向左前方持续移动 localPlayerId = clientApi.GetLocalPlayerId() rotComp = clientApi.GetEngineCompFactory().CreateRot(localPlayerId) motionComp = clientApi.GetEngineCompFactory().CreateActorMotion(localPlayerId) motionComp.LockInputVector((1, 1)) ``` ## PickFacing 客户端 method in mod.client.component.cameraCompClient.CameraComponentClient - 描述 获取准星选中的实体或者方块 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | dict | 选中目标的数据,详见备注 | - 备注 - 选中目标为实体时,返回值为: ```python { "type": "Entity", "entityId": entityId } ``` - 选中目标为方块时,返回值为: ```python { "type": "Block", "x": x, "y": y, "z": z, "face": face } ``` - 没有选中目标时,返回值为: ```python { "type": "None" } ``` - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateCamera(levelId) pickData = comp.PickFacing() ``` ## SetCanAll 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 同时设置SetCanMove,SetCanJump,SetCanAttack,SetCanWalkMode,SetCanPerspective,SetCanPause,SetCanChat,SetCanScreenShot,SetCanOpenInv,SetCanDrag,SetCanInair - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | all | bool | True为全部响应 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 备注 - 要在其他属性设置之前设置,不然在all之前设置的会被覆盖掉 - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 全部设置为不响应 comp.SetCanAll(False) ``` ## SetCanAttack 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应攻击 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | attack | bool | True为可攻击 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应攻击 comp.SetCanAttack(False) ``` ## SetCanChat 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应聊天按钮 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | chat | bool | True为可打开聊天页面 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应聊天按钮 comp.SetCanChat(False) ``` ## SetCanDrag 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应屏幕拖动 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | drag | bool | True为可拖动屏幕 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应屏幕拖动 comp.SetCanDrag(False) ``` ## SetCanInair 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应上升下降按钮(飞在空中时右下角的三个按钮) - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | inair | bool | True为可点击 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应空中控制按钮 comp.SetCanInair(False) ``` ## SetCanJump 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应跳跃(以及在水中浮起) - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | jump | bool | True为可跳跃 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应跳跃 comp.SetCanJump(False) ``` ## SetCanMove 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应移动 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | move | bool | True为可移动 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 备注 - 与SetMoveLock的区别:调用SetCanMove会清除当前Input Vector,例如玩家一直按着前进键,调用SetCanMove(False)会立即停下来,调用SetMoveLock(True)则不会。 - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应移动 comp.SetCanMove(False) ``` ## SetCanOpenInv 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应打开背包按钮 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | open | bool | True为可打开背包 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应打开背包按钮 comp.SetCanOpenInv(False) ``` ## SetCanPause 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应暂停按钮 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | pause | bool | True为可打开暂停页面 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应暂停按钮 comp.SetCanPause(False) ``` ## SetCanPerspective 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应切换视角 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | persp | bool | True为可切换 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应切换视角 comp.SetCanPerspective(False) ``` ## SetCanScreenShot 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应截图按钮 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | shot | bool | True为可截图 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应截图按钮 comp.SetCanScreenShot(False) ``` ## SetCanWalkMode 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否响应切换行走模式 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | walkmode | bool | True为可切换 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 不响应切换行走模式 comp.SetCanWalkMode(False) ``` ## SetDeviceVibrate 客户端 method in mod.client.component.deviceCompClient.DeviceCompClient - 描述 设置设备震动 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | milliSeconds | int | 震动时间(单位:毫秒) | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 备注 - 设置时间区间为[1,5000]毫秒,如果milliSeconds参数大于该区间将会被设置为5000毫秒,小于则设为1毫秒 - 调用时距离上次震动结束的时间不能短于2秒,如果短于2秒本次设置将会失败 - 设置震动失败(函数返回False)的可能原因:距离上次震动结束还未超过2秒、当前已经处于震动状态、设备不支持震动等 - 即使函数返回值为True,也有可能因为未正确判断设备是否支持震动、设备权限上禁止震动等原因未能真正震动 - 在目前版本中还不支持对IOS设备进行震动 - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateDevice(entityId) comp.SetDeviceVibrate(1000) ``` ## SetHoldTimeThreshold 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置长按判定时间,即按着屏幕多长时间会触发长按操作 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | time | int | 时间,单位毫秒。默认为400 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) comp.SetHoldTimeThreshold(100) ``` ## SetMoveLock 客户端 method in mod.client.component.operationCompClient.OperationCompClient - 描述 设置是否锁住移动。实际上为是否响应十字键与遥感的操作。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | movelock | bool | True为锁住 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置是否成功 | - 备注 - 与SetCanMove的区别:调用SetCanMove会清除当前Input Vector,例如玩家一直按着前进键,调用SetCanMove(False)会立即停下来,调用SetMoveLock(True)则不会。 - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateOperation(levelId) # 锁住移动 comp.SetMoveLock(True) ``` ## SetShowRideUI 服务端 method in mod.server.component.rideCompServer.RideCompServer - 描述 设置是否显示马匹的UI界面 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | tamedEntityId | str | 可骑乘生物id | | isShowUI | bool | 是否显示UI | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 设置结果 | - 示例 ```python import mod.server.extraServerApi as serverApi comp = serverApi.GetEngineCompFactory().CreateRide(entityId) comp.SetShowRideUI(entityId,False) ``` ## SimulateTouchWithMouse 客户端 method in mod.client.component.gameCompClient.GameComponentClient - 描述 模拟使用鼠标控制UI(PC F11快捷键) - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | touch | bool | True:进入鼠标模式,False:退出鼠标模式 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 模拟结果 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateGame(levelId) comp.SimulateTouchWithMouse(True) ``` ## UnlockInputVector 客户端 method in mod.client.component.actorMotionCompClient.ActorMotionComponentClient - 描述 解锁本地玩家方向键(移动轮盘)的输入 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否解锁成功,True:成功 False:失败 | - 示例 ```python import mod.client.extraClientApi as clientApi # 解锁使用LockInputVector锁定的本地玩家方向键(移动轮盘)输入 comp = clientApi.GetEngineCompFactory().CreateActorMotion(localPlayerId) motionComp.UnlockInputVector() ```