meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:world:core [2025/07/26 03:29] – bibiboxs | scripting:world:core [2025/08/28 02:49] (当前版本) – bibiboxs | ||
|---|---|---|---|
| 行 545: | 行 545: | ||
| ### GetWorldCloudColor() | ### GetWorldCloudColor() | ||
| - | > 获取游戏世界云层颜色。 | + | > 获取游戏世界**云层颜色**。 |
| ```javascript | ```javascript | ||
| 行 555: | 行 555: | ||
| ### SetWorldCloudDensity() | ### SetWorldCloudDensity() | ||
| - | > 设置游戏世界云层密度,默认为`0.3`,限制范围`0.0~1.0`。 | + | > 设置游戏世界**云层密度(强度)**,默认为`0.5`,限制范围`0.0~1.0`。 |
| ```javascript | ```javascript | ||
| - | function SetWorldCloudDensity( | + | function SetWorldCloudDensity( |
| ``` | ``` | ||
| 行 565: | 行 565: | ||
| ### GetWorldCloudDensity() | ### GetWorldCloudDensity() | ||
| - | > 获取游戏世界云层密度。 | + | > 获取游戏世界**云层密度(强度)**。 |
| ```javascript | ```javascript | ||
| 行 733: | 行 733: | ||
| ### Message() | ### Message() | ||
| - | > 给全服在线玩家发送一条公屏消息(在消息框中)。 | + | > 给全部玩家发送一条公屏消息(在消息框中)。 |
| ```javascript | ```javascript | ||
| 行 743: | 行 743: | ||
| ### Announce() | ### Announce() | ||
| - | > 给全服在线玩家发送一条**公告\大文字**消息,具体类型样式参考[《世界资源实例汇总》](https:// | + | > 给全部玩家发送一条**公告\大文字**消息,具体类型样式参考[《世界资源实例汇总》](https:// |
| ```javascript | ```javascript | ||
| 行 753: | 行 753: | ||
| ### Subtitle() | ### Subtitle() | ||
| - | > 给全服在线玩家发送一条**底部字幕**消息。 | + | > 给全部玩家发送一条**底部字幕**消息。 |
| ```javascript | ```javascript | ||
| 行 1015: | 行 1015: | ||
| ```javascript | ```javascript | ||
| function ResumeWorldSound( uuid: string ): bool // | function ResumeWorldSound( uuid: string ): bool // | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetWorldSound() | ||
| - | |||
| - | > 设置一个**服务器世界声音实例**的网络世界`World`(不同世界将无法听到声音)。 | ||
| - | |||
| - | ```javascript | ||
| - | function SetWorldSound( uuid: string, world: int ): bool // | ||
| ``` | ``` | ||
| 行 1063: | 行 1053: | ||
| - | ### SetPropSourceData() | + | ### WriteHostFile() |
| - | > 设置**指定游戏道具**默认原始数据(重写),建议场景初始化时使用,本次场景内有效。 | + | > 写入文件(或以`/ |
| > | > | ||
| - | > **注意:由于`PropData`的数据类型,通过此方法设置数据后,仅会在`character.SetProp()`时赋予最新的道具数据,如果数据在`character.SetProp()`后才进行修改,则之前生成的Prop不会使用最新数据。** | + | > 此功能通常用于实现**游戏存档\配置**等,可以使用`Json`功能进行序列化。 |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ```javascript | ||
| - | SetPropSourceData(277, | ||
| - | ``` | ||
| + | ### ReadHostFile() | ||
| - | ### GetPropSourceData() | + | > 从模组**主机目录**(`Mod/ |
| - | > 获取**指定游戏道具**最新默认原始数据,如果未被`SetPropSourceData`重写过,则返回引擎原始数据。 | + | ```javascript |
| + | function ReadHostFile( localPath: string ): string | ||
| + | ``` | ||
| ```javascript | ```javascript | ||
| - | function GetPropSourceData( prop: int, keyPath: string | + | ReadFile( " |
| ``` | ``` | ||
| - | ### ClearPropSourceData() | + | ### CopyHostFile() |
| - | > 清空**指定游戏道具**修改数据,恢复使用引擎原始数据。 | + | > 从模组**主机目录**(`Mod/ |
| - | > | + | |
| - | > **注意:此方法不会更新已被生成的Prop。** | + | |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| + | ```javascript | ||
| + | CopyHostFile( " | ||
| + | ``` | ||
| - | ### ClearAllPropSourceData() | ||
| - | > 清空**全部游戏道具**修改数据,恢复使用引擎原始数据。 | + | ### RenameHostFile() |
| - | > | + | |
| - | > **注意:此方法不会更新已被生成的Prop。** | + | > 从模组**主机目录**(`Mod/ |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| + | - `isReplace`如果目标文件已存在,是否强制替换 | ||
| - | ### WriteFile() | ||
| - | > 写入一个文件到模组空间目录`Mod/Space`,安全起见,写入文件尺寸限制2MB,且有最大文件数量限制(`Space`目录最多可写`50`个文件)。 | + | ### ExistHostFile() |
| - | > | + | |
| - | > 此功能通常用于实现**游戏\服务器存档、配置**等写入,建议使用JSON功能进行序列化。 | + | > 判断模组**主机目录**(`Mod/Host`)文件(或以`/`结尾的文件夹)是否存在。 |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ### ReadFile() | + | ### DeleteHostFile() |
| - | > 从模组空间目录(`Mod/ | + | > 删除模组**主机目录**(`Mod/Host`)文件(或以`/ |
| + | > | ||
| + | > 注意:删除操作是**不可恢复**的,谨慎使用。 | ||
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ```javascript | + | |
| - | ReadFile( " | + | |
| - | ``` | + | |
| ### SetModArchive() | ### SetModArchive() | ||
| + | > **此方法已在V0.83移除。** | ||
| + | > | ||
| > 设置并覆盖**当前模组**的持久化存储数据(字符串,可通过Json扩展,最长限制512字符)。 | > 设置并覆盖**当前模组**的持久化存储数据(字符串,可通过Json扩展,最长限制512字符)。 | ||
| > | > | ||
| > 数据内容存储到`ModArchive.json`文件,**任意模组之间可相互获取,但只有当前模组可写入自身数据**。 | > 数据内容存储到`ModArchive.json`文件,**任意模组之间可相互获取,但只有当前模组可写入自身数据**。 | ||
| - | > | ||
| - | > ==(出于安全考虑,此方法仅限World端使用,Client端是只读的)== | ||
| ```javascript | ```javascript | ||
| 行 1153: | 行 1143: | ||
| ### GetModArchive() | ### GetModArchive() | ||
| + | > **此方法已在V0.83移除。** | ||
| + | > | ||
| > 尝试读取**指定模组**的持久化存储数据(可通过`SetModArchive()`写入修改),如不存在则返回空文本。 | > 尝试读取**指定模组**的持久化存储数据(可通过`SetModArchive()`写入修改),如不存在则返回空文本。 | ||
| > | > | ||
| 行 1159: | 行 1151: | ||
| ```javascript | ```javascript | ||
| function GetModArchive( package: string = null ): string | function GetModArchive( package: string = null ): string | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### SetSaveItem() | ||
| - | |||
| - | > 设置并覆盖【存档数据槽(`Slot`)】指定`Key`的项目,并以最终Json的格式存储,仅支持基础类型(`string\number\bool...`)。 | ||
| - | > | ||
| - | > 存档槽默认参数为`0`,如果只用于本地持久化数据存储,或者不需要多存档槽的设计,可以忽略`Slot`参数。 | ||
| - | > | ||
| - | > **注意:此方法最多支持50个存档槽(文件),以及单文件最大1MB的写入空间。有关持久化存档相关内容,无论是单存档、多存档或其他使用场景,都可尝试此方案进行存储。** | ||
| - | > | ||
| - | > ==(出于安全考虑,此方法仅限World端使用,Client端是只读的)== | ||
| - | |||
| - | ```javascript | ||
| - | function SetSaveItem( key: string, value: object, slot: int = 0 ) | ||
| - | ``` | ||
| - | |||
| - | ```javascript | ||
| - | SetSaveItem(" | ||
| - | SetSaveItem(" | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### RemoveSaveItem() | ||
| - | |||
| - | > 移除【存档数据槽(`Slot`)】指定`Key`的项目**(并非删除存档,而是删除存档中的一个项)**。 | ||
| - | > | ||
| - | > ==(出于安全考虑,此方法仅限World端使用,Client端是只读的)== | ||
| - | |||
| - | ```javascript | ||
| - | function RemoveSaveItem( key: string, slot: int = 0 ) | ||
| - | ``` | ||
| - | |||
| - | ```javascript | ||
| - | SetSaveItem(" | ||
| - | RemoveSaveItem(" | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### GetSaveItem() | ||
| - | |||
| - | > 尝试读取【存档数据槽(`Slot`)】指定`Key`的项目内容,如不存在则返回`defaultValue`。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetSaveItem( key: string, slot: int = 0, defaultValue: | ||
| - | ``` | ||
| - | |||
| - | ```javascript | ||
| - | SetSaveItem(" | ||
| - | DLog(" | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### ExistSaveItem() | ||
| - | |||
| - | > 判断【存档数据槽(`Slot`)】指定`Key`的**项目内容是否为空(`bool`)**。 | ||
| - | |||
| - | ```javascript | ||
| - | function ExistSaveItem( key: string, slot: int = 0 ): bool | ||
| - | ``` | ||
| - | |||
| - | ```javascript | ||
| - | DLog(ExistSaveItem(" | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### ExistSaveData() | ||
| - | |||
| - | > 判断【存档数据槽(`Slot`)】存档文件是否已被创建(`bool`)。 | ||
| - | |||
| - | ```javascript | ||
| - | function ExistSaveData( slot: int = 0 ): bool | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### DeleteSaveData() | ||
| - | |||
| - | > 删除【存档数据槽(`Slot`)】存档文件,包括其文件内所有数据。 | ||
| - | > | ||
| - | > ==(出于安全考虑,此方法仅限World端使用)== | ||
| - | |||
| - | ```javascript | ||
| - | function DeleteSaveData( slot: int = 0 ): bool | ||
| ``` | ``` | ||
| 行 1254: | 行 1157: | ||
| ### SendSocketData() | ### SendSocketData() | ||
| - | > 发送Socket\Network网络通信数据。 | + | > 发送`Socket\Network`网络通信数据。 |
| > | > | ||
| > **在当前版本下,此方法主要用于外部UDP传输。** | > **在当前版本下,此方法主要用于外部UDP传输。** | ||
| > | > | ||
| - | > **对应接收事件:`OnDataServerReceive`** | + | > **对应接收事件:`OnDataServerReceive`。** |
| ```javascript | ```javascript | ||
| 行 1271: | 行 1174: | ||
| - | ### SetAllNavMeshDirty() | + | ### ReplaceTerrainLayer() |
| - | > 重置全部NavMesh脏数据(重建)。 | + | > 尝试**替换修改**地形层贴图,具体参考[地形层贴图ID](reference/ |
| - | > | + | |
| - | > 此方法通常不需要手动调用,除非希望烘焙全图寻路数据,可能会根据地图大小\复杂度引起卡顿。 | + | |
| > | > | ||
| - | > 不建议**中大型地图**使用此方法,而应该由每次触发寻路时引擎自动提起烘焙请求(自动执行)。 | + | > 注意:此方法会产生些许开销,如果一个层的`layer`已经被替换 ,那么下一次需要使用新的`layer`来进行后续替换。 |
| - | ```javascript | + | [note] |
| - | function SetAllNavMeshDirty() | + | 在游戏场景运行时,会对**使用较少**的贴图自动进行**剔除优化**,因此可能少数情况下会出现**无法找到贴图**的提示。 |
| - | ``` | + | [/note] |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ### SetNavMeshDirtyByPos() | + | |
| - | + | ||
| - | > 重置指定坐标的NavMesh脏数据,该区域范围内的NavMesh(如存在)将会在后续自动重建。 | + | |
| - | > | + | |
| - | > 此方法通常不需要手动调用,除非希望动态生成对象参与NavMesh寻路逻辑,这样就需要在合适的时机对发生变化的区域进行重建,因为区域的NavMesh可能在之前已经烘焙完成。 | + | |
| ```javascript | ```javascript | ||
| - | function | + | function |
| ``` | ``` | ||
| - | ### GetNavMeshRandomPoint() | ||
| - | |||
| - | > 获取指定坐标范围内的随机NavMesh坐标点(已烘焙)。 | ||
| - | > | ||
| - | > 如果范围内不存在合适的坐标,将返回`VECTOR_NULL`。 | ||
| - | |||
| - | ```javascript | ||
| - | function GetNavMeshRandomPoint( pos: Vector, radius: float ): Vector | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### IsValidNavMeshPoint() | ||
| - | |||
| - | > 判断指定坐标是否已被烘焙完成(即合理的寻路坐标)。 | ||
| - | > | ||
| - | > 如果返回`false`则表示此区域没有被烘焙,关于AI的移动逻辑也无法到达目标。 | ||
| - | |||
| - | [note2] | ||
| - | |||
| - | 通常情况下,关于AI的移动将会在设置目标点时自动请求烘焙(可能会在数秒内完成),如果确实需要主动激活某处NavMesh烘焙,请使用`SetNavMeshDirtyByPos()`。 | ||
| - | |||
| - | [/note] | ||
| - | |||
| - | ```javascript | ||
| - | function IsValidNavMeshPoint( pos: Vector ): bool | ||
| - | ``` | ||