meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
extend:prop [2023/10/22 00:14] – bibiboxs | extend:prop [2025/05/19 21:21] (当前版本) – bibiboxs | ||
---|---|---|---|
行 15: | 行 15: | ||
在沙盘引擎世界中,所有的【游戏道具\物品】全部基于抽象的概念,**实际上并没有任何默认作用**,**它们只是看起来像XXX的一个模型,通过API方式放到了角色手上**,开发者可根据实际游戏玩法需要,自行通过【自定义游戏道具+代码编写道具功能】设定它们应该有何实际操作。 | 在沙盘引擎世界中,所有的【游戏道具\物品】全部基于抽象的概念,**实际上并没有任何默认作用**,**它们只是看起来像XXX的一个模型,通过API方式放到了角色手上**,开发者可根据实际游戏玩法需要,自行通过【自定义游戏道具+代码编写道具功能】设定它们应该有何实际操作。 | ||
- | 想要将一个普通模型注册为**游戏道具**,需要开发者==找到`LocalMod\Store\Data\Prop`目录==,**新建或修改**有关【游戏道具】的Json配置文件,这其中可能包括`ID、模型、Flag、叠加数量、伤害、延迟时间、动画组`等数值设定,这将**直接影响到游戏道具的实际展现形式**。 | + | 想要将一个普通模型注册为**游戏道具**,需要开发者==找到`LocalMod\Store\Data\Prop`目录==,**新建或修改**有关【游戏道具】的Json配置文件,这其中可能包括==ID、模型、Flag、叠加数量、伤害、延迟时间、动画组==等数值设定,这将**直接影响到游戏道具的实际展现形式**。 |
> **注意:动物等特殊类型角色不会有任何道具拾取功能及效果,==道具功能主要用于人形角色(包括僵尸)==。** | > **注意:动物等特殊类型角色不会有任何道具拾取功能及效果,==道具功能主要用于人形角色(包括僵尸)==。** | ||
行 57: | 行 57: | ||
" | " | ||
" | " | ||
- | | + | " |
" | " | ||
" | " | ||
行 89: | 行 89: | ||
``` | ``` | ||
- | | 属性Key | + | | 属性Key |
- | | ------------------- | ------------------------------------------------------------ | ---------------------------------------- | | + | | --------------------- | ------------------------------------------------------------ | ---------------------------------------- | |
- | | ID | 道具ID | + | | `ID` | 道具ID |
- | | Model | 物品展示(拿在手中)的模型ID,基于模型管理机制 | + | | `Model` | 物品展示(拿在手中)的模型ID,基于模型管理机制 |
- | | Pos | 模型本地坐标偏移(可空,默认中心) | + | | `Pos` | 模型本地坐标偏移(可空,默认中心) |
- | | Angle | 模型本地角度偏移(可空,默认无旋转) | + | | `Angle` | 模型本地角度偏移(可空,默认无旋转) |
- | | Scale | 模型本地缩放偏移(可空,默认`1`) | + | | `Scale` | 模型本地缩放偏移(可空,默认`1`) |
- | | Color | 颜色属性(并非修改模型颜色,主要用于弹道、投掷弹道等颜色) | + | | `Color` | 颜色属性(并非修改模型颜色,主要用于弹道、投掷弹道等颜色) |
- | | Flags | **Flag特性类型,这将直接改变此物体的关键属性、效果、方式**< | + | | `FocusPoint` |
- | | Multiple | + | | `TrailColor` |
- | | Damage | + | | `Flags` | **Flag特性类型,这将直接改变此物体的关键属性、效果、方式**< |
- | | DamageRange | + | | `Multiple` | **背包系统**槽内可叠加数量(1=不可叠加,通常有特性的物品都不应该叠加)< |
- | | DamageShake | + | | `Damage` | 常规攻击力,可能根据`Flags`不同有不同的效果< |
- | | Distance | + | | `DamageRange` | 产生攻击的检测范围(范围内的实体对象都会被攻击)< |
- | | Direction | + | | `DamageShake` | 目前版本主要用于Flag相关效果< |
- | | PreloadTime | + | | `Distance` | 距离属性,目前主要用于类似枪械射程等。< |
- | | Speed | **物品每次Action时的动画速度,直接影响Action时间间隔(例如:枪械射速)**< | + | | `Direction` | 手持物品方向修正类型(详情见下方表格) |
- | | MoveSpeedMultiplier | 手持物品时影响角色的移动速度(倍数) | + | | `Enum` |
- | | Audios[] | + | | `Interval` |
- | | Animations[] | + | | `PreloadTime` | 物品刚切换时冷却CD时间,期间无法进行当前物品的使用操作 |
+ | | `Speed` | **物品每次Action时的动画速度,直接影响Action时间间隔(例如:枪械射速)**< | ||
+ | | `MoveSpeedMultiplier` | 手持物品时影响角色的移动速度(倍数) | ||
+ | | `Audios[]` | `Idle`:拿出物品时的声音< | ||
+ | | `Animations[]` | `Idle`:站立、闲置时动作< | ||
行 118: | 行 122: | ||
| 4 | 连续使用效果(Continue),否则是单次触发 | | 4 | 连续使用效果(Continue),否则是单次触发 | ||
| 8 | 散射范围,目前主要用于表示**散弹类枪械**< | | 8 | 散射范围,目前主要用于表示**散弹类枪械**< | ||
+ | | 16 | 多连发模式(Burst)< | ||
+ | | 64 | 行为时生成[Effect](scripting/ | ||
| 128 | 预制类型:枪械类 | | 128 | 预制类型:枪械类 | ||
| 256 | 预制类型:投掷类(扔出XXX、投掷光线、弓、RPG、手榴弹等) | | 256 | 预制类型:投掷类(扔出XXX、投掷光线、弓、RPG、手榴弹等) | ||
| 512 | 投掷后爆炸效果(必须同时搭配`256`使用) | | 512 | 投掷后爆炸效果(必须同时搭配`256`使用) | ||
| 1024 | 投掷后产生伤害(必须同时搭配`256`使用),伤害值与`Damage`有关 | | | 1024 | 投掷后产生伤害(必须同时搭配`256`使用),伤害值与`Damage`有关 | | ||
+ | | 2048 | 投掷后产生烟雾(必须同时搭配`256`使用) | ||
+ | | 4096 | 投掷后产生闪光(必须同时搭配`256`使用) | ||
+ | | 8192 | 投掷后产生燃烧组(必须同时搭配`256`使用) | ||
| Direction | 说明 | | Direction | 说明 | ||
行 148: | 行 157: | ||
> 当通过上述操作**成功注册\绑定**道具后,开发者可能希望在**游戏内使用新的道具**,或者给**不同的道具实现不同的功能**,请参考此部分操作。 | > 当通过上述操作**成功注册\绑定**道具后,开发者可能希望在**游戏内使用新的道具**,或者给**不同的道具实现不同的功能**,请参考此部分操作。 | ||
- | 1. 编写World脚本代码,建立相关角色,并使用`chara.SetProp()`功能【给予】角色一个道具到背包(注意道具ID要填写正确) | + | 1. 编写World脚本代码,建立相关角色,并使用`chara.SetProp()`功能【给予】角色一个道具到背包 |
2. 进入游戏内测试,如果没有报错的情况下,角色应该已经成功**手持(指定)新道具**(确保`chara.PropSlot`正确) | 2. 进入游戏内测试,如果没有报错的情况下,角色应该已经成功**手持(指定)新道具**(确保`chara.PropSlot`正确) | ||
3. 此时可能发现道具因模型尺寸、位置不同,导致拿在手里的样式等不太正确,这需要根据上方的Json示例调整几次,直到满意为止 | 3. 此时可能发现道具因模型尺寸、位置不同,导致拿在手里的样式等不太正确,这需要根据上方的Json示例调整几次,直到满意为止 | ||
- | 4. 如果希望给道具绑定一些功能(例如:手持XXX,触发`Action`行为时做些什么,或者能否触发的前提条件),参考[《OnCharacterPropActionBefore及OnCharacterPropAction》](scripting/ | + | 4. 如果希望给道具绑定一些功能(例如:手持XXX,触发`Action`行为时做些什么,或者能否触发的前提条件),参考[《OnCharacterPropAction》](scripting/ |
行 230: | 行 239: | ||
针对游戏道具扩展部分的内容,经过沙盘引擎开发组的自我评估,**几乎很多扩展功能都可以通过上述内容实现**,具体取决于开发者**如何合理控制Json以及API的行为事件交互**。 | 针对游戏道具扩展部分的内容,经过沙盘引擎开发组的自我评估,**几乎很多扩展功能都可以通过上述内容实现**,具体取决于开发者**如何合理控制Json以及API的行为事件交互**。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||