Commit 809564fd authored by Nemo Ma's avatar Nemo Ma

Update item_func.md

parent 31199357
......@@ -11,20 +11,37 @@
**功能**:处理玩家使用物品的主函数
**参数**
- `$itmn`:物品在物品栏中的位置(0-6
- `$itmn`:物品在物品栏中的位置(1-6,0为特殊情况
- `&$data`:玩家数据数组(引用传递),默认为NULL(使用全局$pdata)
**处理流程**
1. 验证物品位置是否有效
2. 检查玩家是否已死亡(死亡状态不能使用物品)
3. 根据物品类型进行不同处理:
1. 验证物品位置是否有效(1-6范围内)
2. 检查物品是否存在(数量>0)
3. 检查玩家是否已死亡(死亡状态不能使用物品)
4. 根据物品类型进行不同处理:
- 武器(W开头):装备到武器栏
- 防具(D开头):装备到相应防具栏
- 防具(D开头):装备到相应防具栏(DB身体、DH头部、DA手臂、DF脚部)
- 饰品(A开头):装备到饰品栏
- 特殊物品(ss开头):装备到饰品栏
- 消耗品(各种类型):应用物品效果
4. 处理特殊物品效果(如回复、状态改变、技能获取等)
5. 更新物品使用后的状态(数量减少或移除)
6. 记录物品使用的日志
5. 处理特殊物品效果(如回复、状态改变、技能获取等)
6. 更新物品使用后的状态(数量减少或移除)
7. 记录物品使用的日志
**特殊处理**
- 诅咒装备(带有V标记)不能主动卸下
- 特定社团有特殊物品使用效果
- 某些物品有使用条件限制(如等级、状态等)
- 物品可能有附加参数($itmpara)影响使用效果
**主要物品类型处理**
1. **武器装备**:替换当前武器,更新攻击属性
2. **防具装备**:替换对应部位防具,更新防御属性
3. **饰品装备**:替换当前饰品,应用特殊效果
4. **补给品**:恢复HP、SP、MP等属性
5. **状态药剂**:添加或移除状态效果
6. **技能书**:学习或获得技能
7. **特殊道具**:触发特殊游戏效果
**返回值**:无,直接修改传入的数据数组和全局变量
......@@ -33,61 +50,167 @@
**功能**:处理八卦物品的旋转(特殊物品系统)
**参数**
- `&$theitem`:物品数据数组(引用传递)
- `$rotpos`旋转位置
- `$showlog`:是否显示日志,默认为0
- `&$theitem`:物品数据数组(引用传递),包含itm、itmk、itme、itms、itmsk等属性
- `$rotpos`要旋转的面的位置(0-7)
- `$showlog`:是否显示旋转日志,默认为0(不显示)
**处理流程**
1. 解析八卦物品的当前状态
2. 根据旋转位置计算新的状态
3. 更新物品的属性和效果
4. 如果需要,显示旋转日志
1. 解析八卦物品的当前状态(从itmsk中提取)
- 前8位表示八个面的序列
- 后8位表示八个面的颜色
2. 如果itmsk长度不是16,则随机初始化序列和颜色
3. 根据旋转位置计算新的状态:
- 改变选中面的颜色(+1并对8取模)
- 改变相邻两个面的颜色(+1并对8取模)
4. 更新物品的itmsk属性,保存新的状态
5. 如果需要显示日志,输出八个面的颜色信息
6. 检查结果:如果所有面的颜色相同,物品变形为特殊道具
**特殊效果**
- 当八个面的颜色全部相同时,物品会变成"★棱镜八面体模样的彩色糖果★",具有特殊属性
**返回值**:无,直接修改传入的物品数据数组
## 物品类型处理
文件中包含了对各种物品类型的处理逻辑:
1. **武器(W开头)**
- 不同武器类型的特殊效果
- 武器耐久度管理
- 武器技能效果
2. **防具(D开头)**
- 身体防具(DB)
- 头部防具(DH)
- 手臂防具(DA)
- 脚部防具(DF)
- 防具耐久度管理
3. **饰品(A开头)**
- 各种特殊效果饰品
- 永久效果饰品
- 限时效果饰品
4. **消耗品**
- 补给品(补充HP、SP等)
- 状态药剂(改变状态)
- 技能书(学习技能)
- 合成材料
- 任务物品
5. **特殊物品**
- 八卦物品系统
- 诅咒物品(不能卸下)
- 限时物品
- 唯一物品
## 物品效果系统
文件实现了复杂的物品效果系统,包括:
1. **属性修改**:修改玩家的各种属性(HP、SP、攻击力、防御力等)
2. **状态效果**:添加或移除各种状态效果(中毒、眩晕、强化等)
3. **技能获取**:通过物品学习或获得技能
4. **特殊效果**:触发各种特殊游戏效果(如传送、召唤、变身等)
5. **组合效果**:多种效果的组合应用
## 物品类型处理详解
### 武器(W开头)
**武器子类型**
- `WG`:枪械类武器
- `WJ`:重型武器
- `WK`:刀剑类武器
- `WC`:投掷类武器
- `WD`:爆炸类武器
- `WF`:远程类武器
**武器处理特点**
1. 更新玩家的攻击方式和攻击属性
2. 处理武器特殊效果(如附加状态、元素伤害等)
3. 管理武器耐久度和使用次数
4. 应用武器技能效果和加成
### 防具(D开头)
**防具子类型**
- `DB`:身体防具
- `DH`:头部防具
- `DA`:手臂防具
- `DF`:脚部防具
**防具处理特点**
1. 更新玩家的防御属性和防御值
2. 处理防具特殊效果(如减伤、状态抵抗等)
3. 管理防具耐久度
4. 应用防具套装效果
### 饰品(A开头)
**饰品处理特点**
1. 提供各种特殊效果和属性加成
2. 可能有永久效果或限时效果
3. 某些饰品有特殊触发条件
4. 可能影响战斗、移动或其他游戏机制
### 消耗品
**消耗品子类型**
- `HH`:生命恢复类
- `HS`:体力恢复类
- `HM`:精神恢复类
- `PH`/`PS`/`PM`:状态药剂类
- `M`:合成材料类
- `Y`:技能书类
- `Z`:特殊道具类
**消耗品处理特点**
1. 使用后通常会减少数量或消失
2. 效果立即生效,不需要装备
3. 可能有使用条件限制
4. 某些消耗品有复杂的效果组合
## 物品效果系统详解
### 属性修改效果
1. **基础属性修改**
- HP(生命值)增减
- SP(体力值)增减
- MP/SS(精神值)增减
- 攻击力、防御力增减
- 武器熟练度增减
2. **战斗属性修改**
- 命中率、闪避率修改
- 暴击率、暴击伤害修改
- 攻击范围、攻击距离修改
- 伤害加成、减伤效果
### 状态效果
1. **正面状态**
- 强化(增加攻击力)
- 防御(增加防御力)
- 迅捷(增加行动速度)
- 隐身(降低被发现概率)
2. **负面状态**
- 中毒(持续掉血)
- 眩晕(无法行动)
- 混乱(行动不受控制)
- 虚弱(降低属性)
3. **特殊状态**
- 燃烧(持续伤害,可能蔓延)
- 冻结(行动受限,防御提高)
- 麻痹(攻击和移动速度降低)
- 诅咒(各种负面效果)
### 技能获取与触发
1. **技能书使用**
- 永久学习技能
- 获得临时技能
- 升级已有技能
2. **技能触发条件**
- 使用特定物品时触发
- 装备特定物品时触发
- 满足特定条件时触发
### 特殊游戏效果
1. **环境交互**
- 改变天气
- 改变地形
- 触发特殊事件
2. **玩家交互**
- 传送到特定位置
- 召唤NPC或怪物
- 变身或改变外观
3. **游戏机制交互**
- 影响遇敌率
- 改变物品掉落率
- 修改游戏规则
## 物品参数系统($itmpara)
2024年7月19日添加的物品参数系统允许物品拥有更复杂的属性和效果:
1. **参数类型**
- `lore`:物品的额外提示信息
- `AddDamagePercentage`/`AddDamageRaw`:增加伤害百分比/原始伤害
- `DecreaseDamagePercentage`/`DecreaseDamageRaw`:减少伤害百分比/原始伤害
- `AddPlayerXXInCombat`/`AddPlayerXXInSearchMove`:在战斗/搜索移动中增加玩家属性
- `IsPlatformItem`:标记物品是否为"NPC平台"类型
- `IsQuestItem`/`QuestOwnerID`:标记物品是否为任务物品及其所有者
2. **参数处理**
- 使用`get_itmpara()`函数将JSON字符串转换为数组
- 使用`get_single_itmpara()`获取特定参数值
- 使用`set_itmpara()`设置参数值
- 使用`del_single_itmpara()`删除特定参数
## 主要特点
......@@ -96,12 +219,24 @@
3. **装备系统**:完整的装备穿戴和管理系统
4. **特殊物品机制**:支持诅咒物品、限时物品、唯一物品等特殊机制
5. **物品参数系统**:支持物品附加参数,增强物品功能的扩展性
6. **社团特性集成**:不同社团使用相同物品可能有不同效果
7. **八卦物品系统**:独特的物品变形机制,增加游戏趣味性
## 注意事项
1. 文件非常庞大,包含大量条件判断和特殊处理
1. 文件非常庞大(4496行),包含大量条件判断和特殊处理
2. 使用了大量全局变量,增加了代码复杂度和维护难度
3. 物品效果处理逻辑复杂,需要小心修改以避免平衡性问题
4. 部分物品有特殊的使用限制和条件
5. 文件中包含对八卦物品系统的特殊处理,这是游戏的特色机制之一
6. 2024年7月19日的注释表明最近添加了物品参数系统($itmpara)
7. 与其他系统(如战斗系统、状态系统、技能系统)紧密集成,修改时需考虑连锁效应
## 与其他文件的关系
1. **item2.func.php**:包含特殊物品使用函数,是item.func.php的扩展
2. **itemmain.func.php**:包含物品获取、丢弃、合成等基础功能
3. **itembag.func.php**:处理物品背包和物品管理
4. **itemmix.func.php**:处理物品合成系统
5. **revattr.calc.php**:处理物品属性计算
6. **global.func.php**:提供物品参数处理函数(如get_itmpara)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment