meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:native:core [2025/08/27 02:13] – bibiboxs | scripting:native:core [2025/12/04 11:33] (当前版本) – bibiboxs | ||
|---|---|---|---|
| 行 41: | 行 41: | ||
| ``` | ``` | ||
| - | - `x`:X轴数值(左右) | + | - `x`X轴数值(左右) |
| - | - `y`:Y轴数值(上下) | + | - `y`Y轴数值(上下) |
| - | - `z`:Z轴数值(前后) | + | - `z`Z轴数值(前后) |
| 行 57: | 行 57: | ||
| ``` | ``` | ||
| - | - `x`:X轴数值 | + | - `x`X轴数值 |
| - | - `y`:Y轴数值 | + | - `y`Y轴数值 |
| + | |||
| + | |||
| + | |||
| + | ### Bounds() | ||
| + | |||
| + | > 包围盒结构类型,通常用于AABB数据存储。 | ||
| + | > | ||
| + | > **==此方法必须使用`Equals()`判断相等。==** | ||
| + | |||
| + | ```javascript | ||
| + | let bounds = Bounds(Vector(0, | ||
| + | ``` | ||
| + | |||
| + | - `center`中心位置 | ||
| + | - `size`尺寸 | ||
| + | - `extents`尺寸(一半) | ||
| + | - `min`最小点 | ||
| + | - `max`最大点 | ||
| 行 73: | 行 91: | ||
| ``` | ``` | ||
| - | - `r`:颜色数值 | + | - `r`颜色数值 |
| - | - `g`:颜色数值 | + | - `g`颜色数值 |
| - | - `b`:颜色数值 | + | - `b`颜色数值 |
| - | - `a`:透明度数值 | + | - `a`透明度数值 |
| 行 84: | 行 102: | ||
| > (只读)Array检测函数的返回值,属性可获取数组(封装)信息。 | > (只读)Array检测函数的返回值,属性可获取数组(封装)信息。 | ||
| - | - `GetCount()`:获取数组长度 | + | - `GetCount()`获取数组长度 |
| - | - `Get(index: int)`:获取指定索引的内容 | + | - `Get(index: int)`获取指定索引的内容 |
| 行 93: | 行 111: | ||
| > (只读)射线检测函数的返回值,属性可获取射线检测结果(是否碰撞、最终坐标、检测实体等)。 | > (只读)射线检测函数的返回值,属性可获取射线检测结果(是否碰撞、最终坐标、检测实体等)。 | ||
| - | - `IsHit`:是否碰撞射线(如果`IsHit | + | - `IsHit`是否碰撞射线(如果`IsHit = true && Entity = null`,可能表示检测到世界地形) |
| - | - `Point`:射线检测坐标(如没有产生碰撞,则坐标即是默认终点) | + | - `Point`射线检测坐标(如没有产生碰撞,则坐标即是默认终点) |
| - | - `Entity`:射线碰撞实体(如果对象不是标准的`Entity`实体,或对象为**静态模型(本地静态模型)**,则返回为`null`) | + | - `Entity`射线碰撞实体(如果对象不是标准的`Entity`实体,或对象为**静态模型(本地静态模型)**,则返回为`null`) |
| + | - `Distance`射线实际产生距离 | ||
| + | - `Normal`射线检测表面角度 | ||
| 行 109: | 行 129: | ||
| > **注意:结构内的三种Vector类型虽然命名不同,但均是以`Vector`作为属性类型,因此在某些情况下可以忽略命名问题。** | > **注意:结构内的三种Vector类型虽然命名不同,但均是以`Vector`作为属性类型,因此在某些情况下可以忽略命名问题。** | ||
| - | - `Tag`:筛选标签(可空`"" | + | - `Tag`筛选标签(可空`"" |
| - | - `Pos`:坐标(Vector,不可空,至少要有一个) | + | - `Pos`坐标(Vector,不可空,至少要有一个) |
| - | - `Angle`:旋转角度(Vector,可空) | + | - `Angle`旋转角度(Vector,可空) |
| - | - `Scale`:缩放(Vector,可空) | + | - `Scale`缩放(Vector,可空) |
| 行 122: | 行 142: | ||
| > 当游戏配置(通过`SetGameOption`被绑定过的)发生主动更新时触发(或有数值被改变)。 | > 当游戏配置(通过`SetGameOption`被绑定过的)发生主动更新时触发(或有数值被改变)。 | ||
| > | > | ||
| - | > 每次客户端脚本加载完成时,都会自动触发一次(`optionKey==null`)。 | + | > 每次客户端脚本加载完成时,都会自动触发一次(`optionKey = null`)。 |
| ```javascript | ```javascript | ||
| 行 168: | 行 188: | ||
| function QuitGame() | function QuitGame() | ||
| ``` | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### SetDisconnectMethod() | ||
| + | |||
| + | > 设置断开连接监听处理方法,允许设置为`null`。 | ||
| + | > | ||
| + | > 此功能允许根据断开原因选择处理方式(断开、重连、关闭模组)。 | ||
| + | |||
| + | ```javascript | ||
| + | function SetDisconnectMethod( (output: string ): int => {} ) | ||
| + | ``` | ||
| + | ```javascript | ||
| + | SetDisconnectMethod((output) => { | ||
| + | if(output.indexOf(" | ||
| + | { | ||
| + | //Unload Mod | ||
| + | return 2; | ||
| + | } | ||
| + | }); | ||
| + | ``` | ||
| + | |||
| + | | Method | 说明 | ||
| + | | ------ | ------------ | | ||
| + | | 0 | 默认 | ||
| + | | 1 | 重新连接 | ||
| + | | 2 | 关闭运行模组 | | ||
| 行 187: | 行 234: | ||
| > 判断两个对象是否相同(相等)。 | > 判断两个对象是否相同(相等)。 | ||
| > | > | ||
| - | > **注意:此方法是判断两者相同的最佳方法,同时也是==浮点数据类型(`Vector | Vector2 | Color`)==的唯一判断方法。** | + | > 注意:此方法是判断两者相同的最佳方法,同时也是**浮点数据类型(`Vector | Vector2 | Color`)**的唯一判断方法。 |
| [note2] | [note2] | ||
| - | **对于浮点类型相关的扩展类型,直接使用`==`无法进行有效判断(将始终返回`false`),相关类型必须使用此方法判断相同。 | + | 对于浮点类型相关的扩展类型,直接使用`==`无法进行有效判断(将始终返回`false`),必须使用此方法判断相同。 |
| 除此之外,常规数据类型可正常使用`==`进行判断。 | 除此之外,常规数据类型可正常使用`==`进行判断。 | ||
| 行 198: | 行 245: | ||
| ```javascript | ```javascript | ||
| - | function Equals( a, b ): bool | + | function Equals( a: any, b: any ): bool |
| ``` | ``` | ||
| 行 246: | 行 293: | ||
| ```javascript | ```javascript | ||
| - | function Env.LoadScript( path: string ) | + | function Env.LoadScript( path: string, IIFE: bool = false) |
| ``` | ``` | ||
| - `path`脚本目录下的 同级或子级 脚本文件路径(例如:`Test/ | - `path`脚本目录下的 同级或子级 脚本文件路径(例如:`Test/ | ||
| + | - `IIFE`是否为独立作用域,否则默认脚本续写加载 | ||
| ```javascript | ```javascript | ||
| 行 255: | 行 303: | ||
| LoadScript(" | LoadScript(" | ||
| LoadScript(" | LoadScript(" | ||
| - | LoadScript(" | + | LoadScript(" |
| LoadScript(" | LoadScript(" | ||
| 行 295: | 行 343: | ||
| ``` | ``` | ||
| - | - `eventName`:希望监听的`function`名称,通常用于监听引擎原生事件,但也支持自定义事件 | + | - `eventName`希望监听的`function`名称,通常用于监听引擎原生事件,但也支持自定义事件 |
| - | - `action`:当事件触发时执行的`function`,支持`Lambda`表达式 | + | - `action`当事件触发时执行的`function`,支持`Lambda`表达式 |
| - | - `sort`:监听方法的执行顺序,**数值越小越靠前**,默认顺序为`1`(在原方法执行后执行),原方法Sort默认保持为`0`(唯一) | + | - `sort`监听方法的执行顺序,**数值越小越靠前**,默认顺序为`1`(在原方法执行后执行),原方法Sort默认保持为`0`(唯一) |
| - | - `return`:监听事件的Hash值,可用于取消监听 | + | - `return`监听事件的Hash值,可用于取消监听 |
| ```javascript | ```javascript | ||
| 行 340: | 行 388: | ||
| ``` | ``` | ||
| - | - `eventHash`:希望取消监听的`eventHash`,通过`AddListener()`返回值获取 | + | - `eventHash`希望取消监听的`eventHash`,通过`AddListener()`返回值获取 |
| ```javascript | ```javascript | ||
| 行 360: | 行 408: | ||
| ``` | ``` | ||
| - | - `functionName`:触发的函数\事件名称 | + | - `functionName`触发的函数\事件名称 |
| - | - `params`:附带参数(如存在) | + | - `params`附带参数(如存在) |
| ```javascript | ```javascript | ||
| 行 377: | 行 425: | ||
| > **补充:如果不填写任何参数,则表示加载到初始入口世界(`Main`世界)。** | > **补充:如果不填写任何参数,则表示加载到初始入口世界(`Main`世界)。** | ||
| > | > | ||
| - | > **==注意:我们建议不指定固定的端口号,而是使用`Mod.json -> NetworkPort`机制设定模组端口,并设置当前方法参数`Port=0`(自动识别模组`NetworkPort`)。==** | + | > 通常**不建议**指定**固定**的端口号,而是使用`Mod.json -> NetworkPort`机制设定模组端口,并设置当前方法参数`Port=0`(自动识别模组`NetworkPort`)。 |
| ```javascript | ```javascript | ||
| 行 796: | 行 844: | ||
| > 如果只希望获取`Entity`部分类型,可使用`layer`参数进行[实体类型层(位)](reference/ | > 如果只希望获取`Entity`部分类型,可使用`layer`参数进行[实体类型层(位)](reference/ | ||
| > | > | ||
| - | > **注意:此方法会检测世界地形(除非参数`includeTerrain = false`),如果`IsHit | + | > **注意:此方法会检测世界地形(除非参数`includeTerrain = false`),如果`IsHit = true && Entity = null`,表示最终检测到地形**。 |
| ```javascript | ```javascript | ||
| 行 802: | 行 850: | ||
| ``` | ``` | ||
| - | - `start`:起始点 | + | - `start`起始点 |
| - | - `over`:结束点 | + | - `over`结束点 |
| - | - `layer`:筛选layer层,默认为`0`,可用于筛选判断[实体类型层(位)](reference/ | + | - `layer`筛选layer层,默认为`0`,可用于筛选判断[实体类型层(位)](reference/ |
| - | - `RayTraceResult`:返回值([类型参考](scripting/ | + | - `RayTraceResult`返回值([类型参考](scripting/ |
| ```javascript | ```javascript | ||
| 行 1005: | 行 1053: | ||
| RemoveVectorPoint(" | RemoveVectorPoint(" | ||
| ``` | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### FormatPlainText() | ||
| + | |||
| + | > 格式化指定文本为纯文本(去除`HTML|UBB`),可用于获取除表情外等真实文本及长度。 | ||
| + | |||
| + | ```javascript | ||
| + | function FormatPlainText( text: string, includeUBB: bool = true ): string | ||
| + | ``` | ||
| + | |||
| + | - `includeUBB`:如果设置为`true`,则允许包含`UBB`(忽略处理)。 | ||
| 行 1015: | 行 1075: | ||
| ```javascript | ```javascript | ||
| - | function FormatRichText( text: string, onlyEmoji: bool = false ) | + | function FormatRichText( text: string, onlyEmoji: bool = false ): string |
| ``` | ``` | ||
| 行 1029: | 行 1089: | ||
| ### FormatDefineText() | ### FormatDefineText() | ||
| - | > 格式化指定文本为[引擎宏文本](reference/define " | + | > 格式化指定文本为[引擎宏文本](developer/define " |
| ```javascript | ```javascript | ||
| - | function FormatDefineText( text: string, includeColor: | + | function FormatDefineText( text: string, includeColor: |
| ``` | ``` | ||
| 行 1081: | 行 1141: | ||
| - `sampleAll`是否采样所有静态对象,否则仅采样地面对象(陆地)。 | - `sampleAll`是否采样所有静态对象,否则仅采样地面对象(陆地)。 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||