meta data for this page
  •  

📚 差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:world:vehicle [2024/06/24 11:12] bibiboxsscripting:world:vehicle [2025/08/16 04:30] (当前版本) bibiboxs
行 20: 行 20:
  
  
-### OnVehicleEntered( character, vehicle, seat )+### OnVehicleEntered( vehicle, character, seat )
  
 > 当角色进入载具(或切换位置)时触发。 > 当角色进入载具(或切换位置)时触发。
行 26: 行 26:
  
  
-### OnVehicleExited( character, vehicle, seat )+### OnVehicleExited( vehicle, character, seat )
  
 > 当角色离开载具时触发。 > 当角色离开载具时触发。
行 78: 行 78:
 ```javascript ```javascript
 vehicle.UUID: string vehicle.UUID: string
 +```
 +
 +
 +
 +### vehicle.Name
 +
 +> 获取载具数据内名称(`Data.Name`)。
 +
 +```javascript
 +vehicle.Name: string
 ``` ```
  
行 167: 行 177:
 ### vehicle.Health ### vehicle.Health
  
-> 设定载具生命值损耗+> 设定载具生命值。
  
 ```javascript ```javascript
-vehicle.Health = 1000; //Vector+vehicle.Health = 1000; 
 +``` 
 + 
 + 
 + 
 +### vehicle.DefaultHealth 
 + 
 +> 获取载具默认生命值。 
 + 
 +```javascript 
 +vehicle.DefaultHealth: int
 ``` ```
  
行 195: 行 215:
 //示例:无视子弹和爆炸伤害,其他正常 //示例:无视子弹和爆炸伤害,其他正常
 vehicle.Immunity = 2 + 4; //或直接设为6 vehicle.Immunity = 2 + 4; //或直接设为6
 +```
 +
 +
 +
 +### vehicle.TyreImmunity
 +
 +> 设定载具的轮胎受击免疫,激活后**不会因==常规攻击==导致爆胎**(`vehicle.SetTyre(1)`),默认为`false`。
 +>
 +> **注意:此属性不会影响`vehicle.SetTyre()`执行效果。**
 +
 +```javascript
 +vehicle.TyreImmunity = false; //bool
 ``` ```
  
行 342: 行 374:
 | 1    | 向左转向 | | 1    | 向左转向 |
 | 2    | 向右转向 | | 2    | 向右转向 |
 +
 +### vehicle.CenterOfMass
 +
 +> 设置载具物理质心(平衡中心点),默认值为载具原始数据`CenterOfMass`。
 +>
 +> 通常情况下,数值`Vector(0, -0.5, 0)`是比较平稳的点,合适的数值可提升载具平稳度。
 +>
 +> **扩展:通过此属性+搭配按键绑定,可实现载具倾斜等效果。**
 +
 +```javascript
 +vehicle.CenterOfMass = Vector(0, 0, 0);
 +```
  
  
行 457: 行 501:
  
  
-### vehicle.WheelGrounded+### vehicle.IsDamageFire
  
-> 获取载具全部车轮**是否在地面上**。+> 获取载具是否**正损毁燃烧**(损耗低于最低数值,即将燃烧爆炸)
  
 ```javascript ```javascript
-vehicle.WheelGrounded: bool+vehicle.IsDamageFire: bool
 ``` ```
  
  
  
-### vehicle.WheelLiftOffTime+### vehicle.IsTurnOver
  
-> 获取载具上次**任意轮离地时间**,即使`vehicle.WheelGrounded`回到地面,此属性并不会重置为`0`+> 获取载具是否**被判定翻车**(翻转角度>=90)
  
 ```javascript ```javascript
-vehicle.WheelLiftOffTime: float+vehicle.IsTurnOver: bool 
 +``` 
 + 
 + 
 + 
 +### vehicle.PowerTime 
 + 
 +> 获取载具**持续动力时间(`PowerState == 1 || PowerState == -1`)**,默认或非动力时值为`0`。 
 + 
 +```javascript 
 +vehicle.PowerTime: float 
 +``` 
 + 
 + 
 + 
 +### vehicle.IsOnGround 
 + 
 +> 获取载具**是否在地面上**(`vehicle.LiftOffHeight <= 0.5`)。 
 + 
 +```javascript 
 +vehicle.IsOnGround: bool 
 +``` 
 + 
 + 
 + 
 +### vehicle.LiftOffHeight 
 + 
 +> 获取载具**与地面的距离**。 
 + 
 +```javascript 
 +vehicle.LiftOffHeight: float
 ``` ```
  
行 539: 行 613:
 ### Vehicle.SetSourceData() ### Vehicle.SetSourceData()
  
-> 设置**指定型号载具**最新数据,可用来修改同一Model载具的全部初始属性(当前场景有效)。 +> 设置**指定型号载具**最新数据,可用来修改同一`Model`载具的全部初始属性。
-+
-> 对于一些载具属性的调整,可能需要同时调整多个属性才会达到理想中的效果(例如:提升速度`Acceleration`的同时最好也提升`MaxSpeed`)+
  
 [note3] [note3]
  
-**注意:尽管此API允许修改任何存在的原生数据`KeyPath`,但并非所有改动都会生效(例如:轮胎、附件、座位等可能不会生效,也不建议修改,除非知道自己在做什么),此方法更适合修改`Handling`之类的载具基础属性**+尽管此方法允许修改任何存在的原生数据`KeyPath`,但并非所有改动都会生效(例如:轮胎、附件、座位等不会生效,也不建议修改,除非知道自己在做什么),此方法更适合修改`Handling`之类的载具**基础属性**
  
-**注意:已存在的载具对象不会更新,适用于执行此代码后创建的所有同类载具,如有更新全部需求可使用`ResetSourceData\ResetAllSourceData`。**+注意:执行代码前**已存在**的载具对象**不会更新**除非为其执行手动更新代码(`vehicle.ResetData()`
  
 [/note] [/note]
  
 ```javascript ```javascript
-function Vehicle.SetSourceData( model: int, keyPath: string, value: any )+function Vehicle.SetSourceData( vehicle: int, keyPath: string, value: any )
 ``` ```
  
 ```javascript ```javascript
-Vehicle.SetSourceData(10, "Handling.Acceleration", 300); //将所有Model==10的载具预设【加速属性】修改为300+Vehicle.SetSourceData(10, "Handling.Acceleration", 300);
 ``` ```
  
-**补充:更多关`VehicleData`属性和节点信息,请参考[《游戏载具扩展》](extend/vehicle)内的Json节点。**+**更多关`VehicleData`属性和节点信息,请参考[《游戏载具扩展》](extend/vehicle)。**
  
  
行 568: 行 640:
  
 ```javascript ```javascript
-function Vehicle.GetSourceData( model: int, keyPath: string ): any+function Vehicle.GetSourceData( vehicle: int, keyPath: string ): any
 ``` ```
  
  
  
-### Vehicle.ClearSourceData()+### Vehicle.ResetSourceData()
  
-> 清空**指定型号载具**修改数据,恢复使用引擎\模组内原始数据(当前场景有效)+> 清空**指定型号载具**修改数据,恢复使用**引擎\模组**内原始数据。
 > >
-**注意:已存在载具对象不会被更新适用于执此代码后创建的所有同类载具,如有更新全部需求可使用`ResetSourceData\ResetAllSourceData`。**+> 注意:此方法**不会更新**生成的对象,除非手动运行 `vehicle.ResetData()` 。 
  
 ```javascript ```javascript
-function Vehicle.ClearSourceDatamodel: int )+function Vehicle.ResetSourceDatavehicle: int )
 ``` ```
  
  
  
-### Vehicle.ResetSourceData()+### Vehicle.ResetAllSourceData()
  
-重置刷新**指定型号载具**最新数据,全部更新使用最新的数据。+清空**指定型号载具**修改数据,恢复使用**引擎\模组**内原始数据。
 > >
-**注意:通过`vehicle.SetData`独立修改的载具也被覆盖更新**+> 注意:此方法**不会更新**已生成的对象,除非手动运行 `vehicle.ResetData()` 。 
  
 ```javascript ```javascript
-function Vehicle.ResetSourceDatamodel: int )+function Vehicle.ResetAllSourceData()
 ``` ```
  
  
  
-### Vehicle.ResetAllSourceData()+### Vehicle.ResetAllData()
  
-> 重置刷新**全部型号载具**最新数据,全部更新使用最新数据。+> 重置刷新**指定型号载具**最新数据,全部更新使用最新数据。
 > >
 > **注意:通过`vehicle.SetData`独立修改的载具也会被覆盖更新。** > **注意:通过`vehicle.SetData`独立修改的载具也会被覆盖更新。**
  
 ```javascript ```javascript
-function Vehicle.ResetAllSourceData()+function Vehicle.ResetAllDatavehicle: int = -1 )
 ``` ```
 +
 +- `vehicle`默认为`-1`修改全部`Model`载具,否则表示仅修改指定`Model`载具
  
  
行 689: 行 763:
 function vehicle.GetOccupant( seat: int ): Character function vehicle.GetOccupant( seat: int ): Character
 ``` ```
 +
 +
 +
 +### vehicle.GetAnyOccupant()
 +
 +> 获取载具任一乘客角色(包含驾驶员),默认返回第一个找到的角色。
 +
 +```javascript
 +function vehicle.GetAnyOccupant( random: bool = false ): Character
 +```
 +
 +- **`random`:**是否获取随机角色,否则获取第一个找到的角色
  
  
行 772: 行 858:
 ``` ```
  
-| 状态 | 说明           +| 状态 | 说明                                             
-| ---- | -------------- | +| ---- | ------------------------------------------------ | 
-| 0    | 默认,轮胎可见 | +| 0    | 默认,轮胎可见                                   
-| 1    | 占位暂无功能 +| 1    | 爆胎轮胎偏移(不受`vehicle.TyreImmunity`影响) 
-| 2    | 轮胎消失       |+| 2    | 轮胎消失                                         |
  
  
行 786: 行 872:
 ```javascript ```javascript
 function vehicle.GetTyre( index: int ) function vehicle.GetTyre( index: int )
 +```
 +
 +
 +
 +### vehicle.ExistFlag()
 +
 +> 获取载具`Flags`是否已激活指定的`Flag`。
 +
 +```javascript
 +function vehicle.ExistFlag( flag: int ): bool
 +```
 +
 +```javascript
 +vehicle.SetData("Flags", 4);
 +DLog(vehicle.ExistFlag(4)); //true
 ``` ```
  
行 797: 行 898:
 > >
 > **注意:尽管`SetData()`允许修改任何存在的原生数据`KeyPath`,但并非所有改动都会生效(例如:轮胎、附件、座位数等不会生效),此方法更适合修改`Handling`之类的载具属性。** > **注意:尽管`SetData()`允许修改任何存在的原生数据`KeyPath`,但并非所有改动都会生效(例如:轮胎、附件、座位数等不会生效),此方法更适合修改`Handling`之类的载具属性。**
 +
 +[note2]
 +
 +如果希望修改载具的特殊属性,可能希望执行:`vehicle.SetData("Flags", XX)`。
 +
 +**关于载具特殊属性,参考[《载具特殊属性Flag》](reference/instances)。**
 +
 +[/note]
  
 ```javascript ```javascript
行 804: 行 913:
 ```javascript ```javascript
 let tempVeh = Vehicle.Find(0); let tempVeh = Vehicle.Find(0);
-tempVeh.SetData("Handling.Acceleration", 300); //将加速属性修改为300,加速应该会更快+tempVeh.SetData("Handling.Acceleration", 300); //Add Speed
 ``` ```
  
行 823: 行 932:
 ### vehicle.ResetData() ### vehicle.ResetData()
  
-> 重置**当前载具**默认原生数据(独立),如果原生数据通过`Vehicle.SetSourceData()`更改,则使用被其更改后的原生数据,否则使用引擎\模组最原始数据。+> 重置**当前载具**默认原生数据(独立),如果原生数据通过`Vehicle.SetSourceData()`更改,则使用被其更改后的原生数据,否则使用**引擎\模组**最原始数据。
  
 ```javascript ```javascript
 function vehicle.ResetData() function vehicle.ResetData()
 ``` ```
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +