meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:client:core [2025/08/03 20:53] bibiboxsscripting:client:core [2025/08/16 04:04] (当前版本) bibiboxs
行 67: 行 67:
  
  
-### OnLocalObserver( character )+### OnCameraObserver( character )
  
 > 当客户端`Camera.Target`发生变化时调用。 > 当客户端`Camera.Target`发生变化时调用。
行 94: 行 94:
 > >
 > **对于一些特殊情况,可以利用JSON(data参数)进行更详细的内容传输。** > **对于一些特殊情况,可以利用JSON(data参数)进行更详细的内容传输。**
 +
 +
 +
 +### OnTypingStateChange( state )
 +
 +> 当客户端**开始\结束**聊天框时调用。
  
  
行 175: 行 181:
 ```javascript ```javascript
 function OpenUrl( url: string ) function OpenUrl( url: string )
-``` 
- 
- 
- 
-### BindGameMenuButton() 
- 
-> 绑定当前场景自定义ESC菜单按钮。 
-> 
-> 此方法适用于对模组主菜单**没有特殊\高级自定义需求**(否则应该考虑使用FairyGUI自制菜单),可以通过此方法**快速**的建立一个**游戏原生主菜单**。 
-> 
-> **注意:此方法通常只需要在主菜单场景执行一次,绑定代码只在当前场景生效,==切换场景后将会自动重置默认绑定==。** 
- 
-[note2] 
- 
-此方法支持绑定内置(宏)按钮,这将直接引用引擎内置按钮(功能及翻译),详情可参考下方表格。 
- 
-**如果绑定的是一个内置按钮,则只需要填写参数0即可。** 
- 
-| 内置按钮(宏) | 说明                                                         | 
-| -------------- | ------------------------------------------------------------ | 
-| `@default`     | 绑定默认引擎菜单(游戏选项、多人游戏、地图编辑器、开发者名单、引擎首页、退出游戏……) | 
-| `@space`       | 绑定显示空行(分割显示)                                     | 
-| `@options`     | 游戏选项                                                     | 
-| `@multiplayer` | 多人游戏浏览器                                               | 
-| `@mapeditor`   | 地图编辑器                                                   | 
-| `@developers`  | 开发者名单                                                   | 
-| `@native`      | 沙盘引擎首页(模组选择页)                                   | 
-| `@quit`        | 退出游戏                                                     | 
- 
-[/note] 
- 
-[note3] 
- 
-注意:当玩家处于非主菜单(初始Main场景)界面时,引擎会自动补充【继续游戏】、【返回主菜单】两个额外的菜单按钮。 
- 
-[/note] 
- 
-```javascript 
-function BindGameMenuButton( titleOrKey: string, info: string = null, callback: Action = null ) 
-``` 
- 
-以下是一个示例。 
-```javascript 
-function OnScriptLoad() 
-{ 
-    //Custom Item 
- BindGameMenuButton("启动主机", "建立本地联机服务器", () => { 
- CreateHost("mapname", "scriptname"); 
- }); 
- BindGameMenuButton("[color=#ffff00]加入本地服务器[/color]", "加入本地服务器(127.0.0.1)", () => { 
- ConnectHost("127.0.0.1"); 
- }); 
-     
-    //Internal Item 
-    BindGameMenuButton("@space"); 
-    BindGameMenuButton("@mapeditor"); 
-} 
-``` 
- 
- 
- 
-### UnbindAllGameMenuButton() 
- 
-> 取消绑定所有主菜单界面按钮项目(包括引擎默认按钮)。 
-> 
-> **注意:此方法会清空所有菜单按钮,如果希望重置为默认引擎按钮,应该手动执行一次`BindGameMenuButton("@default");`。** 
- 
-```javascript 
-function UnbindAllGameMenuButton() 
-``` 
- 
- 
- 
-### SetGameMenuTitle() 
- 
-> 设置游戏菜单**标题文本**,留空参数则使用默认名称(模组名称)。 
- 
-```javascript 
-function SetGameMenuTitle( text: string = null ) 
-``` 
- 
- 
- 
-### GetGameMenuTitle() 
- 
-> 获取游戏菜单**标题文本**。 
- 
-```javascript 
-function GetGameMenuTitle(): string 
-``` 
- 
- 
- 
-### SetGameMenuStyle() 
- 
-> 设置游戏菜单**风格样式**,默认值为`0`。 
- 
-```javascript 
-function SetGameMenuStyle( style: int ) 
-``` 
- 
-| Style         | 样式                                                         | 
-| ------------- | ------------------------------------------------------------ | 
-| -1==(已过时)==            | 隐藏内置游戏菜单,通常配合`FairyGUI`高度自定义使用<br />(仅限Main主菜单,游戏世界仍然使用内置菜单风格) | 
-| **0(默认)** | **内置菜单风格,但使用`\GameMenu.png || \Cover.png`作为不透明底图** | 
-| 1             | 内置风格菜单,但不显示背景图片,直接显示世界相机视角             | 
- 
- 
- 
-### GetGameMenuStyle() 
- 
-> 获取游戏菜单**风格样式**。 
- 
-```javascript 
-function GetGameMenuStyle(): int 
-``` 
- 
- 
- 
-### CreateNativeView() 
- 
-> 打开一个引擎内置UI面板(如设置、服务器列表、MOD管理器等)。 
- 
-```javascript 
-function OpenNativeView( int type, Action onDisable = null ) 
-``` 
- 
-| ID   | 面板描述               | 
-| ---- | ---------------------- | 
-| 0    | 开发者界面(关于界面) | 
-| 1    | 游戏设置               | 
-| 2    | 多人游戏浏览器         | 
-| 4    | ~~MOD模组管理~~        | 
- 
-*尽管有些ID没有被表格记录,但有可能仍然是有内容的,但未被记录的ID通常不具备通用性意义,在打开时将会被引擎阻断。* 
- 
- 
- 
-### ExistNativeView() 
- 
-> 检查某个引擎内置UI界面是否存在(被打开)。 
- 
-```javascript 
-function ExistNativeView( type: int ): bool 
-``` 
- 
- 
- 
-### DestroyNativeView() 
- 
-> 关闭一个引擎内置UI面板。 
- 
-```javascript 
-function DestroyNativeView(type: int = -1, hasEffect: bool = true) 
-//如果不填写参数(-1),则默认关闭所有内置UI面板 
-//如果hasEffect == false则立即关闭面板 
 ``` ```
  
