沙盘引擎 (SEngine)

创意诞生沙盘世界,不止如此想象!

用户工具

站点工具


scripting:native:main

📚 差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:native:main [2023/10/16 14:30] bibiboxsscripting: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; //magnitude(向量长度)
 +pos.normalized; //normalized(归一化)
 ``` ```
  
行 212: 行 216:
 > >
 > 任何情况下,使用此方法都将**直接断开当前服务器并建立新的服务器**,请确保相关数据提前保存。 > 任何情况下,使用此方法都将**直接断开当前服务器并建立新的服务器**,请确保相关数据提前保存。
 +>
 +> **补充:如果不填写任何参数,则表示加载到初始入口世界(`Main`世界)。**
 +>
 +> **==注意:我们建议不指定固定的端口号,而是使用`Mod.json -> NetworkPort`机制设定模组端口,并设置当前方法参数`Port=0`(自动识别模组`NetworkPort`)。==**
  
 ```javascript ```javascript
行 309: 行 317:
 ```javascript ```javascript
 function IsServerMode(): bool function IsServerMode(): bool
 +```
 +
 +
 +
 +### IsNewPlayer()
 +
 +> 判断当前是否为**玩家初次进入此模组**。
 +
 +```javascript
 +function IsNewPlayer(): bool
 ``` ```
  
行 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;i<mapCount;i++)
 +{
 +    DLog(i + ">" + GetMapByIndex(i));
 +}
 +```
 +
 +
 +### GenerateUUID()
 +
 +> 生成一段唯一的UUID字符串(GUID)。
 +>
 +> 在绝大部分情况下,由此方法生成的UUID应该是全球唯一的。
 +
 +```javascript
 +function GenerateUUID(): string
 +```
  
  
行 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 'Character' and 'Vehicle'
 +OverlapEntity(Vector(0, 0, 0), 20, 2 + 4)
 +//or
 +OverlapEntity(Vector(0, 0, 0), 20, 6)
 +```
 +
 +
 +
 +### OverlapEntityByIndex()
 +
 +> 获取由`OverlapEntity()`记录后的**指定索引实例**,如不存在或已销毁则返回`null`。
 +>
 +> **注意:此方法使用前必须执行一次`OverlapEntity()`,以此获取最新的范围内检测信息。**
 +>
 +> ==(此方法在World\Client脚本有隔离机制,无须担心结果重叠覆盖问题)==
 +
 +```javascript
 +function OverlapEntityByIndex( index: int ): Entity
 +```
 +
 +```javascript
 +let count = OverlapEntity(Vector(0, 0, 0), 20);
 +if(count > 0)
 +{
 +    DLog(i + "=" + OverlapEntityByIndex(i));
 +}
 ``` ```
  
行 467: 行 584:
 ### GetLanguage() ### GetLanguage()
  
-> 获取**当前[游戏模组语言](developer/mod/language)的==标准英文名称==**(在部分情况下,可能会出现引擎语言与模组语言不同的情况,这里返回的是模组语言)。+> 获取**当前[引擎语言](developer/mod/language)的==标准英文名称==**(在部分情况下,可能会出现引擎语言与模组语言不同的情况,这里返回的是引擎语言)。 
 +
 +> **例如:沙盘引擎本体支持A语言,但当前模组可能仅支持B语言,此时返回的是A语言的标准英文名称。** 
 +
 +> ==通常情况下,开发者应该主动参考此方法获得的语言名称。此方法也会在游戏启动时自动识别`GetSystemLanguage()`系统语言兼容。== 
 + 
 +```javascript 
 +function GetLanguage(): string 
 +``` 
 + 
 + 
 + 
 +### GetModLanguage() 
 + 
 +> 获取**当前[模组语言](developer/mod/language)的==标准英文名称==**(在部分情况下,可能会出现引擎语言与模组语言不同的情况,这里返回的是模组语言)。
 > >
 > **例如:沙盘引擎默认暂不支持A语言,但当前模组支持B语言,此时返回的是B语言的标准英文名称。** > **例如:沙盘引擎默认暂不支持A语言,但当前模组支持B语言,此时返回的是B语言的标准英文名称。**
 +
 +```javascript
 +function GetLanguage(): string
 +```
 +
 +
 +
 +### GetSystemLanguage()
 +
 +> 获取**当前[系统识别语言](developer/mod/language)的==标准英文名称==**,此方法仅供参考用户系统语言。
 +>
  
 ```javascript ```javascript
行 523: 行 665:
  
 ```javascript ```javascript
-function GetVectorPoint( tag: string, index: int ): VectorPoint+function GetVectorPoint( tag: string, index: int = 0 ): VectorPoint
 ``` ```
  
行 567: 行 709:
 RemoveVectorPoint("HomePos"); RemoveVectorPoint("HomePos");
 ``` ```
 +
 +
 +### FormatRichText()
 +> 格式化指定文本为引擎富文本(并非传统意义的`Richtext`),这将使一段文本执行以下操作:**链接地址标蓝、@玩家名(高亮)、#数字(根据ID转换为Texture图片或Emoji表情)**。
 +
 +```javascript
 +function FormatRichText( text: string, onlyEmoji: bool = false )
 +```
 +
 +- **onlyEmoji:**如果设置为`true`,则`#Number`的行为将被识别为表情(0~74),否则`#Number`将识别全局`TextureID`。
 +
 +```javascript
 +FormatRichText("#0", false); //Out id 0 (Asset Texture_0, not emoji)
 +FormatRichText("#0", true); //Out id 200 (Emoji Texture, 200~274 is emoji texture)
 +```
 +
 +
 +
 +
  
  
 </markdown> </markdown>
scripting/native/main.1697437856.txt.gz · 最后更改: 2023/10/16 14:30 由 bibiboxs