这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
scripting:native:main [2023/10/16 14:30] – bibiboxs | scripting:native:main [2024/03/31 16:57] (当前版本) – bibiboxs | ||
---|---|---|---|
行 34: | 行 34: | ||
```javascript | ```javascript | ||
let pos = Vector(0, 0, 10); //X, Y, Z | let pos = Vector(0, 0, 10); //X, Y, Z | ||
+ | |||
+ | //Extend | ||
+ | pos.magnitude; | ||
+ | pos.normalized; | ||
``` | ``` | ||
行 212: | 行 216: | ||
> | > | ||
> 任何情况下,使用此方法都将**直接断开当前服务器并建立新的服务器**,请确保相关数据提前保存。 | > 任何情况下,使用此方法都将**直接断开当前服务器并建立新的服务器**,请确保相关数据提前保存。 | ||
+ | > | ||
+ | > **补充:如果不填写任何参数,则表示加载到初始入口世界(`Main`世界)。** | ||
+ | > | ||
+ | > **==注意:我们建议不指定固定的端口号,而是使用`Mod.json -> NetworkPort`机制设定模组端口,并设置当前方法参数`Port=0`(自动识别模组`NetworkPort`)。==** | ||
```javascript | ```javascript | ||
行 309: | 行 317: | ||
```javascript | ```javascript | ||
function IsServerMode(): | function IsServerMode(): | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | ### IsNewPlayer() | ||
+ | |||
+ | > 判断当前是否为**玩家初次进入此模组**。 | ||
+ | |||
+ | ```javascript | ||
+ | function IsNewPlayer(): | ||
``` | ``` | ||
行 438: | 行 456: | ||
``` | ``` | ||
+ | |||
+ | |||
+ | ### GetMapCount() | ||
+ | |||
+ | > 获取当前用户本地地图数量,可使用`filter`进行条件过滤。 | ||
+ | |||
+ | ```javascript | ||
+ | function GetMapCount( filter: int = 0 ): int | ||
+ | ``` | ||
+ | |||
+ | | 过滤Filter | 说明 | ||
+ | | ---------- | ---------------------------- | | ||
+ | | 0 | 默认全部(模组> | ||
+ | | 1 | 只获取模组内置地图 | ||
+ | | 2 | 只获取`Map`地图目录 | ||
+ | | 3 | 只获取`Map\Download`地图目录 | | ||
+ | |||
+ | |||
+ | |||
+ | ### GetMapByIndex() | ||
+ | |||
+ | > 获取当前用户**指定索引**本地地图**文件名称**,通常搭配`GetMapCount()`遍历使用,可使用`filter`进行条件过滤。 | ||
+ | |||
+ | ```javascript | ||
+ | function GetMapByIndex( index: int, filter: int = 0 ): string | ||
+ | ``` | ||
+ | |||
+ | ```javascript | ||
+ | let mapCount = GetMapCount(); | ||
+ | for(let i=0; | ||
+ | { | ||
+ | DLog(i + ">" | ||
+ | } | ||
+ | ``` | ||
+ | |||
+ | |||
+ | ### GenerateUUID() | ||
+ | |||
+ | > 生成一段唯一的UUID字符串(GUID)。 | ||
+ | > | ||
+ | > 在绝大部分情况下,由此方法生成的UUID应该是全球唯一的。 | ||
+ | |||
+ | ```javascript | ||
+ | function GenerateUUID(): | ||
+ | ``` | ||
行 446: | 行 509: | ||
```javascript | ```javascript | ||
function DistancePoint( pos: Vector, pos2: Vector ): float | function DistancePoint( pos: Vector, pos2: Vector ): float | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | ### OverlapEntity() | ||
+ | |||
+ | > 在指定位置**检测并记录范围检测世界实体**(某坐标指定范围内所有对象),可用于检测指定位置的范围内实体对象(基于`Entity`的核心对象)。 | ||
+ | > | ||
+ | > 如果只希望获取`Entity`基础类型中其中的一个或多个子类,可使用`filter`参数进行筛选(位操作)。 | ||
+ | > | ||
+ | > **注意:此方法只用于单次记录,==并返回检测到的数量==,应搭配使用`OverlapEntityByIndex()`获取具体索引的对象实例。** | ||
+ | > | ||
+ | > ==(此方法在World\Client脚本有隔离机制,无须担心结果重叠覆盖问题)== | ||
+ | |||
+ | ```javascript | ||
+ | function OverlapEntity( pos: Vector, radius: float, filter: int = 0 ): int | ||
+ | ``` | ||
+ | |||
+ | | 过滤(Filter) | 说明 | ||
+ | | -------------- | ---------- | | ||
+ | | 0 | 默认全部 | ||
+ | | 1 | Model | | ||
+ | | 2 | Character | ||
+ | | 4 | Vehicle | ||
+ | | 8 | Pickup | ||
+ | | 16 | Checkpoint | | ||
+ | |||
+ | ```javascript | ||
+ | //Only check ' | ||
+ | OverlapEntity(Vector(0, | ||
+ | //or | ||
+ | OverlapEntity(Vector(0, | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | ### OverlapEntityByIndex() | ||
+ | |||
+ | > 获取由`OverlapEntity()`记录后的**指定索引实例**,如不存在或已销毁则返回`null`。 | ||
+ | > | ||
+ | > **注意:此方法使用前必须执行一次`OverlapEntity()`,以此获取最新的范围内检测信息。** | ||
+ | > | ||
+ | > ==(此方法在World\Client脚本有隔离机制,无须担心结果重叠覆盖问题)== | ||
+ | |||
+ | ```javascript | ||
+ | function OverlapEntityByIndex( index: int ): Entity | ||
+ | ``` | ||
+ | |||
+ | ```javascript | ||
+ | let count = OverlapEntity(Vector(0, | ||
+ | if(count > 0) | ||
+ | { | ||
+ | DLog(i + " | ||
+ | } | ||
``` | ``` | ||
行 467: | 行 584: | ||
### GetLanguage() | ### GetLanguage() | ||
- | > 获取**当前[游戏模组语言](developer/ | + | > 获取**当前[引擎语言](developer/ |
+ | > | ||
+ | > **例如:沙盘引擎本体支持A语言,但当前模组可能仅支持B语言,此时返回的是A语言的标准英文名称。** | ||
+ | > | ||
+ | > ==通常情况下,开发者应该主动参考此方法获得的语言名称。此方法也会在游戏启动时自动识别`GetSystemLanguage()`系统语言兼容。== | ||
+ | |||
+ | ```javascript | ||
+ | function GetLanguage(): | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | ### GetModLanguage() | ||
+ | |||
+ | > 获取**当前[模组语言](developer/ | ||
> | > | ||
> **例如:沙盘引擎默认暂不支持A语言,但当前模组支持B语言,此时返回的是B语言的标准英文名称。** | > **例如:沙盘引擎默认暂不支持A语言,但当前模组支持B语言,此时返回的是B语言的标准英文名称。** | ||
+ | |||
+ | ```javascript | ||
+ | function GetLanguage(): | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | ### GetSystemLanguage() | ||
+ | |||
+ | > 获取**当前[系统识别语言](developer/ | ||
+ | > | ||
```javascript | ```javascript | ||
行 523: | 行 665: | ||
```javascript | ```javascript | ||
- | function GetVectorPoint( tag: string, index: int ): VectorPoint | + | function GetVectorPoint( tag: string, index: int = 0 ): VectorPoint |
``` | ``` | ||
行 567: | 行 709: | ||
RemoveVectorPoint(" | RemoveVectorPoint(" | ||
``` | ``` | ||
+ | |||
+ | |||
+ | ### FormatRichText() | ||
+ | > 格式化指定文本为引擎富文本(并非传统意义的`Richtext`),这将使一段文本执行以下操作:**链接地址标蓝、@玩家名(高亮)、# | ||
+ | |||
+ | ```javascript | ||
+ | function FormatRichText( text: string, onlyEmoji: bool = false ) | ||
+ | ``` | ||
+ | |||
+ | - **onlyEmoji:**如果设置为`true`,则`# | ||
+ | |||
+ | ```javascript | ||
+ | FormatRichText("# | ||
+ | FormatRichText("# | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
</ | </ |