行 375: 行 225:
 ```javascript ```javascript
 function SendDataToServer( number: float(int), data: string = "" ) function SendDataToServer( number: float(int), data: string = "" )
-``` 
- 
- 
- 
-### SetChatEnabled() 
- 
-> 设置游戏聊天框启用开关,当聊天框被禁止后,玩家将无法显示或开启聊天框。 
-> 
-> *此功能主要用于主菜单界面,此时通常不希望玩家使用“聊天”功能,在`Main`场景中是默认被禁止的。* 
- 
-```javascript 
-function SetChatEnabled( enable: bool ) 
-``` 
- 
- 
- 
-### GetChatEnabled() 
- 
-> 获取游戏聊天框开关。 
- 
-```javascript 
-function GetChatEnabled(): bool 
-``` 
- 
- 
- 
-### SetChatPanelPivot() 
- 
-> 设置游戏聊天框锚点位置(强制),默认值为`-1`(遵循游戏默认设置),通过此方法设定位置后,即使玩家在游戏选项设置了锚点位置,也会优先使用当前方法所设置的位置。 
-> 
-> *此功能适用于部分U丰富的模组,可能不希望聊天框占用模组UI位置(例如血条、状态条、信息面板等),可以使用此方法强制设定聊天框位置。* 
- 
-```javascript 
-function SetChatPanelPivot( pivot: int = -1 ) 
-``` 
-```javascript 
-SetChatPanelPivot(-1); //Use engine config (default) 
-SetChatPanelPivot(0); //Change pivot to Left_Top 
-SetChatPanelPivot(1); //Change pivot to Left_Center 
-SetChatPanelPivot(2); //Change pivot to Left_Bottom 
 ``` ```
  
行 726: 行 536:
 ```javascript ```javascript
 function GetModArchive( package: string = null ): string function GetModArchive( package: string = null ): string
-``` 
- 
- 
- 
-### GetPropSourceData() 
- 
-> 获取**指定游戏道具**最新默认原始数据,如果未被`SetPropSourceData`重写过,则返回引擎原始数据。 
- 
-```javascript 
-function GetPropSourceData( prop: int, keyPath: string ): any 
 ``` ```
  
行 773: 行 573:
 ### BindActionKey() ### BindActionKey()
  
-> 绑定(更新)**行为触发按键**(游戏右下角按钮)。+> 绑定(更新)**行为触发按键**(类似触发`KEY: [E]`按钮)。
 > >
 > **注意:同一个`keyTag`同时只会存在一个。** > **注意:同一个`keyTag`同时只会存在一个。**
行 845: 行 645:
 - `style`渲染风格(0=默认;1=描边;2=油画;3=灰质;4=黑白描边;5=霓虹描边) - `style`渲染风格(0=默认;1=描边;2=油画;3=灰质;4=黑白描边;5=霓虹描边)
 - `worldTime`世界时间(生成快照时的亮度) - `worldTime`世界时间(生成快照时的亮度)
 +
 +
 +
 +### SetFocusEntityDistance()
 +
 +> 设置本地玩家**焦点检测距离**(与`World`作用相同)。
 +
 +```javascript
 +function SetFocusEntityDistance( value: float )
 +```
 +
 +
 +
 +### GetFocusEntityDistance()
 +
 +> 获取本地玩家**焦点检测距离**。
 +
 +```javascript
 +function GetFocusEntityDistance(): float
 +```
 +
 +