Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
phpdts
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nemo Ma
phpdts
Commits
809564fd
Commit
809564fd
authored
Mar 05, 2025
by
Nemo Ma
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update item_func.md
parent
31199357
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
195 additions
and
60 deletions
+195
-60
doc/context/item_func.md
doc/context/item_func.md
+195
-60
No files found.
doc/context/item_func.md
View file @
809564fd
...
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment