沙盘引擎 (SEngine)

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

用户工具

站点工具


scripting:world:main

📚 差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:world:main [2023/10/23 21:50] bibiboxsscripting:world:main [2024/03/31 15:55] (当前版本) bibiboxs
行 26: 行 26:
 ```javascript ```javascript
 function OnFrameUpdate( deltaTime:float ) //增量时间 function OnFrameUpdate( deltaTime:float ) //增量时间
 +```
 +
 +
 +
 +### OnFixedUpdate( fixedDeltaTime )
 +
 +> 当脚本加载完成后**固定增量时间**调用(与[Unity原理](https://blog.csdn.net/hang981601026/article/details/79640678 "Unity原理")相同)。
 +
 +此事件会以`FixedUpdate`的方式每隔固定时间调用,通常情况下可以忽略使用此事件。
 +
 +```
 +fixedDeltaTime:float //增量时间
 ``` ```
  
行 40: 行 52:
 ```javascript ```javascript
 function OnThrowCastTrigger( tag: string, point: Vector ): bool function OnThrowCastTrigger( tag: string, point: Vector ): bool
 +```
 +
 +```javascript
 +//阻止投掷物引起的爆炸,不会产生爆炸
 +function OnThrowCastTrigger( tag, point )
 +{
 + //Prop grenade [tag] is "Grenade"
 + if(tag == "Grenade")
 + {
 + DLog("An explosion tagged 'Grenad' was stopped!");
 + return false;
 + }
 +}
 ``` ```
  
行 57: 行 82:
  
    
 +
 +### OnServerQueryReceive( data, address )
 +
 +> 当服务器接收到`Query\Gamespy`数据时调用(格式必须是`\xxx\`使用反斜杠包围)。
 +>
 +> **引擎内置数据指令(例如`querystats`等)不会触发此事件。**
 +
 +```javascript
 +function OnServerQueryReceive( data: string, address: string )
 +```
 +
 +
  
 ## Function ## Function
行 74: 行 111:
 > 设置主机房间名称(当主机房间被公开或查询时,单机游戏可以忽略)。 > 设置主机房间名称(当主机房间被公开或查询时,单机游戏可以忽略)。
 > >
-name主机房间名称文本(建议40个字内)+**默认值**`Sandtable Engine Server`
  
 ```javascript ```javascript
 function SetHostName( name: string ) function SetHostName( name: string )
 ``` ```
 +
 +- **name:**主机房间名称文本(最大限制在64字符)。
  
  
行 88: 行 127:
 ```javascript ```javascript
 function GetHostName(): string function GetHostName(): string
 +```
 +
 +
 +
 +### SetHostInfo()
 +
 +> 设置主机房间信息\公告(目前主要用于`TAB`面板封面部分介绍,以及有关房间的介绍信息等)。
 +>
 +> **默认值:`Mod Version: XXX`**。
 +
 +```javascript
 +function SetHostInfo( info: string )
 +```
 +
 +- **info:**主机房间信息\公告(最大限制在64字符)。
 +
 +
 +
 +### GetHostInfo()
 +
 +> 获取主机房间信息\公告。
 +
 +```javascript
 +function GetHostInfo(): string
 ``` ```
  
行 151: 行 214:
 let worldTime = GetTime(); let worldTime = GetTime();
 DLog("Hour: " + worldTime.Hour + ", Minute: " + worldTime.Minute); DLog("Hour: " + worldTime.Hour + ", Minute: " + worldTime.Minute);
 +```
 +
 +
 +
 +### SetTimeRate()
 +
 +> 设置当前游戏世界时间速率(游戏时间每分钟的时间间隔),默认为`1.0`。
 +>
 +> 此方法是`SetGameRule("timerate")`的快捷API。
 +
 +> **例如:设置为`1.0`表示【游戏时间每分钟=现实时间1秒】。**
 +
 +```javascript
 +function SetTimeRate( rate: float )
 +```
 +
 +
 +
 +### GetTimeRate()
 +
 +> 获取游戏世界时间速率(游戏时间每分钟的时间间隔)。
 +
 +```javascript
 +function GetTimeRate(): float
 ``` ```
  
行 206: 行 293:
 function GetGravity(): Vector function GetGravity(): Vector
 ``` ```
 +
 +
 +
 +### SetWorldBrightness()
 +
 +> 设置游戏世界亮度偏移,默认为`1.0`。
 +
 +> 对于特定的场景或游戏玩法(如丧尸游戏),开发者可能希望将此值调低以营造更好的黑夜效果。
 +
 +```javascript
 +function SetWorldBrightness( brightness: float )
 +```
 +
 +
 +
 +### GetWorldBrightness()
 +
 +> 获取游戏世界亮度偏移。
 +
 +```javascript
 +function GetWorldBrightness(): float
 +```
 +
  
  
行 226: 行 336:
 ```javascript ```javascript
 function GetWorldColor(): Color function GetWorldColor(): Color
 +```
 +
 +
 +### SetWorldFogColor()
 +
 +> 设置游戏世界雾颜色,默认为白色`Color(150, 150, 150)`。
 +
 +> 此方法是`SetGameRule("fogcolor")`的快捷方法。
 +
 +```javascript
 +function SetWorldFogColor( color: Color )
 +```
 +
 +
 +
 +### GetWorldFogColor()
 +
 +> 获取游戏世界雾颜色。
 +
 +```javascript
 +function GetWorldFogColor(): Color
 +```
 +
 +
 +
 +### SetSkybox()
 +
 +> 设置游戏世界天空盒,默认为`0`。
 +
 +```javascript
 +function SetSkybox( skybox: int )
 +```
 +
 +
 +
 +### GetSkybox()
 +
 +> 获取游戏世界天空盒。
 +
 +```javascript
 +function GetSkybox(): int
 +```
 +
 +
 +
 +### SetSkyboxColor()
 +
 +> 设置游戏世界天空盒叠加色调,默认为`Color(128, 128, 128)`。
 +
 +```javascript
 +function SetSkyboxColor( color: Color )
 +```
 +
 +
 +
 +### GetSkyboxColor()
 +
 +> 获取游戏世界天空盒叠加色调。
 +
 +```javascript
 +function GetSkyboxColor(): Color
 ``` ```
  
行 331: 行 502:
  
 -  `flags`:筛选layer层,默认为0,可用于筛选判断[实体类型层(位)](reference/instances) -  `flags`:筛选layer层,默认为0,可用于筛选判断[实体类型层(位)](reference/instances)
-- `RayTraceResult`:返回值([类型参考](scripting/native/main))+ `RayTraceResult`:返回值([类型参考](scripting/native/main))
  
 ```javascript ```javascript
行 360: 行 531:
  
 - `ignoreSelf`:是否忽略**发起伤害单位**自身(如`from`为空则没有意义) - `ignoreSelf`:是否忽略**发起伤害单位**自身(如`from`为空则没有意义)
 +
 +
 +
 +### CreateFire()
 +
 +> 在指定位置**生成一团火焰**,火焰将对附近的实体造成燃烧+传播伤害。
 +
 +```javascript
 +function CreateFire( pos: Vector, time: float, radius: float = 1.0 )
 +```
  
  
行 406: 行 587:
  
 ```javascript ```javascript
-function CreateThrowCast( start: Vector, direction: Vector, color: Color, width: float = 0.2, speed: float = 1.0, tag: string = "", action: Action<Vector> = null )+function CreateThrowCast(  
 + start: Vector,  
 +    direction: Vector,  
 +    color: Color,  
 +    width: float = 0.2,  
 +    speed: float = 1.0,  
 +    tag: string = "",  
 +    action: Action<Vector> = null )
 ``` ```
  
行 420: 行 608:
 - **width:**射线宽度 - **width:**射线宽度
 - **speed:**投掷物理速度 - **speed:**投掷物理速度
-- **tag:**标签,仅有识别作用,主要用于`OnThrowCastTrigger() `事件参数+- **tag:**标签,仅有识别作用,主要用于`OnThrowCastTrigger()`事件参数
 - **action:**碰撞时触发方法(参数:`Vector`) - **action:**碰撞时触发方法(参数:`Vector`)
  
行 427: 行 615:
 ### CreateModelThrowCast() ### CreateModelThrowCast()
  
-> 在指定位置生成一条**包含模型的投掷抛物射线(物理)**,与`CreateThrowCast()`功能基本相同,但会额外多出子模型效果(例如射出的子弹、炮弹、弓箭、手榴弹模型等)。+> 在指定位置生成一条**包含模型的投掷抛物射线(物理)**,与`CreateThrowCast()`功能基本相同,但会额外多出**子模型**效果(例如射出的子弹、炮弹、弓箭、手榴弹模型等)。
  
 ```javascript ```javascript
-function CreateModelThrowCast( model: int, localPos: Vector, localAngle: Vector, localScale: Vector, start: Vector, over: Vector, color: Color, width: float = 0.2, time: float = 0.1 )+function CreateModelThrowCast(  
 + model: int,  
 +    localPos: Vector,  
 +    localAngle: Vector,  
 +    localScale: Vector,  
 +    start: Vector,  
 +    direction: Vector,  
 +    color: Color,  
 +    width: float = 0.2,  
 +    speed: float = 1.0,  
 +    tag: string = "",  
 +    action: Action<Vector> = null )
 ``` ```
  
行 438: 行 637:
 - **localScale:**子模型的[本地]缩放 - **localScale:**子模型的[本地]缩放
 - *其他参数与`CreateThrowCast()`*相同 - *其他参数与`CreateThrowCast()`*相同
- 
- 
- 
-### OverlapEntity() 
- 
-> 在指定位置**检测并记录范围检测世界实体**(某坐标指定范围内所有对象),可用于检测指定位置的范围内实体对象(基于`Entity`的核心对象)。 
-> 
-> 如果只希望获取`Entity`基础类型中其中的一个或多个子类,可使用`filter`参数进行筛选(位操作)。 
-> 
-> **注意:此方法只用于单次记录,==并返回检测到的数量==,应搭配使用`OverlapEntityByIndex()`获取具体索引的对象实例。** 
- 
-```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()`,以此获取最新的范围内检测信息。** 
- 
-```javascript 
-function OverlapEntityByIndex( index: int ): Entity 
-``` 
- 
-```javascript 
-let count = OverlapEntity(Vector(0, 0, 0), 20); 
-if(count > 0) 
-{ 
-    DLog(i + "=" + OverlapEntityByIndex(i)); 
-} 
-``` 
  
  
行 786: 行 935:
 function DeleteSaveData( slot: int = 0 ): bool function DeleteSaveData( slot: int = 0 ): bool
 ``` ```
 +
 +
 +
 +### SendSocketData()
 +
 +> 发送Socket\Network网络通信数据。
 +>
 +> **在当前版本下,此方法主要用于外部UDP传输。**
 +>
 +> **对应接收事件:`OnDataServerReceive`**
 +
 +```javascript
 +//Address=IP:Port
 +function SendSocketData( address: string, data: string )
 +```
 +
 +```javascript
 +SendSocketData("127.0.0.1:8192", "Test");
 +```
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  
scripting/world/main.1698069054.txt.gz · 最后更改: 2023/10/23 21:50 由 bibiboxs