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
ffa2b33d
Commit
ffa2b33d
authored
Apr 30, 2025
by
Nemo Ma
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cleanup2
parent
894a4630
Changes
32
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
0 additions
and
117916 deletions
+0
-117916
doc/context/achievement_func.md
doc/context/achievement_func.md
+0
-142
doc/context/battle_func.md
doc/context/battle_func.md
+0
-73
doc/context/clubskills_func.md
doc/context/clubskills_func.md
+0
-109
doc/context/combat_func.md
doc/context/combat_func.md
+0
-115
doc/context/common_inc.md
doc/context/common_inc.md
+0
-66
doc/context/db_mysqli_class.md
doc/context/db_mysqli_class.md
+0
-217
doc/context/elementmix_func.md
doc/context/elementmix_func.md
+0
-125
doc/context/game_analysis_summary.md
doc/context/game_analysis_summary.md
+0
-107
doc/context/game_func.md
doc/context/game_func.md
+0
-264
doc/context/gameencrypt.md
doc/context/gameencrypt.md
+0
-96
doc/context/global_func.md
doc/context/global_func.md
+0
-195
doc/context/include_analysis_logs_1.md
doc/context/include_analysis_logs_1.md
+0
-123
doc/context/include_overview.md
doc/context/include_overview.md
+0
-57
doc/context/init_func.md
doc/context/init_func.md
+0
-118
doc/context/item_func.md
doc/context/item_func.md
+0
-242
doc/context/itembag_func.md
doc/context/itembag_func.md
+0
-253
doc/context/itemmain_func.md
doc/context/itemmain_func.md
+0
-261
doc/context/itemmix_func.md
doc/context/itemmix_func.md
+0
-121
doc/context/messages_func.md
doc/context/messages_func.md
+0
-226
doc/context/news_func.md
doc/context/news_func.md
+0
-101
doc/context/resources_func.md
doc/context/resources_func.md
+0
-161
doc/context/revattr_func.md
doc/context/revattr_func.md
+0
-132
doc/context/revbattle_func.md
doc/context/revbattle_func.md
+0
-145
doc/context/revcombat_func.md
doc/context/revcombat_func.md
+0
-135
doc/context/roommng_func.md
doc/context/roommng_func.md
+0
-245
doc/context/special_func.md
doc/context/special_func.md
+0
-236
doc/context/state_func.md
doc/context/state_func.md
+0
-262
doc/context/system_func.md
doc/context/system_func.md
+0
-174
doc/context/template_func.md
doc/context/template_func.md
+0
-193
doc/context/titles_func.md
doc/context/titles_func.md
+0
-133
doc/context/user_func.md
doc/context/user_func.md
+0
-130
doc/repomix-output.txt
doc/repomix-output.txt
+0
-112959
No files found.
doc/context/achievement_func.md
deleted
100644 → 0
View file @
894a4630
# achievement.func.php 文件分析
## 文件概述
`achievement.func.php`
是游戏系统中处理成就系统的核心函数库。该文件包含了成就的初始化、检查、更新和完成等功能,是游戏成就系统的完整实现。文件体积较大(约3213行),包含了处理各种类型成就的详细逻辑。
## 主要函数列表
### init_achtabledata($ach)
**功能**
:初始化单个成就页面
**参数**
:
-
`$ach`
:成就ID
**处理流程**
:
1.
检查是否存在对应的页面模板
2.
如果存在,返回模板名称
3.
如果不存在,返回成就ID(用于动态生成模板)
**返回值**
:成就页面模板名称或成就ID
### print_achievement_rev($ach)
**功能**
:解析成就数据
**参数**
:
-
`$ach`
:JSON格式的成就数据
**处理流程**
:
1.
将JSON格式的成就数据解码为数组
2.
如果数据为空,返回空数组
**返回值**
:解析后的成就数据数组
### check_achievement_rev($which, $who)
**功能**
:检查指定玩家的指定成就状态
**参数**
:
-
`$which`
:成就ID
-
`$who`
:玩家名称
**处理流程**
:
1.
从数据库获取玩家的成就记录
2.
解析成就数据
3.
检查指定成就的完成状态和等级
4.
返回成就等级值
**返回值**
:成就等级值(0表示未完成,999表示完全完成)
### update_achievement_rev($which, $who, $value)
**功能**
:更新指定玩家的指定成就进度
**参数**
:
-
`$which`
:成就ID
-
`$who`
:玩家名称
-
`$value`
:新的成就进度值
**处理流程**
:
1.
从数据库获取玩家的成就记录
2.
更新指定成就的进度值
3.
将更新后的数据保存回数据库
**返回值**
:无
### done_achievement_rev($which, $ch, $who)
**功能**
:标记指定成就为已完成
**参数**
:
-
`$which`
:成就ID
-
`$ch`
:成就完成的附加信息
-
`$who`
:玩家名称
**处理流程**
:
1.
从数据库获取玩家的成就记录
2.
标记指定成就为已完成状态
3.
记录完成时间和附加信息
4.
将更新后的数据保存回数据库
**返回值**
:无
### reset_achievement_rev($which, $who)
**功能**
:重置指定玩家的指定成就
**参数**
:
-
`$which`
:成就ID
-
`$who`
:玩家名称
**处理流程**
:
1.
从数据库获取玩家的成就记录
2.
删除指定成就的记录
3.
将更新后的数据保存回数据库
**返回值**
:无
### check_daily_achievement($who, $only_id=0)
**功能**
:检查玩家的每日成就
**参数**
:
-
`$who`
:玩家名称
-
`$only_id`
:是否只返回成就ID,默认为0
**处理流程**
:
1.
从数据库获取玩家的每日成就记录
2.
检查每日成就是否需要刷新(基于时间)
3.
返回刷新时间和当前每日成就ID
**返回值**
:数组,包含刷新时间和每日成就ID
## 成就检查函数
文件中包含了大量针对不同类型成就的检查函数:
1.
**check_mixitem_achievement_rev**
:检查物品合成相关成就
2.
**check_end_achievement_rev**
:检查游戏结束相关成就
3.
**check_battle_achievement_rev**
:检查战斗相关成就
4.
**check_item_achievement_rev**
:检查物品相关成就
5.
**check_misc_achievement_rev**
:检查杂项成就
这些函数包含了详细的条件判断和进度更新逻辑,用于处理游戏中各种情况下的成就触发和更新。
## 成就系统特点
1.
**多层级成就**
:成就系统支持多个等级的成就进度
2.
**每日成就**
:支持每日刷新的成就任务
3.
**成就分类**
:成就按照不同类型进行分类(战斗、物品、结局等)
4.
**成就记录**
:记录成就完成的时间和方式
5.
**成就重置**
:支持重置特定成就的进度
## 注意事项
1.
文件使用JSON格式存储成就数据,需要注意JSON编码和解码的正确性
2.
成就系统与游戏的多个子系统(战斗、物品、合成等)紧密集成
3.
每日成就系统包含时间检查和自动刷新机制
4.
文件中包含大量条件判断,用于处理各种成就触发条件
5.
部分成就检查函数非常庞大,包含了大量特定成就的处理逻辑
6.
文件同时包含新版(带_rev后缀)和旧版成就系统函数,新版函数是主要使用的版本
\ No newline at end of file
doc/context/battle_func.md
deleted
100644 → 0
View file @
894a4630
# battle.func.php 文件分析
## 文件概述
`battle.func.php`
是游戏系统中处理战斗遭遇和物品交互的函数库。该文件主要包含了玩家遇到队友、发现尸体以及物品赠送等功能的实现,是游戏战斗系统的基础组件之一。
## 函数列表
### findteam(&$w_pdata)
**功能**
:处理玩家遇到队友的情况
**参数**
:
-
`&$w_pdata`
:队友的玩家数据(引用传递)
**处理流程**
:
1.
检查游戏是否处于连斗阶段(
`$gamestate>=40`
),如果是则取消所有队伍
2.
设置战斗标题为"发现队友"
3.
初始化战斗界面(调用
`init_battle_rev`
函数)
4.
加载队友遭遇的模板页面
5.
显示遇到队友的消息
**返回值**
:无,直接修改全局变量
### findcorpse(&$w_pdata)
**功能**
:处理玩家发现尸体的情况
**参数**
:
-
`&$w_pdata`
:尸体的玩家数据(引用传递)
**处理流程**
:
1.
设置战斗标题为"发现尸体"
2.
初始化战斗界面(调用
`init_battle_rev`
函数)
3.
显示发现尸体的消息
4.
初始化尸体上物品的tooltip信息
5.
检查是否允许摧毁尸体
6.
加载尸体遭遇的模板页面
**返回值**
:无,直接修改全局变量
### senditem()
**功能**
:处理玩家赠送物品的功能
**参数**
:无
**处理流程**
:
1.
检查是否选择了有效的物品
2.
检查物品是否可以赠送(某些物品不允许赠送)
3.
检查接收者是否存在且状态正常
4.
检查接收者的物品栏是否有空位
5.
将物品从赠送者移除并添加到接收者的物品栏
6.
记录赠送物品的事件
7.
更新双方的数据库记录
**返回值**
:无,直接修改全局变量
## 主要特点
1.
**队伍交互**
:提供玩家与队友交互的功能
2.
**尸体处理**
:提供玩家与尸体交互的功能,包括获取物品和摧毁尸体
3.
**物品赠送**
:提供玩家之间赠送物品的功能
4.
**模板集成**
:使用模板系统生成交互界面
5.
**数据库操作**
:直接操作数据库更新玩家数据
## 注意事项
1.
函数大量使用全局变量,这可能导致代码维护困难
2.
函数通过引用传递参数,直接修改传入的数据
3.
物品赠送功能包含多种安全检查,防止游戏漏洞
4.
尸体处理功能考虑了不同类型尸体的特殊处理
5.
连斗阶段会取消所有队伍,这是游戏机制的一部分
\ No newline at end of file
doc/context/clubskills_func.md
deleted
100644 → 0
View file @
894a4630
# clubskills.func.php 文件分析
## 文件概述
`clubskills.func.php`
是游戏系统中处理俱乐部技能的核心函数库。该文件包含了俱乐部技能的定义、升级、效果计算等功能,是游戏技能系统的重要组成部分。文件体积较大(约1381行),包含了大量与俱乐部技能相关的函数。
## 主要函数列表
### getskills(&$arr)
**功能**
:初始化俱乐部技能数据
**参数**
:
-
`&$arr`
:技能数据数组(引用传递)
**处理流程**
:
1.
定义各个俱乐部称号的技能数据
2.
包括技能等级、消耗、效果等详细信息
3.
将技能数据存储到传入的数组中
**返回值**
:无,直接修改传入的数组
### getskills2(&$arr)
**功能**
:初始化第二套俱乐部技能数据
**参数**
:
-
`&$arr`
:技能数据数组(引用传递)
**处理流程**
:
1.
定义另一套俱乐部称号的技能数据
2.
包括技能等级、消耗、效果等详细信息
3.
将技能数据存储到传入的数组中
**返回值**
:无,直接修改传入的数组
### upgradeclubskills($cmd)
**功能**
:处理俱乐部技能升级
**参数**
:
-
`$cmd`
:升级命令
**处理流程**
:
1.
解析升级命令,确定要升级的技能
2.
检查技能点是否足够
3.
检查技能等级是否已达上限
4.
执行技能升级,扣除技能点
5.
更新玩家数据
**返回值**
:无,直接修改全局变量
### rev_get_clubskill_bonus($aclub, $askl, $pa, $bclub, $bskl, $pd, &$att, &$def)
**功能**
:计算俱乐部技能对战斗属性的加成
**参数**
:
-
`$aclub`
:攻击者的俱乐部
-
`$askl`
:攻击者的技能数据
-
`$pa`
:攻击者的玩家数据
-
`$bclub`
:防御者的俱乐部
-
`$bskl`
:防御者的技能数据
-
`$pd`
:防御者的玩家数据
-
`&$att`
:攻击力(引用传递)
-
`&$def`
:防御力(引用传递)
**处理流程**
:
1.
根据俱乐部和技能数据计算攻击力加成
2.
根据俱乐部和技能数据计算防御力加成
3.
应用各种特殊技能效果
**返回值**
:无,直接修改传入的攻击力和防御力变量
## 俱乐部技能系统
文件实现了完整的俱乐部技能系统,包括:
1.
**技能定义**
:定义了各个俱乐部的技能数据和效果
2.
**技能升级**
:实现了技能升级和技能点消耗的机制
3.
**技能效果**
:实现了各种技能效果的计算和应用
4.
**战斗加成**
:计算技能对战斗属性的各种加成
5.
**特殊效果**
:实现了各种特殊技能效果
## 技能效果类型
文件中定义了多种技能效果类型:
1.
**命中率加成**
:提高攻击命中率
2.
**暴击率加成**
:提高暴击几率
3.
**伤害加成**
:提高造成的伤害
4.
**防御加成**
:提高防御效果
5.
**反击加成**
:提高反击几率和伤害
6.
**特殊效果**
:各种特殊技能效果(如隐身、逃跑等)
## 主要特点
1.
**完整的技能系统**
:实现了从技能定义到效果应用的完整流程
2.
**多样的技能效果**
:支持多种类型的技能效果和加成
3.
**平衡性设计**
:技能效果随等级提升,但消耗也相应增加
4.
**俱乐部特色**
:不同俱乐部有不同的技能特点和优势
5.
**战斗集成**
:与战斗系统紧密集成,影响战斗结果
## 注意事项
1.
技能数据结构复杂,修改时需要小心
2.
技能效果计算涉及多种公式和条件判断
3.
新版(带_rev后缀)和旧版函数并存,新版函数是主要使用的版本
4.
技能系统与战斗系统紧密相关,修改可能影响游戏平衡
5.
部分技能有特殊的使用条件和限制
\ No newline at end of file
doc/context/combat_func.md
deleted
100644 → 0
View file @
894a4630
# combat.func.php 文件分析
## 文件概述
`combat.func.php`
是游戏系统中处理战斗核心逻辑的函数库。该文件包含了攻击、防御、伤害计算、状态效果等战斗系统的核心功能,是游戏战斗机制的主要实现。文件体积较大(约2361行),包含了大量与战斗相关的函数和计算逻辑。
## 主要函数列表
### combat($active = 1, $wep_kind = '')
**功能**
:处理战斗的主函数,协调整个战斗流程
**参数**
:
-
`$active`
:是否为主动攻击,默认为1(主动)
-
`$wep_kind`
:武器类型,默认为空(自动判断)
**处理流程**
:
1.
设置战斗标题为"战斗发生"
2.
确定使用的武器类型
3.
加载俱乐部技能函数库
4.
检查是否选择逃跑
5.
验证敌人是否存在、是否在同一地点、是否存活
6.
处理战斗前的喊话消息
7.
初始化战斗界面
8.
执行攻击和防御计算
9.
处理战斗结果和经验值变化
10.
更新数据库中的玩家数据
**返回值**
:无,直接修改全局变量
### attack($wep_kind = 'N', $active = 0)
**功能**
:计算攻击伤害和效果
**参数**
:
-
`$wep_kind`
:武器类型,默认为'N'(空手)
-
`$active`
:是否为主动攻击,默认为0(被动)
**处理流程**
:
1.
根据武器类型和技能确定攻击方式
2.
计算命中率和命中次数
3.
计算基础伤害值
4.
应用各种伤害修正(技能、状态、装备等)
5.
计算暴击和特殊效果
6.
处理武器耐久度减少
7.
应用战斗后的状态效果
**返回值**
:总伤害值
### defend($w_wep_kind = 'N', $active = 0)
**功能**
:计算防御效果和反击伤害
**参数**
:
-
`$w_wep_kind`
:对方武器类型,默认为'N'(空手)
-
`$active`
:是否为主动防御,默认为0(被动)
**处理流程**
:
1.
根据防御方式和技能确定防御效果
2.
计算伤害减免
3.
处理装甲耐久度减少
4.
计算反击伤害
5.
应用各种状态效果
6.
处理生命值和怒气值变化
**返回值**
:无,直接修改全局变量
### get_original_dmg($w1, $w2, $att, $def, $ws, $wp_kind)
**功能**
:计算原始伤害值
**参数**
:
-
`$w1`
:武器第一属性
-
`$w2`
:武器第二属性
-
`$att`
:攻击力
-
`$def`
:防御力
-
`$ws`
:武器强度
-
`$wp_kind`
:武器类型
**处理流程**
:
1.
根据武器类型应用不同的伤害计算公式
2.
考虑攻击力和防御力的差值
3.
应用武器强度修正
**返回值**
:计算出的原始伤害值
## 辅助函数
文件中还包含大量辅助函数,用于处理战斗中的各种细节:
1.
**checkdmg/checkdef/checkarb**
:检查伤害、防御和护甲效果
2.
**getatkkey/getdefkey**
:获取攻击和防御的关键参数
3.
**get_hit_time**
:计算命中次数
4.
**get_ex_dmg**
:计算额外伤害
5.
**get_inf**
:获取状态效果
6.
**exprgup**
:计算经验和怒气值变化
7.
**addnoise**
:添加战斗噪音(影响周围玩家)
8.
**npc_changewep/npc_chat**
:处理NPC的武器切换和对话
## 主要特点
1.
**复杂的伤害计算**
:考虑了武器类型、属性、技能、状态等多种因素
2.
**多种武器系统**
:支持不同类型武器的特殊效果和计算方式
3.
**状态效果系统**
:实现了各种战斗状态的应用和变化
4.
**技能联动**
:与游戏中的技能系统紧密结合
5.
**NPC行为**
:包含NPC战斗行为的特殊处理
6.
**噪音系统**
:战斗会产生噪音,影响周围玩家
## 注意事项
1.
文件使用了大量全局变量,增加了代码复杂度和维护难度
2.
伤害计算逻辑复杂,涉及多种公式和条件判断
3.
函数之间存在较多依赖关系,需要小心修改
4.
代码中包含大量游戏平衡性相关的常数和公式
5.
部分代码包含注释掉的旧版本实现,可能是为了调试或保留历史记录
\ No newline at end of file
doc/context/common_inc.md
deleted
100644 → 0
View file @
894a4630
# common.inc.php 文件分析
## 文件概述
`common.inc.php`
是游戏系统的核心包含文件,负责初始化游戏环境、加载必要的库文件、建立数据库连接,以及处理游戏状态的更新。该文件在每次页面请求时都会被加载,是整个游戏系统的入口点。
## 主要功能
1.
**环境初始化**
:设置游戏常量、错误处理、时区等
2.
**数据过滤**
:对输入数据进行安全过滤
3.
**数据库连接**
:建立与数据库的连接
4.
**配置加载**
:加载游戏配置文件
5.
**游戏状态管理**
:检查和更新游戏状态(准备、开始、结束等)
6.
**房间管理**
:处理游戏房间相关逻辑
7.
**禁区管理**
:处理游戏中禁区的增加和警告
8.
**反挂机机制**
:处理游戏中的反挂机逻辑
## 关键常量定义
-
`IN_GAME`
:标识在游戏环境中
-
`GAME_ROOT`
:游戏根目录路径
-
`GAMENAME`
:游戏名称
## 主要流程
1.
定义常量和设置环境
2.
加载全局函数库和系统函数库
3.
设置错误处理和数据过滤
4.
加载配置文件
5.
连接数据库
6.
加载游戏数据和初始化函数
7.
处理游戏状态更新
-
游戏准备状态检查
-
游戏开始状态检查
-
禁区增加和警告检查
-
游戏结束条件检查
-
连斗条件检查
-
反挂机检查
8.
保存游戏信息
9.
检查新消息
## 关键变量
-
`$now`
:当前时间(考虑时区偏移)
-
`$db`
:数据库连接对象
-
`$gamestate`
:游戏当前状态
-
`$groomid`
:当前房间ID
-
`$tablepre`
:数据库表前缀
-
`$roomlist`
:房间列表
-
`$udata`
:当前用户数据
## 游戏状态值
-
`0`
:游戏未开始
-
`10`
:游戏准备中
-
`20`
:游戏进行中
-
`30`
:游戏停止激活
-
`40`
:游戏进入连斗状态
## 注意事项
1.
该文件是游戏系统的核心,几乎所有页面都会包含它
2.
文件中包含游戏状态的自动更新逻辑,确保游戏按照预定规则进行
3.
文件中的时间计算考虑了时区偏移
4.
文件中包含对小房间和大房间不同的处理逻辑
5.
文件使用了文件锁(
`process.lock`
)来防止并发问题
\ No newline at end of file
doc/context/db_mysqli_class.md
deleted
100644 → 0
View file @
894a4630
# db_mysqli.class.php 类分析
`db_mysqli.class.php`
是基于MySQLi的数据库操作类,提供了数据库连接和操作的核心功能。
## 类结构
### dbstuff 类
这是主要的数据库操作类,基于MySQLi扩展实现。
#### 属性
-
**$querynum**
- 查询次数计数器
-
**$link**
- MySQLi连接对象
-
**$charset**
- 字符集
-
**$version**
- 数据库版本
-
**$querylog**
- 查询日志数组
-
**$debug**
- 调试模式开关
-
**$safecheck**
- 安全检查开关
#### 方法
##### 连接和初始化
###### `connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset = '', $pconnect = 0, $halt = TRUE)`
-
**功能**
: 连接数据库
-
**参数**
:
-
`$dbhost`
: 数据库主机
-
`$dbuser`
: 数据库用户名
-
`$dbpw`
: 数据库密码
-
`$dbname`
: 数据库名
-
`$dbcharset`
: 字符集
-
`$pconnect`
: 是否持久连接
-
`$halt`
: 错误时是否终止
-
**返回值**
: 连接对象
###### `select_db($dbname)`
-
**功能**
: 选择数据库
-
**参数**
:
`$dbname`
: 数据库名
-
**返回值**
: 布尔值,表示操作是否成功
###### `set_charset($charset)`
-
**功能**
: 设置字符集
-
**参数**
:
`$charset`
: 字符集
-
**返回值**
: 布尔值,表示操作是否成功
##### 查询操作
###### `query($sql, $type = '', $cachetime = FALSE)`
-
**功能**
: 执行SQL查询
-
**参数**
:
-
`$sql`
: SQL语句
-
`$type`
: 查询类型
-
`$cachetime`
: 缓存时间
-
**返回值**
: 查询结果
###### `fetch_array($query, $result_type = MYSQLI_ASSOC)`
-
**功能**
: 获取结果行为数组
-
**参数**
:
-
`$query`
: 查询结果
-
`$result_type`
: 结果类型
-
**返回值**
: 结果数组
###### `fetch_first($sql)`
-
**功能**
: 获取查询的第一行结果
-
**参数**
:
`$sql`
: SQL语句
-
**返回值**
: 结果数组
###### `fetch_all($sql, $id = '')`
-
**功能**
: 获取所有查询结果
-
**参数**
:
-
`$sql`
: SQL语句
-
`$id`
: 索引字段
-
**返回值**
: 结果数组
###### `result($query, $row = 0)`
-
**功能**
: 获取特定行的第一个字段值
-
**参数**
:
-
`$query`
: 查询结果
-
`$row`
: 行号
-
**返回值**
: 字段值
###### `result_first($sql)`
-
**功能**
: 获取查询结果的第一行第一个字段值
-
**参数**
:
`$sql`
: SQL语句
-
**返回值**
: 字段值
###### `num_rows($query)`
-
**功能**
: 获取结果行数
-
**参数**
:
`$query`
: 查询结果
-
**返回值**
: 行数
###### `num_fields($query)`
-
**功能**
: 获取结果字段数
-
**参数**
:
`$query`
: 查询结果
-
**返回值**
: 字段数
###### `affected_rows()`
-
**功能**
: 获取受影响的行数
-
**参数**
: 无
-
**返回值**
: 受影响的行数
###### `insert_id()`
-
**功能**
: 获取最后插入的ID
-
**参数**
: 无
-
**返回值**
: 插入ID
##### 数据操作
###### `insert($table, $data, $return_insert_id = false, $replace = false, $silent = false)`
-
**功能**
: 插入数据
-
**参数**
:
-
`$table`
: 表名
-
`$data`
: 数据数组
-
`$return_insert_id`
: 是否返回插入ID
-
`$replace`
: 是否使用REPLACE
-
`$silent`
: 是否静默执行
-
**返回值**
: 插入结果
###### `update($table, $data, $condition, $unbuffered = false, $low_priority = false)`
-
**功能**
: 更新数据
-
**参数**
:
-
`$table`
: 表名
-
`$data`
: 数据数组
-
`$condition`
: 条件
-
`$unbuffered`
: 是否非缓冲
-
`$low_priority`
: 是否低优先级
-
**返回值**
: 更新结果
###### `delete($table, $condition, $limit = 0, $unbuffered = true)`
-
**功能**
: 删除数据
-
**参数**
:
-
`$table`
: 表名
-
`$condition`
: 条件
-
`$limit`
: 限制数量
-
`$unbuffered`
: 是否非缓冲
-
**返回值**
: 删除结果
##### 事务处理
###### `begin_transaction()`
-
**功能**
: 开始事务
-
**参数**
: 无
-
**返回值**
: 布尔值,表示操作是否成功
###### `commit()`
-
**功能**
: 提交事务
-
**参数**
: 无
-
**返回值**
: 布尔值,表示操作是否成功
###### `rollback()`
-
**功能**
: 回滚事务
-
**参数**
: 无
-
**返回值**
: 布尔值,表示操作是否成功
##### 辅助功能
###### `free_result($query)`
-
**功能**
: 释放结果集
-
**参数**
:
`$query`
: 查询结果
-
**返回值**
: 布尔值,表示操作是否成功
###### `escape_string($str)`
-
**功能**
: 转义字符串
-
**参数**
:
`$str`
: 需要转义的字符串
-
**返回值**
: 转义后的字符串
###### `error()`
-
**功能**
: 获取最后一个错误
-
**参数**
: 无
-
**返回值**
: 错误信息
###### `errno()`
-
**功能**
: 获取错误代码
-
**参数**
: 无
-
**返回值**
: 错误代码
###### `halt($message = '', $sql = '')`
-
**功能**
: 处理错误并终止
-
**参数**
:
-
`$message`
: 错误消息
-
`$sql`
: SQL语句
-
**返回值**
: 无
###### `close()`
-
**功能**
: 关闭数据库连接
-
**参数**
: 无
-
**返回值**
: 布尔值,表示操作是否成功
##### 调试功能
###### `debug_info()`
-
**功能**
: 获取调试信息
-
**参数**
: 无
-
**返回值**
: 调试信息数组
###### `get_version()`
-
**功能**
: 获取数据库版本
-
**参数**
: 无
-
**返回值**
: 版本信息
###### `get_table_status($table)`
-
**功能**
: 获取表状态
-
**参数**
:
`$table`
: 表名
-
**返回值**
: 表状态信息
###### `get_tables_list($database = '')`
-
**功能**
: 获取数据库中的表列表
-
**参数**
:
`$database`
: 数据库名
-
**返回值**
: 表列表数组
###### `get_table_fields($table)`
-
**功能**
: 获取表字段信息
-
**参数**
:
`$table`
: 表名
-
**返回值**
: 字段信息数组
这个类提供了完整的数据库操作功能,包括连接管理、查询执行、数据操作、事务处理和调试功能,是整个游戏系统数据库操作的核心组件。
\ No newline at end of file
doc/context/elementmix_func.md
deleted
100644 → 0
View file @
894a4630
# elementmix.func.php 文件分析
## 文件概述
`elementmix.func.php`
是游戏系统中处理元素合成的核心函数库。该文件包含了元素特征显示、元素配方管理、尸体分解、物品分解和元素合成等功能,是游戏中元素系统的完整实现。文件与
`elementmix.calc.php`
配合使用,提供了完整的元素合成机制。
## 主要函数列表
### emix_init_elements_tags($eid, $etype, $ekey, $data)
**功能**
:显示已了解的元素特征
**参数**
:
-
`$eid`
:元素ID
-
`$etype`
:元素类型(dom主元素或次元素)
-
`$ekey`
:元素键值
-
`$data`
:玩家数据
**处理流程**
:
1.
检查玩家是否已了解该元素特征
2.
如果已了解,显示特征描述
3.
如果未了解,显示问号
**返回值**
:元素特征的HTML标签
### emix_init_elements_info($data)
**功能**
:显示已了解的元素配方
**参数**
:
-
`$data`
:玩家数据
**处理流程**
:
1.
加载元素配方数据
2.
检查玩家已了解的配方
3.
生成配方显示HTML
**返回值**
:元素配方的HTML内容
### split_corpse_to_elements(&$edata, $emode)
**功能**
:将尸体分解为元素
**参数**
:
-
`&$edata`
:尸体数据(引用传递)
-
`$emode`
:分解模式
**处理流程**
:
1.
检查尸体类型和状态
2.
根据尸体特性确定可获得的元素
3.
生成分解结果
4.
更新玩家的元素数据
**返回值**
:无,直接修改传入的数据
### split_item_to_elements($iid=NULL)
**功能**
:将物品分解为元素
**参数**
:
-
`$iid`
:物品ID,默认为NULL(使用当前选中物品)
**处理流程**
:
1.
检查物品是否存在
2.
确定物品类型和特性
3.
根据物品特性确定可获得的元素
4.
生成分解结果
5.
移除原物品,添加获得的元素
**返回值**
:无,直接修改全局变量
### element_mix($emlist, $emnums, $domkey, $eitmemax = 100, $eitmesr = 55)
**功能**
:执行元素合成
**参数**
:
-
`$emlist`
:元素列表
-
`$emnums`
:元素数量列表
-
`$domkey`
:主元素键值
-
`$eitmemax`
:最大合成效率,默认为100
-
`$eitmesr`
:合成成功率,默认为55
**处理流程**
:
1.
检查元素列表和数量是否合法
2.
确定主元素和次元素
3.
计算合成效率和成功率
4.
执行合成操作
5.
根据结果生成合成物品或失败消息
**返回值**
:无,直接修改全局变量
## 元素系统特点
1.
**元素特征**
:每种元素有不同的特征和属性
2.
**元素配方**
:通过特定配方组合元素生成物品
3.
**尸体分解**
:可以将尸体分解为元素
4.
**物品分解**
:可以将物品分解为元素
5.
**元素合成**
:可以将元素组合合成新物品
6.
**学习系统**
:玩家可以逐渐了解元素特征和配方
## 元素合成机制
元素合成系统包含以下核心机制:
1.
**主元素和次元素**
:合成时需要指定一个主元素,其他为次元素
2.
**合成效率**
:影响合成结果的品质
3.
**成功率**
:决定合成是否成功
4.
**元素特性**
:不同元素组合产生不同效果
5.
**配方系统**
:特定元素组合对应特定物品
## 主要特点
1.
**完整的元素系统**
:从元素获取到合成的完整流程
2.
**尸体利用**
:提供了尸体分解为元素的机制
3.
**物品循环**
:物品可以分解为元素,元素又可以合成新物品
4.
**学习机制**
:玩家通过游戏过程逐渐了解元素系统
5.
**界面交互**
:提供了友好的界面显示元素信息和配方
## 注意事项
1.
元素系统与物品系统和尸体系统紧密集成
2.
元素合成涉及随机因素,成功率和效率会影响结果
3.
元素配方数据存储在配置文件中,需要与代码保持一致
4.
元素系统包含学习机制,玩家数据中记录已了解的元素特征和配方
5.
文件依赖于elementmix.calc.php提供的计算函数
\ No newline at end of file
doc/context/game_analysis_summary.md
deleted
100644 → 0
View file @
894a4630
# 游戏系统分析总结
## 概述
本文档汇总了对PHP游戏系统核心文件的分析结果,主要关注
`include/game`
目录下的关键功能文件。通过分析这些文件,我们深入了解了游戏的核心机制、系统设计和各组件之间的交互关系。
## 已分析文件列表
### 战斗系统
1.
**battle.func.php**
- 战斗遭遇和物品交互的函数
2.
**combat.func.php**
- 战斗机制的核心逻辑
3.
**revcombat.func.php**
- 改进版战斗系统
4.
**revbattle.func.php**
- 改进版战斗遭遇系统
### 物品系统
1.
**item.func.php**
- 物品系统的核心函数
2.
**itembag.func.php**
- 物品背包系统
3.
**itemmain.func.php**
- 物品主系统
4.
**itemmix.func.php**
- 物品合成系统
5.
**elementmix.func.php**
- 元素合成系统
### 角色系统
1.
**revattr.func.php**
- 角色属性系统
2.
**clubskills.func.php**
- 社团技能系统
3.
**titles.func.php**
- 称号系统
### 其他系统
1.
**achievement.func.php**
- 成就系统的管理函数
2.
**special.func.php**
- 特殊功能和事件系统
## 系统架构概述
游戏系统采用模块化设计,各个子系统相对独立但又紧密协作。主要系统包括:
### 战斗系统架构
战斗系统是游戏的核心机制,分为以下几个主要组件:
-
**战斗遭遇**
:处理敌人发现、战斗准备和逃跑等机制
-
**战斗执行**
:处理攻击逻辑、伤害计算和战斗结果
-
**属性影响**
:角色属性、装备和技能对战斗的影响
战斗系统的特点是模块化设计,使用PHP命名空间组织代码,通过引用传递修改玩家数据,并将战斗过程分为准备、执行、攻击和结果处理四个阶段。
### 物品系统架构
物品系统管理游戏中的各种物品,包括以下组件:
-
**物品背包**
:管理玩家的物品库存
-
**物品使用**
:处理物品的使用效果
-
**物品合成**
:允许玩家将多个物品组合创造新物品
-
**元素系统**
:管理元素特性、配方和合成
物品系统的特点是使用JSON格式存储数据,支持多样化的物品类型,实现了复杂的效果计算,包含物品合成、陷阱和箱子等机制。
### 角色系统架构
角色系统管理玩家的属性、技能和成长,包括以下组件:
-
**属性系统**
:处理角色属性和战斗能力计算
-
**技能系统**
:管理社团技能的获取、升级和效果
-
**称号系统**
:管理玩家获得的称号及其效果
角色系统的特点是实现了复杂的属性计算系统,支持多种技能效果,使用JSON格式存储称号数据。
### 其他系统架构
-
**成就系统**
:管理游戏成就的初始化、检查、更新和完成
-
**特殊功能系统**
:处理游戏中的特殊事件、NPC互动和特殊地点效果
## 系统交互关系
游戏系统各组件之间存在复杂的交互关系:
1.
**战斗与物品系统**
:战斗中使用物品,物品影响战斗结果
2.
**战斗与角色系统**
:角色属性和技能影响战斗能力,战斗结果影响角色成长
3.
**物品与角色系统**
:物品可以提升角色属性,角色属性影响物品使用效果
4.
**成就与其他系统**
:各种游戏行为触发成就,成就可能提供奖励
5.
**特殊事件与其他系统**
:特殊事件可能影响战斗、物品和角色状态
## 技术特点
1.
**PHP实现**
:系统使用PHP语言实现,适合Web游戏开发
2.
**命名空间**
:部分文件使用PHP命名空间组织代码,提高可维护性
3.
**JSON数据存储**
:多个系统使用JSON格式存储数据,提高灵活性和扩展性
4.
**引用传递**
:广泛使用引用传递修改玩家数据,提高效率
5.
**模块化设计**
:系统分为多个相对独立的模块,便于维护和扩展
6.
**随机性**
:多个系统引入随机性,增加游戏变化性和重玩价值
## 设计亮点
1.
**平衡性考虑**
:各系统设计考虑了游戏平衡,如战斗公式、物品效果和技能加成
2.
**扩展性**
:系统设计允许轻松添加新的物品、技能和事件
3.
**深度游戏机制**
:实现了复杂的战斗、物品和角色成长系统,提供深度游戏体验
4.
**随机性与策略性**
:系统平衡了随机性和策略性,既有不可预测性又允许玩家制定策略
5.
**成就系统**
:提供长期游戏目标和奖励,增加游戏寿命
## 潜在改进方向
1.
**代码一致性**
:统一使用命名空间和编码风格
2.
**减少全局变量**
:减少对全局变量的依赖,提高代码可维护性
3.
**增强文档**
:为复杂函数和系统添加更详细的文档
4.
**优化性能**
:优化数据处理和计算密集型操作
5.
**增强测试**
:添加单元测试和集成测试,确保系统稳定性
## 结论
通过对这些核心文件的分析,我们可以看到游戏系统的复杂性和各系统之间的紧密联系。战斗系统是游戏的核心机制,通过精心设计的公式和参数实现了平衡的战斗体验。物品系统提供了丰富的物品类型和交互方式,增加了游戏的深度和策略性。角色系统支持多样化的成长路径和技能发展。特殊功能系统则通过随机事件和NPC互动丰富了游戏内容,增加了游戏的变化性和重玩价值。
这些系统之间相互依赖,共同构成了一个复杂而有趣的游戏世界。在修改或扩展这些系统时,需要考虑它们之间的关系和平衡性,以确保游戏体验的一致性和乐趣。
\ No newline at end of file
doc/context/game_func.md
deleted
100644 → 0
View file @
894a4630
# game.func.php 函数分析
`game.func.php`
是游戏核心函数库,包含了游戏运行所需的主要功能函数。
## 函数列表
### 游戏初始化和配置
#### `init_game($gid, $mode = 0)`
-
**功能**
: 初始化游戏
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$mode`
: 初始化模式
-
**返回值**
: 初始化结果
#### `load_game_config($gid)`
-
**功能**
: 加载游戏配置
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 游戏配置数组
#### `start_game($gid, $players)`
-
**功能**
: 开始游戏
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$players`
: 玩家列表
-
**返回值**
: 开始结果
#### `end_game($gid, $winner = 0)`
-
**功能**
: 结束游戏
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$winner`
: 获胜者ID
-
**返回值**
: 结束结果
### 玩家管理
#### `join_game($uid, $gid, $team = 0)`
-
**功能**
: 玩家加入游戏
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$team`
: 队伍ID
-
**返回值**
: 加入结果
#### `leave_game($uid, $gid)`
-
**功能**
: 玩家离开游戏
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 离开结果
#### `get_player_list($gid, $status = 0)`
-
**功能**
: 获取玩家列表
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$status`
: 玩家状态
-
**返回值**
: 玩家列表数组
#### `update_player_status($uid, $gid, $status)`
-
**功能**
: 更新玩家状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$status`
: 新状态
-
**返回值**
: 更新结果
### 游戏动作和交互
#### `player_move($uid, $gid, $direction)`
-
**功能**
: 玩家移动
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$direction`
: 移动方向
-
**返回值**
: 移动结果
#### `player_attack($uid, $gid, $target, $skill = 0)`
-
**功能**
: 玩家攻击
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$target`
: 目标ID
-
`$skill`
: 技能ID
-
**返回值**
: 攻击结果
#### `player_use_item($uid, $gid, $item_id, $target = 0)`
-
**功能**
: 玩家使用物品
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$item_id`
: 物品ID
-
`$target`
: 目标ID
-
**返回值**
: 使用结果
#### `player_pickup_item($uid, $gid, $item_id)`
-
**功能**
: 玩家拾取物品
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$item_id`
: 物品ID
-
**返回值**
: 拾取结果
### 游戏状态和进程
#### `update_game_time($gid, $time = 0)`
-
**功能**
: 更新游戏时间
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$time`
: 时间增量
-
**返回值**
: 更新结果
#### `check_game_end($gid)`
-
**功能**
: 检查游戏是否结束
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 布尔值,表示游戏是否结束
#### `get_game_progress($gid)`
-
**功能**
: 获取游戏进度
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 游戏进度信息
#### `trigger_game_event($gid, $event_type, $params = array())`
-
**功能**
: 触发游戏事件
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$event_type`
: 事件类型
-
`$params`
: 事件参数
-
**返回值**
: 事件触发结果
### 战斗系统
#### `calculate_battle_result($attacker, $defender, $skill = 0)`
-
**功能**
: 计算战斗结果
-
**参数**
:
-
`$attacker`
: 攻击者信息
-
`$defender`
: 防御者信息
-
`$skill`
: 技能ID
-
**返回值**
: 战斗结果
#### `apply_damage($uid, $gid, $damage, $type = 'physical')`
-
**功能**
: 应用伤害
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$damage`
: 伤害值
-
`$type`
: 伤害类型
-
**返回值**
: 应用结果
#### `check_player_death($uid, $gid)`
-
**功能**
: 检查玩家是否死亡
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 布尔值,表示玩家是否死亡
#### `handle_player_death($uid, $gid, $killer = 0)`
-
**功能**
: 处理玩家死亡
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$killer`
: 杀手ID
-
**返回值**
: 处理结果
### 物品和装备系统
#### `generate_item($gid, $type, $level = 1)`
-
**功能**
: 生成物品
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$type`
: 物品类型
-
`$level`
: 物品等级
-
**返回值**
: 物品信息
#### `equip_item($uid, $gid, $item_id)`
-
**功能**
: 装备物品
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$item_id`
: 物品ID
-
**返回值**
: 装备结果
#### `unequip_item($uid, $gid, $slot)`
-
**功能**
: 卸下装备
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$slot`
: 装备槽位
-
**返回值**
: 卸下结果
#### `drop_item($uid, $gid, $item_id)`
-
**功能**
: 丢弃物品
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$item_id`
: 物品ID
-
**返回值**
: 丢弃结果
### 技能和能力
#### `learn_skill($uid, $gid, $skill_id)`
-
**功能**
: 学习技能
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$skill_id`
: 技能ID
-
**返回值**
: 学习结果
#### `upgrade_skill($uid, $gid, $skill_id)`
-
**功能**
: 升级技能
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$skill_id`
: 技能ID
-
**返回值**
: 升级结果
#### `use_skill($uid, $gid, $skill_id, $target = 0)`
-
**功能**
: 使用技能
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$skill_id`
: 技能ID
-
`$target`
: 目标ID
-
**返回值**
: 使用结果
#### `check_skill_cooldown($uid, $gid, $skill_id)`
-
**功能**
: 检查技能冷却
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$skill_id`
: 技能ID
-
**返回值**
: 布尔值,表示技能是否冷却完毕
### 游戏地图和环境
#### `load_map($gid, $map_id)`
-
**功能**
: 加载地图
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$map_id`
: 地图ID
-
**返回值**
: 地图信息
#### `get_area_players($gid, $area_id)`
-
**功能**
: 获取区域内的玩家
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$area_id`
: 区域ID
-
**返回值**
: 玩家列表
#### `get_area_items($gid, $area_id)`
-
**功能**
: 获取区域内的物品
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$area_id`
: 区域ID
-
**返回值**
: 物品列表
#### `update_area_status($gid, $area_id, $status)`
-
**功能**
: 更新区域状态
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$area_id`
: 区域ID
-
`$status`
: 新状态
-
**返回值**
: 更新结果
这只是部分函数的分析,完整的game.func.php文件包含更多游戏核心功能函数,用于支持游戏系统的各个方面。
\ No newline at end of file
doc/context/gameencrypt.md
deleted
100644 → 0
View file @
894a4630
# gameencrypt.php 文件分析
## 文件概述
`gameencrypt.php`
是游戏系统中负责数据加密和解密的函数库。该文件提供了一套简单但有效的加密机制,用于保护游戏数据的安全性,防止数据被未授权访问或修改。
## 函数列表
### game_encrypt($txt, $key)
**功能**
:使用指定密钥加密字符串
**参数**
:
-
`$txt`
:待加密的原始字符串
-
`$key`
:私有密钥,用于加密
**处理流程**
:
1.
生成随机加密密钥(通过随机数和MD5)
2.
遍历原始字符串的每个字符
3.
将原始字符与加密密钥的对应位置字符进行异或操作
4.
将加密密钥的字符和异或结果交替组合
5.
使用
`game_key()`
函数进一步处理结果
6.
对最终结果进行base64编码
**返回值**
:加密后的字符串(base64编码)
### game_decrypt($txt, $key)
**功能**
:使用指定密钥解密字符串
**参数**
:
-
`$txt`
:加密后的字符串(base64编码)
-
`$key`
:私有密钥,用于解密
**处理流程**
:
1.
对加密字符串进行base64解码
2.
使用
`game_key()`
函数处理解码后的字符串
3.
遍历处理后的字符串,每两个字符为一组
4.
将每组中的第一个字符与第二个字符进行异或操作,得到原始字符
**返回值**
:解密后的原始字符串
### game_key($txt, $encrypt_key)
**功能**
:处理加密/解密过程中的密钥
**参数**
:
-
`$txt`
:待处理的字符串
-
`$encrypt_key`
:私有密钥
**处理流程**
:
1.
对私有密钥进行MD5处理
2.
遍历待处理字符串的每个字符
3.
将字符与MD5处理后的密钥的对应位置字符进行异或操作
**返回值**
:处理后的字符串
### game_encode($array)
**功能**
:将数组编码为URL查询字符串格式
**参数**
:
-
`$array`
:待编码的数组
**处理流程**
:
1.
遍历数组的每个元素
2.
将每个元素转换为"键=值"的格式,其中值使用
`urlencode()`
进行URL编码
3.
使用"&"符号连接所有转换后的元素
**返回值**
:URL查询字符串格式的编码结果
## 加密原理
该文件实现的加密机制基于以下原理:
1.
**随机密钥生成**
:使用随机数和MD5生成一次性加密密钥
2.
**异或操作**
:使用异或操作混淆原始数据
3.
**交替组合**
:将加密密钥和异或结果交替组合,增加破解难度
4.
**二次处理**
:通过
`game_key()`
函数进行二次处理
5.
**Base64编码**
:使用Base64编码确保加密结果可以安全传输
## 主要特点
1.
**简单实现**
:使用基本的加密技术,易于理解和实现
2.
**双向加密**
:提供加密和解密功能,可以完整恢复原始数据
3.
**密钥依赖**
:加密和解密过程依赖于相同的私有密钥
4.
**随机性**
:使用随机生成的一次性密钥,增加安全性
5.
**URL安全**
:提供数组到URL查询字符串的安全编码
## 注意事项
1.
该加密机制适用于基本的数据保护,不适用于高安全性要求的场景
2.
加密强度依赖于私有密钥的复杂度和保密性
3.
该实现不使用标准的加密算法(如AES、RSA等),而是使用自定义的简单加密方法
4.
`game_encode()`
函数与加密无关,仅提供数组到URL查询字符串的编码
5.
文件中包含详细的注释,解释了每个函数的工作原理
\ No newline at end of file
doc/context/global_func.md
deleted
100644 → 0
View file @
894a4630
# global.func.php 函数分析
`global.func.php`
是全局函数库,提供全局可用的通用函数,支持游戏系统的各个部分。
## 函数列表
### 游戏核心功能
#### `gamecfg($key = '')`
-
**功能**
: 获取游戏配置
-
**参数**
:
`$key`
: 配置键名
-
**返回值**
: 配置值或整个配置数组
#### `get_gameinfo($gid)`
-
**功能**
: 获取游戏信息
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 游戏信息数组
#### `get_gamenum()`
-
**功能**
: 获取游戏数量
-
**参数**
: 无
-
**返回值**
: 游戏数量
#### `get_gamelist()`
-
**功能**
: 获取游戏列表
-
**参数**
: 无
-
**返回值**
: 游戏列表数组
#### `get_gameinfo_by_gname($gname)`
-
**功能**
: 通过游戏名称获取游戏信息
-
**参数**
:
`$gname`
: 游戏名称
-
**返回值**
: 游戏信息数组
### 用户相关功能
#### `get_userinfo($uid, $fields = '*')`
-
**功能**
: 获取用户信息
-
**参数**
:
-
`$uid`
: 用户ID
-
`$fields`
: 需要获取的字段
-
**返回值**
: 用户信息数组
#### `get_userinfo_by_username($username, $fields = '*')`
-
**功能**
: 通过用户名获取用户信息
-
**参数**
:
-
`$username`
: 用户名
-
`$fields`
: 需要获取的字段
-
**返回值**
: 用户信息数组
#### `update_user_info($uid, $data)`
-
**功能**
: 更新用户信息
-
**参数**
:
-
`$uid`
: 用户ID
-
`$data`
: 更新数据
-
**返回值**
: 更新结果
#### `check_user_permission($uid, $permission)`
-
**功能**
: 检查用户权限
-
**参数**
:
-
`$uid`
: 用户ID
-
`$permission`
: 权限名称
-
**返回值**
: 布尔值,表示是否有权限
### 游戏状态和进程
#### `get_game_status($gid)`
-
**功能**
: 获取游戏状态
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 游戏状态信息
#### `update_game_status($gid, $status)`
-
**功能**
: 更新游戏状态
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$status`
: 新状态
-
**返回值**
: 更新结果
#### `get_player_status($uid, $gid)`
-
**功能**
: 获取玩家在特定游戏中的状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 玩家状态信息
### 物品和装备
#### `get_item_info($iid)`
-
**功能**
: 获取物品信息
-
**参数**
:
`$iid`
: 物品ID
-
**返回值**
: 物品信息数组
#### `get_equip_info($eid)`
-
**功能**
: 获取装备信息
-
**参数**
:
`$eid`
: 装备ID
-
**返回值**
: 装备信息数组
#### `get_player_items($uid, $gid)`
-
**功能**
: 获取玩家物品列表
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 物品列表数组
### 游戏地图和位置
#### `get_map_info($mid)`
-
**功能**
: 获取地图信息
-
**参数**
:
`$mid`
: 地图ID
-
**返回值**
: 地图信息数组
#### `get_area_info($aid)`
-
**功能**
: 获取区域信息
-
**参数**
:
`$aid`
: 区域ID
-
**返回值**
: 区域信息数组
#### `get_player_position($uid, $gid)`
-
**功能**
: 获取玩家位置
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 位置信息
### 战斗和技能
#### `calculate_damage($attacker, $defender, $skill = 0)`
-
**功能**
: 计算伤害值
-
**参数**
:
-
`$attacker`
: 攻击者信息
-
`$defender`
: 防御者信息
-
`$skill`
: 使用的技能
-
**返回值**
: 伤害值
#### `get_skill_info($sid)`
-
**功能**
: 获取技能信息
-
**参数**
:
`$sid`
: 技能ID
-
**返回值**
: 技能信息数组
#### `get_player_skills($uid, $gid)`
-
**功能**
: 获取玩家技能列表
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 技能列表数组
### 游戏事件和日志
#### `log_game_event($gid, $event_type, $event_data)`
-
**功能**
: 记录游戏事件
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$event_type`
: 事件类型
-
`$event_data`
: 事件数据
-
**返回值**
: 记录结果
#### `get_game_events($gid, $limit = 10)`
-
**功能**
: 获取游戏事件列表
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$limit`
: 限制数量
-
**返回值**
: 事件列表数组
#### `log_player_action($uid, $gid, $action, $data)`
-
**功能**
: 记录玩家行动
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$action`
: 行动类型
-
`$data`
: 行动数据
-
**返回值**
: 记录结果
### 工具和辅助函数
#### `generate_random_event($gid, $area_id)`
-
**功能**
: 生成随机事件
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$area_id`
: 区域ID
-
**返回值**
: 事件信息
#### `calculate_experience($level, $action_type)`
-
**功能**
: 计算经验值
-
**参数**
:
-
`$level`
: 当前等级
-
`$action_type`
: 行动类型
-
**返回值**
: 经验值
#### `check_level_up($uid, $gid, $exp)`
-
**功能**
: 检查是否升级
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$exp`
: 经验值
-
**返回值**
: 布尔值,表示是否升级
这只是部分函数的分析,完整的global.func.php文件包含更多全局函数,用于支持游戏系统的各个方面。
\ No newline at end of file
doc/context/include_analysis_logs_1.md
deleted
100644 → 0
View file @
894a4630
# PHP游戏系统代码分析过程记录
## 分析概述
本文档记录了对PHP游戏系统代码的分析过程,包括文件遍历、函数分析和结果记录。
## 分析时间
分析开始时间:2024年3月2日
分析完成时间:2024年3月8日
## 分析方法
1.
**文件遍历**
:遍历include目录及其子目录中的所有文件
2.
**文件分类**
:根据文件名和内容将文件分为不同类别
3.
**函数分析**
:分析每个PHP文件中的函数,记录其功能、参数和返回值
4.
**结果记录**
:将分析结果以Markdown格式记录在/doc/context/目录下
## 已分析文件
已完成对以下核心文件的分析:
1.
**system.func.php**
- 系统核心函数库
2.
**global.func.php**
- 全局函数库
3.
**game.func.php**
- 游戏核心函数库
4.
**state.func.php**
- 游戏状态管理函数库
5.
**db_mysqli.class.php**
- MySQLi数据库操作类
6.
**template.func.php**
- 模板处理函数库
7.
**roommng.func.php**
- 房间管理函数库
8.
**messages.func.php**
- 消息系统函数库
9.
**common.inc.php**
- 通用包含文件
10.
**init.func.php**
- 初始化函数库
11.
**user.func.php**
- 用户相关函数
12.
**news.func.php**
- 新闻/公告相关函数
13.
**resources.func.php**
- 资源管理相关函数
14.
**gameencrypt.php**
- 游戏加密相关函数
### include/game目录下的文件
15.
**battle.func.php**
- 战斗遭遇和物品交互函数库
16.
**combat.func.php**
- 战斗核心逻辑函数库
17.
**item.func.php**
- 物品系统核心函数库
18.
**achievement.func.php**
- 成就系统函数库
19.
**revattr.func.php**
- 角色属性系统函数库
20.
**clubskills.func.php**
- 俱乐部技能系统函数库
21.
**itemmix.func.php**
- 物品合成系统函数库
22.
**elementmix.func.php**
- 元素合成系统函数库
23.
**titles.func.php**
- 称号系统函数库
## 分析结果
为每个分析的文件创建了单独的Markdown文档,记录了文件中的函数列表、功能描述、参数和返回值。同时创建了一个总体概述文件,列出了include目录中的所有文件及其主要功能。
### 创建的文档
1.
**/doc/context/include_overview.md**
- include目录文件概述
2.
**/doc/context/system_func.md**
- system.func.php函数分析
3.
**/doc/context/global_func.md**
- global.func.php函数分析
4.
**/doc/context/game_func.md**
- game.func.php函数分析
5.
**/doc/context/state_func.md**
- state.func.php函数分析
6.
**/doc/context/db_mysqli_class.md**
- db_mysqli.class.php类分析
7.
**/doc/context/template_func.md**
- template.func.php函数分析
8.
**/doc/context/roommng_func.md**
- roommng.func.php函数分析
9.
**/doc/context/messages_func.md**
- messages.func.php函数分析
10.
**/doc/context/common_inc.md**
- common.inc.php文件分析
11.
**/doc/context/init_func.md**
- init.func.php函数分析
12.
**/doc/context/user_func.md**
- user.func.php函数分析
13.
**/doc/context/news_func.md**
- news.func.php函数分析
14.
**/doc/context/resources_func.md**
- resources.func.php函数分析
15.
**/doc/context/gameencrypt.md**
- gameencrypt.php函数分析
16.
**/doc/context/battle_func.md**
- battle.func.php函数分析
17.
**/doc/context/combat_func.md**
- combat.func.php函数分析
18.
**/doc/context/item_func.md**
- item.func.php函数分析
19.
**/doc/context/achievement_func.md**
- achievement.func.php函数分析
20.
**/doc/context/revattr_func.md**
- revattr.func.php函数分析
21.
**/doc/context/clubskills_func.md**
- clubskills.func.php函数分析
22.
**/doc/context/itemmix_func.md**
- itemmix.func.php函数分析
23.
**/doc/context/elementmix_func.md**
- elementmix.func.php函数分析
24.
**/doc/context/titles_func.md**
- titles.func.php函数分析
## 主要发现
1.
**模块化设计**
:系统采用模块化设计,各个功能模块之间有明确的职责划分
2.
**完整功能**
:系统提供了完整的游戏功能,包括房间管理、状态系统、战斗系统、消息系统等
3.
**数据库操作**
:采用面向对象的方式,通过dbstuff类提供统一的接口
4.
**模板系统**
:支持模板缓存和变量替换,提高页面渲染效率
5.
**消息系统**
:支持多种类型的消息和通知,增强用户间交互
6.
**资源管理**
:提供统一的接口加载游戏各种资源配置
7.
**用户管理**
:提供用户验证、数据获取和格式化功能
8.
**加密机制**
:提供简单但有效的数据加密和解密功能
9.
**初始化系统**
:提供玩家状态和信息显示的初始化功能
10.
**战斗系统**
:实现了复杂的伤害计算和状态效果处理
11.
**物品系统**
:支持各种类型的物品和效果,包括武器、防具、饰品、消耗品和特殊物品
12.
**成就系统**
:支持多层级成就、每日成就、成就分类、成就记录和成就重置等功能
13.
**属性系统**
:实现了复杂的属性计算逻辑,考虑多种因素影响角色属性
14.
**技能系统**
:提供了完整的俱乐部技能系统,包括技能定义、升级和效果计算
15.
**合成系统**
:支持多种合成机制,包括物品合成和元素合成
16.
**称号系统**
:提供了称号的获取、删除、描述和验证等功能
## 待完成工作
还有一些重要文件需要进一步分析,包括:
1.
**game.js**
- 游戏前端核心JavaScript
2.
**JSON.php**
- PHP的JSON处理库
3.
**game/目录下的其他文件**
- 游戏核心功能模块
-
revcombat.func.php - 改良版战斗系统
-
revbattle.func.php - 改良版战斗遭遇系统
-
itembag.func.php - 物品背包系统
-
itemmain.func.php - 物品主系统
-
special.func.php - 特殊功能系统
4.
**admin/目录**
- 管理员相关功能
5.
**javascript/目录**
- JavaScript库和脚本
6.
**vnworld/目录**
- 虚拟世界相关功能
7.
**devtools/目录**
- 开发工具
## 结论
通过对核心文件的分析,我们对PHP游戏系统的架构和功能有了更加清晰的了解。系统采用了模块化的设计,各个功能模块之间有明确的职责划分,提供了完整的游戏功能支持。
新分析的文件进一步揭示了系统的角色属性系统、俱乐部技能系统、物品合成系统、元素合成系统和称号系统等核心玩法组件的实现细节,使我们对系统的整体架构有了更全面的认识。
这些分析结果将有助于理解系统的工作原理,为后续的开发、维护和扩展提供参考。同时,这些文档也可以作为系统的技术文档,帮助新开发人员快速了解系统。
\ No newline at end of file
doc/context/include_overview.md
deleted
100644 → 0
View file @
894a4630
# include目录文件概述
本文档提供了
`include`
目录中所有文件的概述和主要功能说明。
## 核心系统文件
-
**system.func.php**
- 系统核心函数库,包含系统运行所需的基础函数
-
**global.func.php**
- 全局函数库,提供全局可用的通用函数
-
**common.inc.php**
- 通用包含文件,定义常量和基础配置
-
**init.func.php**
- 初始化函数库,负责系统启动和初始化
## 数据库相关
-
**db_mysql.class.php**
- MySQL数据库操作类
-
**db_mysqli.class.php**
- MySQLi数据库操作类
-
**db_pdo.class.php**
- PDO数据库操作类
-
**db_mysql_error.inc.php**
- MySQL错误处理
-
**db_mysqli_error.inc.php**
- MySQLi错误处理
## 游戏核心功能
-
**game.func.php**
- 游戏核心函数库
-
**state.func.php**
- 游戏状态管理函数
-
**roommng.func.php**
- 房间管理相关函数
-
**resources.func.php**
- 资源管理相关函数
-
**gameencrypt.php**
- 游戏加密相关函数
## 用户和消息系统
-
**user.func.php**
- 用户相关函数
-
**messages.func.php**
- 消息系统相关函数
-
**news.func.php**
- 新闻/公告相关函数
-
**weibolog.func.php**
- 微博日志相关函数
## 前端和模板
-
**template.func.php**
- 模板处理函数
-
**game.js**
- 游戏前端核心JavaScript
-
**game20130526.js**
- 游戏前端JavaScript(特定版本)
-
**common.js**
- 通用JavaScript函数
-
**json.js**
- JSON处理JavaScript
-
**record.js**
- 记录相关JavaScript
-
**pako.js**
- 压缩库JavaScript
## JSON处理
-
**JSON.php**
- PHP的JSON处理库
## 子目录
-
**admin/**
- 管理员相关功能
-
**game/**
- 游戏核心功能模块
-
**javascript/**
- JavaScript库和脚本
-
**vnworld/**
- 虚拟世界相关功能
-
**devtools/**
- 开发工具
每个文件的详细函数分析可在对应的单独文档中找到。
\ No newline at end of file
doc/context/init_func.md
deleted
100644 → 0
View file @
894a4630
# init.func.php 文件分析
## 文件概述
`init.func.php`
是游戏系统中负责初始化玩家状态和信息显示的函数库。该文件包含了一系列用于处理玩家角色信息、状态显示、武器信息等的函数,主要用于游戏界面的数据准备和显示。
## 函数列表
### init_icon_states(&$pa, $pd, $ismeet=0)
**功能**
:初始化玩家图标状态信息
**参数**
:
-
`&$pa`
:玩家A的数据数组(引用传递)
-
`$pd`
:玩家B的数据数组
-
`$ismeet`
:是否已经见面,默认为0
**处理流程**
:
1.
检查玩家B是否有"天眼"技能
2.
根据雾天和见面状态决定是否显示详细信息
3.
更新玩家编号信息
4.
更新玩家头像信息,包括检查是否存在大头像
**返回值**
:无,直接修改
`$pa`
数组
### init_single_hp_states($pa)
**功能**
:初始化单个玩家的HP状态显示
**参数**
:
-
`$pa`
:玩家数据数组
**处理流程**
:
1.
根据玩家当前HP与最大HP的比例确定HP状态
2.
根据不同HP状态设置不同颜色的显示文本
**返回值**
:HP状态的HTML格式字符串
### init_hp_states(&$pa, $pd, $ismeet=0)
**功能**
:初始化玩家的HP、SP和怒气状态显示
**参数**
:
-
`&$pa`
:玩家A的数据数组(引用传递)
-
`$pd`
:玩家B的数据数组
-
`$ismeet`
:是否已经见面,默认为0
**处理流程**
:
1.
检查玩家是否有"护盾"技能,并显示护盾信息
2.
检查玩家B是否有"天眼"技能
3.
根据雾天和见面状态决定是否显示详细信息
4.
根据玩家HP、SP和怒气值的不同状态设置不同颜色的显示文本
**返回值**
:无,直接修改
`$pa`
数组
### init_wep_states(&$pa, $pd, $ismeet=0)
**功能**
:初始化玩家武器状态显示
**参数**
:
-
`&$pa`
:玩家A的数据数组(引用传递)
-
`$pd`
:玩家B的数据数组
-
`$ismeet`
:是否已经见面,默认为0
**处理流程**
:
1.
检查玩家B是否有"天眼"技能
2.
根据雾天和见面状态决定是否显示详细信息
3.
根据武器耐久度设置不同的武器状态显示
4.
更新武器名称和武器类别信息
**返回值**
:无,直接修改
`$pa`
数组
### init_inf_states(&$pa, $pd, $ismeet=0)
**功能**
:初始化玩家状态信息显示
**参数**
:
-
`&$pa`
:玩家A的数据数组(引用传递)
-
`$pd`
:玩家B的数据数组
-
`$ismeet`
:是否已经见面,默认为0
**处理流程**
:
1.
检查玩家B是否有"天眼"技能
2.
根据雾天和见面状态决定是否显示详细信息
3.
更新玩家名称、等级、姿态和战术信息
4.
更新玩家受伤状态信息
**返回值**
:无,直接修改
`$pa`
数组
### init_friedship_states($pa, $sk, $mid)
**功能**
:初始化玩家友好度状态显示
**参数**
:
-
`$pa`
:玩家数据数组
-
`$sk`
:技能ID
-
`$mid`
:目标ID
**处理流程**
:
1.
检查玩家是否对目标有友好度记录
2.
根据友好度值设置不同颜色和文本的友好度描述
**返回值**
:友好度描述的HTML格式字符串
## 主要特点
1.
**状态可视化**
:将游戏中的各种数值状态转换为可视化的文本描述
2.
**条件显示**
:根据游戏条件(如雾天、技能)决定信息显示的详细程度
3.
**引用传递**
:大多数函数使用引用传递来直接修改玩家数据数组
4.
**HTML格式化**
:输出包含HTML标签的格式化文本,用于前端显示
5.
**技能联动**
:与游戏中的技能系统(如"天眼"、"护盾")紧密联动
## 注意事项
1.
这些函数主要用于游戏界面的数据准备,不直接处理游戏逻辑
2.
大多数函数通过引用直接修改传入的数组,而不是返回新值
3.
函数输出包含HTML标签,需要在前端直接输出而不需要额外转义
4.
"天眼"技能是影响信息显示的关键因素,拥有该技能的玩家可以看到更多信息
\ No newline at end of file
doc/context/item_func.md
deleted
100644 → 0
View file @
894a4630
# item.func.php 文件分析
## 文件概述
`item.func.php`
是游戏系统中处理物品使用、装备和管理的核心函数库。该文件是游戏中最大的函数库之一(约4496行),包含了物品系统的几乎所有功能,包括物品使用、装备穿戴、物品效果处理等。这个文件是游戏物品系统的核心实现。
## 主要函数列表
### itemuse($itmn, &$data=NULL)
**功能**
:处理玩家使用物品的主函数
**参数**
:
-
`$itmn`
:物品在物品栏中的位置(1-6,0为特殊情况)
-
`&$data`
:玩家数据数组(引用传递),默认为NULL(使用全局$pdata)
**处理流程**
:
1.
验证物品位置是否有效(1-6范围内)
2.
检查物品是否存在(数量>0)
3.
检查玩家是否已死亡(死亡状态不能使用物品)
4.
根据物品类型进行不同处理:
-
武器(W开头):装备到武器栏
-
防具(D开头):装备到相应防具栏(DB身体、DH头部、DA手臂、DF脚部)
-
饰品(A开头):装备到饰品栏
-
特殊物品(ss开头):装备到饰品栏
-
消耗品(各种类型):应用物品效果
5.
处理特殊物品效果(如回复、状态改变、技能获取等)
6.
更新物品使用后的状态(数量减少或移除)
7.
记录物品使用的日志
**特殊处理**
:
-
诅咒装备(带有V标记)不能主动卸下
-
特定社团有特殊物品使用效果
-
某些物品有使用条件限制(如等级、状态等)
-
物品可能有附加参数($itmpara)影响使用效果
**主要物品类型处理**
:
1.
**武器装备**
:替换当前武器,更新攻击属性
2.
**防具装备**
:替换对应部位防具,更新防御属性
3.
**饰品装备**
:替换当前饰品,应用特殊效果
4.
**补给品**
:恢复HP、SP、MP等属性
5.
**状态药剂**
:添加或移除状态效果
6.
**技能书**
:学习或获得技能
7.
**特殊道具**
:触发特殊游戏效果
**返回值**
:无,直接修改传入的数据数组和全局变量
### octitem_rotate(&$theitem, $rotpos, $showlog = 0)
**功能**
:处理八卦物品的旋转(特殊物品系统)
**参数**
:
-
`&$theitem`
:物品数据数组(引用传递),包含itm、itmk、itme、itms、itmsk等属性
-
`$rotpos`
:要旋转的面的位置(0-7)
-
`$showlog`
:是否显示旋转日志,默认为0(不显示)
**处理流程**
:
1.
解析八卦物品的当前状态(从itmsk中提取)
-
前8位表示八个面的序列
-
后8位表示八个面的颜色
2.
如果itmsk长度不是16,则随机初始化序列和颜色
3.
根据旋转位置计算新的状态:
-
改变选中面的颜色(+1并对8取模)
-
改变相邻两个面的颜色(+1并对8取模)
4.
更新物品的itmsk属性,保存新的状态
5.
如果需要显示日志,输出八个面的颜色信息
6.
检查结果:如果所有面的颜色相同,物品变形为特殊道具
**特殊效果**
:
-
当八个面的颜色全部相同时,物品会变成"★棱镜八面体模样的彩色糖果★",具有特殊属性
**返回值**
:无,直接修改传入的物品数据数组
## 物品类型处理详解
### 武器(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()`
删除特定参数
## 主要特点
1.
**全面的物品系统**
:支持游戏中所有类型的物品和效果
2.
**复杂的效果处理**
:处理各种物品效果和状态变化
3.
**装备系统**
:完整的装备穿戴和管理系统
4.
**特殊物品机制**
:支持诅咒物品、限时物品、唯一物品等特殊机制
5.
**物品参数系统**
:支持物品附加参数,增强物品功能的扩展性
6.
**社团特性集成**
:不同社团使用相同物品可能有不同效果
7.
**八卦物品系统**
:独特的物品变形机制,增加游戏趣味性
## 注意事项
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
doc/context/itembag_func.md
deleted
100644 → 0
View file @
894a4630
# itembag.func.php 文件分析
## 文件概述
`itembag.func.php`
是游戏系统中实现物品背包系统的核心函数库。该文件包含了背包物品的管理、计算、查找和操作等功能,是游戏物品系统的重要组成部分。文件使用JSON格式存储背包数据,提供了灵活的背包管理机制。
## 主要函数列表
### decode_item($i)
**功能**
:将JSON格式的背包数据解码为PHP数组
**参数**
:
-
`$i`
:JSON格式的背包数据
**处理流程**
:
1.
检查输入数据是否为空
2.
如果为空,返回空数组
3.
如果不为空,使用json_decode解码数据
**返回值**
:解码后的背包物品数组
### count_item()
**功能**
:计算背包内的道具数量
**参数**
:无
**处理流程**
:
1.
获取全局背包数据
2.
解码背包数据为数组
3.
计算数组中的物品数量
4.
更新全局物品数量变量
**返回值**
:无,直接修改全局变量
### item_weight()
**功能**
:计算背包内的道具重量
**参数**
:无
**处理流程**
:
1.
获取全局背包数据
2.
解码背包数据为数组
3.
根据物品类型和数量计算总重量
4.
更新全局物品重量变量
**返回值**
:无,直接修改全局变量
### count_getitem()
**功能**
:计算待获取物品的数量
**参数**
:无
**处理流程**
:
1.
获取全局待获取物品数据
2.
解码待获取物品数据为数组
3.
计算数组中的物品数量
4.
返回物品数量
**返回值**
:待获取物品的数量
### getitem_weight($git, $gitnum)
**功能**
:计算待获取物品的重量
**参数**
:
-
`$git`
:待获取物品数据
-
`$gitnum`
:待获取物品数量
**处理流程**
:
1.
解码待获取物品数据为数组
2.
根据物品类型和数量计算总重量
3.
返回总重量
**返回值**
:待获取物品的总重量
### item_arr()
**功能**
:获取背包物品数组
**参数**
:无
**处理流程**
:
1.
获取全局背包数据
2.
解码背包数据为数组
3.
返回物品数组
**返回值**
:背包物品数组
### item_info()
**功能**
:获取背包物品信息
**参数**
:无
**处理流程**
:
1.
获取全局背包数据
2.
解码背包数据为数组
3.
格式化物品信息
4.
返回格式化后的物品信息
**返回值**
:格式化后的背包物品信息
### item_encase($ilist)
**功能**
:将物品数组编码为JSON格式
**参数**
:
-
`$ilist`
:物品数组
**处理流程**
:
1.
检查物品数组是否为空
2.
如果为空,返回空字符串
3.
如果不为空,使用json_encode编码数据
4.
返回编码后的JSON字符串
**返回值**
:编码后的JSON格式物品数据
### item_find($itm, $itmk, $itme, $itms, $itmsk, $itmpara)
**功能**
:在背包中查找指定物品
**参数**
:
-
`$itm`
:物品名称
-
`$itmk`
:物品类型
-
`$itme`
:物品效果
-
`$itms`
:物品耐久
-
`$itmsk`
:物品特殊属性
-
`$itmpara`
:物品参数
**处理流程**
:
1.
获取背包物品数组
2.
遍历数组查找匹配的物品
3.
如果找到,返回物品ID
4.
如果未找到,返回0
**返回值**
:找到的物品ID,未找到则返回0
### item_get()
**功能**
:获取物品到背包
**参数**
:无
**处理流程**
:
1.
获取全局待获取物品数据
2.
检查背包是否已满
3.
检查物品是否可堆叠
4.
如果可堆叠,尝试与现有物品合并
5.
如果不可堆叠或无法合并,添加为新物品
6.
更新背包数据和物品数量
7.
清空待获取物品数据
**返回值**
:无,直接修改全局变量
### item_out($iid)
**功能**
:从背包中移除物品
**参数**
:
-
`$iid`
:物品ID
**处理流程**
:
1.
获取背包物品数组
2.
检查指定ID的物品是否存在
3.
如果存在,从数组中移除该物品
4.
重新编码物品数组为JSON格式
5.
更新背包数据和物品数量
**返回值**
:无,直接修改全局变量
### overnumlimit()
**功能**
:检查背包是否超出数量限制
**参数**
:无
**处理流程**
:
1.
获取背包物品数量和数量限制
2.
比较两者大小
3.
如果超出限制,返回true
4.
如果未超出限制,返回false
**返回值**
:布尔值,表示是否超出数量限制
### drop_itembag()
**功能**
:丢弃背包中的物品
**参数**
:无
**处理流程**
:
1.
获取背包物品数组
2.
遍历数组,将物品添加到地图上
3.
清空背包数据
4.
更新物品数量和重量
**返回值**
:无,直接修改全局变量
### replace_itembag(&$keep)
**功能**
:替换背包内容
**参数**
:
-
`&$keep`
:要保留的物品数组(引用传递)
**处理流程**
:
1.
获取背包物品数组
2.
将要保留的物品添加到新数组
3.
将其他物品添加到地图上
4.
用新数组替换背包数据
5.
更新物品数量和重量
**返回值**
:无,直接修改传入的数组和全局变量
## 背包系统特点
1.
**JSON数据存储**
:使用JSON格式存储背包数据,提高灵活性和扩展性
2.
**物品堆叠**
:支持相同类型物品的堆叠,节省背包空间
3.
**数量限制**
:实现了背包物品数量的限制机制
4.
**重量系统**
:预留了物品重量计算和限制的功能
5.
**物品查找**
:提供了在背包中查找指定物品的功能
6.
**物品操作**
:支持物品的获取、移除和丢弃等操作
## 背包数据结构
背包系统使用以下数据结构:
1.
**$itembag**
:JSON格式的背包数据
2.
**$getitem**
:JSON格式的待获取物品数据
3.
**$itmnum**
:背包内物品数量
4.
**$itmnumlimit**
:背包内物品数量限制
5.
**$weight**
:背包内物品重量
6.
**$weightlimit**
:背包内物品重量限制
## 主要特点
1.
**灵活的数据存储**
:使用JSON格式存储数据,方便扩展和修改
2.
**完整的物品管理**
:提供了物品的添加、移除、查找和丢弃等功能
3.
**堆叠机制**
:支持相同类型物品的堆叠,优化背包空间
4.
**限制机制**
:实现了背包容量的限制,增加游戏挑战性
5.
**与物品系统集成**
:与游戏的物品系统紧密集成,支持各种物品操作
## 注意事项
1.
背包系统依赖于JSON编码和解码,需要注意数据格式的正确性
2.
物品堆叠机制需要考虑物品类型和特殊属性
3.
背包容量限制是游戏平衡性的重要因素
4.
重量系统已预留但未完全实现,可能需要进一步开发
5.
背包系统与物品系统紧密相关,修改时需要考虑两者的兼容性
\ No newline at end of file
doc/context/itemmain_func.md
deleted
100644 → 0
View file @
894a4630
# itemmain.func.php 文件分析
## 文件概述
`itemmain.func.php`
是游戏系统中实现物品主系统的核心函数库。该文件包含了物品的查找、获取、使用、丢弃等核心功能,同时也处理陷阱、物品效果和特殊物品交互等机制。文件体积较大(近2000行),是游戏物品系统的主要实现。
## 主要函数列表
### 陷阱相关函数
#### calc_real_trap_obbs($num, $skill, $inf, $mode)
**功能**
:计算陷阱触发率
**参数**
:
-
`$num`
:陷阱数量
-
`$skill`
:玩家技能
-
`$inf`
:玩家状态
-
`$mode`
:计算模式
**处理流程**
:
1.
根据陷阱数量计算基础触发率
2.
根据玩家技能调整触发率
3.
根据玩家状态(如中毒、混乱等)调整触发率
4.
根据计算模式应用不同的修正
**返回值**
:最终的陷阱触发率
#### calc_trap_escape_rate($skill, $inf, $mode)
**功能**
:计算陷阱逃脱率
**参数**
:
-
`$skill`
:玩家技能
-
`$inf`
:玩家状态
-
`$mode`
:计算模式
**处理流程**
:
1.
根据玩家技能计算基础逃脱率
2.
根据玩家状态调整逃脱率
3.
根据计算模式应用不同的修正
**返回值**
:最终的陷阱逃脱率
### 物品查找与获取函数
#### itemfind($itm, $itmk, $itme, $itms, $itmsk, $sub)
**功能**
:查找物品
**参数**
:
-
`$itm`
:物品名称
-
`$itmk`
:物品类型
-
`$itme`
:物品效果
-
`$itms`
:物品耐久
-
`$itmsk`
:物品特殊属性
-
`$sub`
:子类型
**处理流程**
:
1.
检查物品参数是否有效
2.
根据物品类型和子类型确定查找方式
3.
执行查找逻辑
4.
返回查找结果
**返回值**
:查找结果(成功/失败)
#### itemget($itm, $itmk, $itme, $itms, $itmsk, $sub, $itemchoice=0)
**功能**
:获取物品
**参数**
:
-
`$itm`
:物品名称
-
`$itmk`
:物品类型
-
`$itme`
:物品效果
-
`$itms`
:物品耐久
-
`$itmsk`
:物品特殊属性
-
`$sub`
:子类型
-
`$itemchoice`
:物品选择
**处理流程**
:
1.
检查物品参数是否有效
2.
根据物品类型和子类型确定获取方式
3.
将物品添加到待获取列表
4.
处理物品获取的特殊效果
5.
更新玩家状态和成就
**返回值**
:获取结果(成功/失败)
### 物品使用函数
#### itemuse($itmn)
**功能**
:使用物品
**参数**
:
-
`$itmn`
:物品编号
**处理流程**
:
1.
获取物品信息
2.
根据物品类型确定使用方式
3.
执行物品使用逻辑
4.
处理物品使用后的效果
5.
更新物品耐久和玩家状态
**返回值**
:使用结果(成功/失败)
#### itemmix($itmn1, $itmn2)
**功能**
:合成物品
**参数**
:
-
`$itmn1`
:物品1编号
-
`$itmn2`
:物品2编号
**处理流程**
:
1.
获取两个物品的信息
2.
检查物品是否可以合成
3.
根据合成规则确定结果
4.
移除原材料物品
5.
添加合成结果物品
6.
更新玩家状态和成就
**返回值**
:合成结果(成功/失败)
### 物品丢弃函数
#### itemdrop($itmn)
**功能**
:丢弃物品
**参数**
:
-
`$itmn`
:物品编号
**处理流程**
:
1.
获取物品信息
2.
检查物品是否可以丢弃
3.
将物品添加到地图上
4.
从背包中移除物品
5.
更新玩家状态
**返回值**
:丢弃结果(成功/失败)
### 物品效果函数
#### itemeff($itmk, $itme, $itms, $itmsk)
**功能**
:计算物品效果
**参数**
:
-
`$itmk`
:物品类型
-
`$itme`
:物品效果
-
`$itms`
:物品耐久
-
`$itmsk`
:物品特殊属性
**处理流程**
:
1.
根据物品类型确定效果计算方式
2.
应用物品特殊属性的修正
3.
计算最终效果值
4.
返回效果值
**返回值**
:物品效果值
#### itembuff($itmk, $itmsk)
**功能**
:计算物品增益效果
**参数**
:
-
`$itmk`
:物品类型
-
`$itmsk`
:物品特殊属性
**处理流程**
:
1.
根据物品类型确定增益类型
2.
根据物品特殊属性确定增益值
3.
计算最终增益效果
4.
返回增益效果
**返回值**
:物品增益效果
### 特殊物品函数
#### trap_proc($trapname, $damage, $inf, $skill)
**功能**
:处理陷阱效果
**参数**
:
-
`$trapname`
:陷阱名称
-
`$damage`
:伤害值
-
`$inf`
:影响状态
-
`$skill`
:技能值
**处理流程**
:
1.
根据陷阱名称确定效果类型
2.
计算陷阱伤害和状态效果
3.
应用伤害和状态效果到玩家
4.
更新玩家状态和游戏日志
**返回值**
:处理结果(成功/失败)
#### box_proc($boxname, $boxtype)
**功能**
:处理箱子物品
**参数**
:
-
`$boxname`
:箱子名称
-
`$boxtype`
:箱子类型
**处理流程**
:
1.
根据箱子类型确定内容生成方式
2.
生成箱子内容物品
3.
将物品添加到待获取列表
4.
更新玩家状态和成就
**返回值**
:处理结果(成功/失败)
## 物品系统特点
1.
**多样化物品类型**
:支持武器、防具、药品、陷阱、箱子等多种物品类型
2.
**复杂的效果计算**
:根据物品类型、特殊属性和玩家状态计算物品效果
3.
**物品合成系统**
:支持物品合成,创造新的物品
4.
**陷阱机制**
:实现了复杂的陷阱触发和逃脱机制
5.
**箱子系统**
:实现了箱子开启和物品获取机制
6.
**物品交互**
:支持物品之间的交互和特殊效果
## 物品数据结构
物品系统使用以下数据结构:
1.
**物品基本属性**
:
-
`$itm`
:物品名称
-
`$itmk`
:物品类型
-
`$itme`
:物品效果
-
`$itms`
:物品耐久
-
`$itmsk`
:物品特殊属性
2.
**物品类型代码**
:
-
`W`
:武器
-
`D`
:防具
-
`H`
:药品
-
`P`
:陷阱
-
`B`
:箱子
-
等等
3.
**物品特殊属性**
:
-
`a`
-
`z`
:各种特殊效果
-
`A`
-
`Z`
:高级特殊效果
## 主要特点
1.
**复杂的物品系统**
:实现了丰富多样的物品类型和效果
2.
**深度的游戏机制**
:物品系统与战斗、状态、成就等系统深度集成
3.
**平衡性考虑**
:物品效果和获取难度经过平衡设计
4.
**扩展性**
:物品系统设计允许轻松添加新的物品类型和效果
5.
**随机性**
:物品生成和效果计算包含随机因素,增加游戏变化性
## 注意事项
1.
物品系统是游戏核心系统之一,修改需谨慎
2.
物品效果计算涉及多个参数,需要注意平衡性
3.
物品系统与背包系统、战斗系统等紧密相关,修改时需考虑兼容性
4.
特殊物品(如陷阱、箱子)有复杂的处理逻辑,修改时需全面测试
5.
物品合成系统需要维护合成规则的一致性和平衡性
\ No newline at end of file
doc/context/itemmix_func.md
deleted
100644 → 0
View file @
894a4630
# itemmix.func.php 文件分析
## 文件概述
`itemmix.func.php`
是游戏系统中处理物品合成的核心函数库。该文件包含了物品合成的检查、处理和结果生成等功能,是游戏物品系统的重要扩展。文件实现了多种合成机制,包括通常合成、同调合成和超量合成等特殊合成方式。
## 主要函数列表
### itemmix_rev($mlist, $itemselect=-1, &$data=NULL)
**功能**
:处理物品合成的主函数
**参数**
:
-
`$mlist`
:合成物品列表(物品在物品栏中的位置数组)
-
`$itemselect`
:选择的合成结果,默认为-1(未选择)
-
`&$data`
:玩家数据数组(引用传递),默认为NULL(使用全局$pdata)
**处理流程**
:
1.
检查合成队列的合法性
2.
获取可能的合成结果
3.
如果没有合成结果,显示无法合成的消息
4.
如果有多个合成结果,显示选择界面
5.
如果只有一个合成结果或已选择结果,执行合成操作
6.
特殊俱乐部(晶莹剔透)合成成功时扣除RP值
**返回值**
:无,直接修改传入的数据数组和全局变量
### itemmix_get_result($mlist, &$data=NULL)
**功能**
:获取物品合成的可能结果
**参数**
:
-
`$mlist`
:合成物品列表
-
`&$data`
:玩家数据数组(引用传递),默认为NULL
**处理流程**
:
1.
检查是否符合特殊合成条件(同调、超量等)
2.
检查是否符合普通合成配方
3.
返回所有可能的合成结果
**返回值**
:合成结果数组,如果无法合成则返回空数组
### itemmix_sync_check($mlist)
**功能**
:检查是否符合同调合成条件
**参数**
:
-
`$mlist`
:合成物品列表
**处理流程**
:
1.
检查物品列表中是否包含调整和非调整怪兽
2.
计算星级总和是否符合同调条件
3.
生成可能的同调合成结果
**返回值**
:同调合成结果数组,如果不符合条件则返回空数组
### itemmix_overlay_check($mlist)
**功能**
:检查是否符合超量合成条件
**参数**
:
-
`$mlist`
:合成物品列表
**处理流程**
:
1.
检查物品列表中的怪兽是否星级相同
2.
检查是否符合超量合成的其他条件
3.
生成可能的超量合成结果
**返回值**
:超量合成结果数组,如果不符合条件则返回空数组
### itemmix_proc($mlist, $minfo, $itmstr, &$data=NULL)
**功能**
:执行物品合成操作
**参数**
:
-
`$mlist`
:合成物品列表
-
`$minfo`
:合成结果信息
-
`$itmstr`
:合成物品名称字符串
-
`&$data`
:玩家数据数组(引用传递),默认为NULL
**处理流程**
:
1.
从物品栏中移除用于合成的物品
2.
根据合成结果信息创建新物品
3.
将新物品添加到物品栏
4.
显示合成成功的消息
5.
记录合成事件
6.
检查成就完成情况
**返回值**
:无,直接修改传入的数据数组和全局变量
## 合成系统特点
1.
**多种合成机制**
:支持通常合成、同调合成和超量合成等多种合成方式
2.
**星级系统**
:同调和超量合成使用星级系统计算合成结果
3.
**合成配方**
:使用配方系统定义可合成的物品组合
4.
**合成选择**
:当有多个可能的合成结果时,允许玩家选择
5.
**成就集成**
:合成系统与成就系统集成,记录合成成就
## 合成类型
文件支持三种主要的合成类型:
1.
**通常合成(normal)**
:基于固定配方的合成方式
2.
**同调合成(sync)**
:基于调整+非调整怪兽和星级总和的合成方式
3.
**超量合成(overlay)**
:基于相同星级怪兽的合成方式
## 主要特点
1.
**灵活的合成系统**
:支持多种合成机制和条件
2.
**物品栏集成**
:直接操作物品栏中的物品进行合成
3.
**结果选择**
:支持多结果合成时的选择界面
4.
**特殊俱乐部效果**
:某些俱乐部有特殊的合成效果
5.
**成就记录**
:记录合成事件,用于成就系统
## 注意事项
1.
合成系统依赖于物品系统的其他部分,如物品定义和物品栏管理
2.
同调和超量合成使用特殊的星级计算规则
3.
合成结果可能受到玩家状态和特殊条件的影响
4.
部分合成操作会消耗RP值(如晶莹剔透俱乐部)
5.
合成系统与成就系统紧密集成,合成操作可能触发成就完成
\ No newline at end of file
doc/context/messages_func.md
deleted
100644 → 0
View file @
894a4630
# messages.func.php 函数分析
`messages.func.php`
是消息系统函数库,负责处理游戏中的消息发送、接收和管理。
## 函数列表
### 消息发送和创建
#### `send_message($sender_id, $receiver_id, $subject, $content, $type = 'normal')`
-
**功能**
: 发送消息
-
**参数**
:
-
`$sender_id`
: 发送者ID
-
`$receiver_id`
: 接收者ID
-
`$subject`
: 消息主题
-
`$content`
: 消息内容
-
`$type`
: 消息类型
-
**返回值**
: 消息ID或错误信息
#### `send_system_message($receiver_id, $subject, $content, $type = 'system')`
-
**功能**
: 发送系统消息
-
**参数**
:
-
`$receiver_id`
: 接收者ID
-
`$subject`
: 消息主题
-
`$content`
: 消息内容
-
`$type`
: 消息类型
-
**返回值**
: 消息ID或错误信息
#### `send_group_message($sender_id, $group_id, $subject, $content, $type = 'group')`
-
**功能**
: 发送群组消息
-
**参数**
:
-
`$sender_id`
: 发送者ID
-
`$group_id`
: 群组ID
-
`$subject`
: 消息主题
-
`$content`
: 消息内容
-
`$type`
: 消息类型
-
**返回值**
: 消息ID或错误信息
#### `broadcast_message($sender_id, $subject, $content, $receivers = array(), $type = 'broadcast')`
-
**功能**
: 广播消息
-
**参数**
:
-
`$sender_id`
: 发送者ID
-
`$subject`
: 消息主题
-
`$content`
: 消息内容
-
`$receivers`
: 接收者列表
-
`$type`
: 消息类型
-
**返回值**
: 发送结果
### 消息获取和查询
#### `get_message($message_id, $user_id = 0)`
-
**功能**
: 获取消息
-
**参数**
:
-
`$message_id`
: 消息ID
-
`$user_id`
: 用户ID
-
**返回值**
: 消息信息数组
#### `get_user_messages($user_id, $folder = 'inbox', $status = 0, $limit = 20, $offset = 0)`
-
**功能**
: 获取用户消息
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$folder`
: 文件夹
-
`$status`
: 消息状态
-
`$limit`
: 限制数量
-
`$offset`
: 偏移量
-
**返回值**
: 消息列表数组
#### `get_unread_messages_count($user_id)`
-
**功能**
: 获取未读消息数量
-
**参数**
:
`$user_id`
: 用户ID
-
**返回值**
: 未读消息数量
#### `search_messages($user_id, $keywords, $folder = 'all', $limit = 20, $offset = 0)`
-
**功能**
: 搜索消息
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$keywords`
: 关键词
-
`$folder`
: 文件夹
-
`$limit`
: 限制数量
-
`$offset`
: 偏移量
-
**返回值**
: 搜索结果数组
### 消息状态和操作
#### `mark_message_read($message_id, $user_id)`
-
**功能**
: 标记消息为已读
-
**参数**
:
-
`$message_id`
: 消息ID
-
`$user_id`
: 用户ID
-
**返回值**
: 标记结果
#### `mark_all_messages_read($user_id, $folder = 'inbox')`
-
**功能**
: 标记所有消息为已读
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$folder`
: 文件夹
-
**返回值**
: 标记结果
#### `delete_message($message_id, $user_id, $permanently = false)`
-
**功能**
: 删除消息
-
**参数**
:
-
`$message_id`
: 消息ID
-
`$user_id`
: 用户ID
-
`$permanently`
: 是否永久删除
-
**返回值**
: 删除结果
#### `empty_trash($user_id)`
-
**功能**
: 清空垃圾箱
-
**参数**
:
`$user_id`
: 用户ID
-
**返回值**
: 清空结果
### 消息回复和转发
#### `reply_message($original_message_id, $user_id, $content, $quote_original = true)`
-
**功能**
: 回复消息
-
**参数**
:
-
`$original_message_id`
: 原始消息ID
-
`$user_id`
: 用户ID
-
`$content`
: 回复内容
-
`$quote_original`
: 是否引用原消息
-
**返回值**
: 回复结果
#### `forward_message($message_id, $user_id, $receiver_id, $additional_content = '')`
-
**功能**
: 转发消息
-
**参数**
:
-
`$message_id`
: 消息ID
-
`$user_id`
: 用户ID
-
`$receiver_id`
: 接收者ID
-
`$additional_content`
: 附加内容
-
**返回值**
: 转发结果
#### `create_conversation($user_id, $participants, $subject, $initial_message)`
-
**功能**
: 创建对话
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$participants`
: 参与者列表
-
`$subject`
: 对话主题
-
`$initial_message`
: 初始消息
-
**返回值**
: 对话ID或错误信息
### 消息通知和提醒
#### `notify_new_message($user_id, $message_id)`
-
**功能**
: 通知新消息
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$message_id`
: 消息ID
-
**返回值**
: 通知结果
#### `get_message_notifications($user_id, $limit = 10)`
-
**功能**
: 获取消息通知
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$limit`
: 限制数量
-
**返回值**
: 通知列表数组
#### `clear_message_notification($notification_id, $user_id)`
-
**功能**
: 清除消息通知
-
**参数**
:
-
`$notification_id`
: 通知ID
-
`$user_id`
: 用户ID
-
**返回值**
: 清除结果
#### `clear_all_message_notifications($user_id)`
-
**功能**
: 清除所有消息通知
-
**参数**
:
`$user_id`
: 用户ID
-
**返回值**
: 清除结果
### 消息附件和格式
#### `add_message_attachment($message_id, $file_path, $file_name, $file_type)`
-
**功能**
: 添加消息附件
-
**参数**
:
-
`$message_id`
: 消息ID
-
`$file_path`
: 文件路径
-
`$file_name`
: 文件名
-
`$file_type`
: 文件类型
-
**返回值**
: 附件ID或错误信息
#### `get_message_attachments($message_id)`
-
**功能**
: 获取消息附件
-
**参数**
:
`$message_id`
: 消息ID
-
**返回值**
: 附件列表数组
#### `format_message_content($content, $format = 'html')`
-
**功能**
: 格式化消息内容
-
**参数**
:
-
`$content`
: 消息内容
-
`$format`
: 格式类型
-
**返回值**
: 格式化后的内容
#### `parse_message_bbcode($content)`
-
**功能**
: 解析消息BBCode
-
**参数**
:
`$content`
: 消息内容
-
**返回值**
: 解析后的内容
### 消息权限和安全
#### `can_send_message($sender_id, $receiver_id)`
-
**功能**
: 检查是否可以发送消息
-
**参数**
:
-
`$sender_id`
: 发送者ID
-
`$receiver_id`
: 接收者ID
-
**返回值**
: 布尔值,表示是否可以发送
#### `can_read_message($user_id, $message_id)`
-
**功能**
: 检查是否可以阅读消息
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$message_id`
: 消息ID
-
**返回值**
: 布尔值,表示是否可以阅读
#### `block_user_messages($user_id, $blocked_user_id)`
-
**功能**
: 屏蔽用户消息
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$blocked_user_id`
: 被屏蔽用户ID
-
**返回值**
: 屏蔽结果
#### `unblock_user_messages($user_id, $blocked_user_id)`
-
**功能**
: 解除用户消息屏蔽
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$blocked_user_id`
: 被屏蔽用户ID
-
**返回值**
: 解除结果
这些函数共同构成了一个完整的消息系统,用于处理游戏中的用户间通信、系统通知和消息管理等功能。
\ No newline at end of file
doc/context/news_func.md
deleted
100644 → 0
View file @
894a4630
# news.func.php 文件分析
## 文件概述
`news.func.php`
是游戏系统中负责处理和显示游戏新闻(事件通知)的函数库。该文件主要包含了解析和格式化游戏中各种事件通知的函数,将数据库中存储的事件记录转换为可读的HTML格式文本,用于在游戏界面上显示。
## 函数列表
### nparse_news($start = 0, $range = 0)
**功能**
:解析并格式化游戏新闻记录
**参数**
:
-
`$start`
:起始记录位置,默认为0
-
`$range`
:获取记录的数量,默认为0(使用系统设置的
`$newslimit`
)
**处理流程**
:
1.
从数据库中获取指定范围的新闻记录
2.
按日期分组显示新闻
3.
根据新闻类型进行特殊处理(如道具名称解析)
4.
为特定类型的新闻添加称号显示
5.
根据新闻类型生成不同格式的HTML输出
**返回值**
:格式化后的HTML格式新闻列表
## 新闻类型
文件中处理了大量不同类型的游戏事件新闻,包括但不限于:
1.
**游戏状态类**
:
-
`newgame`
:游戏开始
-
`newroomgame`
:房间游戏开始
-
`gameover`
:游戏结束
-
`roomgameover`
:房间游戏结束
-
`combo`
:进入连斗状态
-
`comboupdate`
:连斗状态更新
2.
**玩家行为类**
:
-
`newpc`
:玩家进入游戏
-
`newgm`
:管理员进入游戏
-
`teammake`
:创建队伍
-
`teamjoin`
:加入队伍
-
`teamquit`
:退出队伍
3.
**物品相关类**
:
-
`senditem`
:赠送物品
-
`itemmix`
:合成物品
-
`syncmix`
:同调合成
-
`overmix`
:超量合成
-
`present`
:打开礼物盒
4.
**战斗相关类**
:
-
多种死亡类型(
`death1`
到
`death28`
等)
-
攻击事件(
`attack`
)
-
反击事件(
`counter`
)
-
技能使用(
`skill_`
开头)
5.
**环境相关类**
:
-
天气变化(
`wth`
开头)
-
禁区增加(
`addarea`
)
-
禁区警告(
`areawarn`
)
6.
**特殊事件类**
:
-
黑客入侵(
`hack`
)
-
唱歌(
`song`
)
-
复活(
`revival`
)
-
陷阱触发(
`trap`
)
## 特殊处理
1.
**道具名称解析**
:
-
对于死亡、赠送道具、毒补给、陷阱等事件中的道具名称进行特殊解析
-
使用
`parse_nameinfo_desc()`
函数处理道具名称
2.
**称号显示**
:
-
对于特定类型的新闻,显示玩家的称号
-
使用
`titles_get_desc()`
函数获取称号描述
3.
**日期分组**
:
-
按日期对新闻进行分组显示
-
每个新日期前显示日期标题
4.
**HTML格式化**
:
-
不同类型的新闻使用不同的CSS类进行样式设置
-
重要信息使用不同颜色突出显示
## 主要特点
1.
**事件多样性**
:处理游戏中各种类型的事件通知
2.
**HTML格式化**
:生成带有CSS样式的HTML输出
3.
**时间显示**
:显示事件发生的具体时间
4.
**分类处理**
:根据不同类型的事件使用不同的处理逻辑
5.
**称号集成**
:与游戏称号系统集成,显示玩家称号
## 注意事项
1.
该文件主要处理游戏事件的显示,不涉及事件的生成和记录
2.
文件中包含大量条件判断,用于处理不同类型的新闻
3.
输出包含HTML标签,需要在前端直接输出而不需要额外转义
4.
文件中有一些注释掉的代码,可能是旧版本的实现或调试代码
5.
文件中有一个注释"为什么会有两个news.func.php???",可能存在文件重复或版本问题
\ No newline at end of file
doc/context/resources_func.md
deleted
100644 → 0
View file @
894a4630
# resources.func.php 文件分析
## 文件概述
`resources.func.php`
是游戏系统中负责处理游戏资源和配置的函数库。该文件包含了获取游戏装备列表、合成配方、NPC信息、成就系统等游戏资源的函数,是游戏资源管理的核心组件。
## 函数列表
### get_equip_list($mode=0)
**功能**
:获取装备列表
**参数**
:
-
`$mode`
:模式选择,默认为0
-
0:返回装备类型数组
-
1:返回装备类型代码映射数组
**处理流程**
:
1.
定义两种装备列表格式
-
基本格式:
`wep`
,
`wep2`
,
`arb`
,
`arh`
,
`ara`
,
`arf`
,
`art`
-
代码映射格式:
`W`
=>
`wep`
,
`DB`
=>
`arb`
等
**返回值**
:根据模式返回不同格式的装备列表数组
### get_mixinfo()
**功能**
:获取物品合成配方信息
**参数**
:无
**处理流程**
:
1.
加载基本合成配方配置文件
2.
检查并加载玩家自定义合成配方(如果存在)
3.
检查并加载每局随机合成配方(如果存在)
4.
合并所有合成配方
**返回值**
:合成配方信息数组
### get_syncmixinfo()
**功能**
:获取同调合成配方信息
**参数**
:无
**处理流程**
:
1.
加载同调合成配置文件
2.
解析文件内容,将每行转换为数组
**返回值**
:同调合成配方数组
### get_overlaymixinfo()
**功能**
:获取超量合成配方信息
**参数**
:无
**处理流程**
:
1.
加载超量合成配置文件
2.
解析文件内容,将每行转换为数组
**返回值**
:超量合成配方数组
### get_addnpcinfo()
**功能**
:获取NPC添加信息
**参数**
:无
**处理流程**
:
1.
加载NPC添加配置文件
**返回值**
:NPC添加信息数组
### get_npcinit()
**功能**
:获取NPC初始化信息
**参数**
:无
**处理流程**
:
1.
加载NPC初始化配置文件
**返回值**
:NPC初始化信息数组
### get_achtype($mode=0)
**功能**
:获取成就类型信息
**参数**
:
-
`$mode`
:模式选择,默认为0
-
0:返回成就类型
-
1:返回日记类型
**处理流程**
:
1.
加载成就系统配置文件
2.
根据模式返回不同类型的信息
**返回值**
:成就类型或日记类型数组
### get_hidden_achtype()
**功能**
:获取隐藏成就类型信息
**参数**
:无
**处理流程**
:
1.
加载成就系统配置文件
**返回值**
:隐藏成就类型数组
### get_achlist($a=NULL)
**功能**
:获取成就列表
**参数**
:
-
`$a`
:成就类型,默认为NULL(获取所有类型)
**处理流程**
:
1.
加载成就系统配置文件
2.
如果指定了成就类型,返回该类型的成就列表
3.
否则返回所有成就列表
**返回值**
:成就列表数组
### get_set_items()
**功能**
:获取套装物品信息
**参数**
:无
**处理流程**
:
1.
加载套装物品配置文件
**返回值**
:套装物品信息数组
### get_set_items_info()
**功能**
:获取套装效果信息
**参数**
:无
**处理流程**
:
1.
加载套装物品配置文件
**返回值**
:套装效果信息数组
## 主要特点
1.
**资源加载**
:提供统一的接口加载游戏各种资源配置
2.
**配置整合**
:整合基本配置、自定义配置和随机配置
3.
**多种合成系统**
:支持基本合成、同调合成和超量合成
4.
**成就系统**
:提供成就系统相关资源的访问
5.
**套装系统**
:提供套装系统相关资源的访问
## 注意事项
1.
该文件主要负责资源加载,不涉及资源的处理和使用
2.
文件中的函数大多依赖外部配置文件,这些文件路径通过
`config()`
函数获取
3.
文件顶部有一个TODO注释:"TODO: NO GLOBAL",可能计划移除全局变量的使用
4.
合成系统支持三种不同的合成方式,每种方式有独立的配置文件
5.
成就系统支持普通成就和隐藏成就两种类型
\ No newline at end of file
doc/context/revattr_func.md
deleted
100644 → 0
View file @
894a4630
# revattr.func.php 文件分析
## 文件概述
`revattr.func.php`
是游戏系统中处理角色属性计算的核心函数库。该文件使用命名空间
`revattr`
封装了大量与角色属性、战斗属性计算相关的函数,是游戏战斗系统的基础组件之一。文件体积较大(约2399行),包含了复杂的属性计算逻辑。
## 主要函数列表
### get_wep_kind(&$pa, $wep_kind='', $pd_range=NULL)
**功能**
:获取真实的武器攻击类别
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`$wep_kind`
:预设的攻击方式,默认为空(自动判断)
-
`$pd_range`
:防御者的距离,默认为NULL
**处理流程**
:
1.
检查是否为双系武器(具有两种攻击模式的武器)
2.
如果输入了预设攻击方式,检查是否合法
3.
如果没有输入预设攻击方式,自动选择:
-
射系武器没有子弹时,自动选用第二攻击模式
-
根据策略模式(射程优先、熟练优先)选择攻击方式
**返回值**
:无,直接修改传入的玩家数据数组
### get_wep_range(&$pa)
**功能**
:获取武器的攻击距离
**参数**
:
-
`&$pa`
:玩家数据(引用传递)
**处理流程**
:
1.
根据武器类型确定基础攻击距离
2.
应用各种修正(技能、状态、装备等)
**返回值**
:武器的攻击距离值
### get_base_att(&$pa, &$pd, $active, $tooltip=0)
**功能**
:计算基础攻击力
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:是否为主动攻击
-
`$tooltip`
:是否为提示信息,默认为0
**处理流程**
:
1.
获取武器类型和攻击方式
2.
计算基础攻击力(基于武器和属性)
3.
应用各种攻击力修正
**返回值**
:计算出的基础攻击力值
### get_base_def(&$pa, &$pd, $active, $tooltip=0)
**功能**
:计算基础防御力
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:是否为主动攻击
-
`$tooltip`
:是否为提示信息,默认为0
**处理流程**
:
1.
获取防具类型和防御方式
2.
计算基础防御力(基于防具和属性)
3.
应用各种防御力修正
**返回值**
:计算出的基础防御力值
### get_original_dmg_rev(&$pa, &$pd, $active)
**功能**
:计算原始伤害值
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:是否为主动攻击
**处理流程**
:
1.
获取攻击力和防御力
2.
根据武器类型应用不同的伤害计算公式
3.
考虑攻击力和防御力的差值
4.
应用武器强度修正
**返回值**
:计算出的原始伤害值
### get_final_dmg_p(&$pa, &$pd, $active)
**功能**
:计算最终伤害百分比修正
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:是否为主动攻击
**处理流程**
:
1.
获取原始伤害值
2.
应用各种伤害百分比修正(技能、状态、装备等)
3.
计算暴击和特殊效果
**返回值**
:最终的伤害百分比修正值
## 属性计算系统
文件实现了复杂的属性计算系统,包括:
1.
**武器属性**
:不同武器类型的特殊属性和效果
2.
**防具属性**
:不同防具类型的特殊属性和效果
3.
**技能影响**
:技能对属性的各种修正
4.
**状态效果**
:各种状态对属性的影响
5.
**装备效果**
:装备对属性的加成和修正
6.
**伤害计算**
:复杂的伤害计算公式和修正
## 主要特点
1.
**命名空间封装**
:使用PHP命名空间封装函数,提高代码组织性
2.
**复杂的属性计算**
:实现了详细的属性计算逻辑,考虑多种因素
3.
**引用传递**
:大量使用引用传递参数,直接修改数据
4.
**模块化设计**
:将不同的属性计算逻辑分解为独立函数
5.
**事件系统**
:使用prepare_events和finish_events函数处理属性计算的前后处理
## 注意事项
1.
文件使用了命名空间,需要注意函数调用方式
2.
属性计算逻辑复杂,涉及多种公式和条件判断
3.
函数之间存在较多依赖关系,需要小心修改
4.
代码中包含大量游戏平衡性相关的常数和公式
5.
文件依赖于其他文件,如revattr.calc.php和revattr_extra.func.php
\ No newline at end of file
doc/context/revbattle_func.md
deleted
100644 → 0
View file @
894a4630
# revbattle.func.php 文件分析
## 文件概述
`revbattle.func.php`
是游戏系统中实现改良版战斗遭遇系统的核心函数库。该文件使用命名空间
`revbattle`
封装了战斗遭遇的各个阶段,包括战斗准备、敌人发现、战斗逃跑和战斗界面初始化等功能。文件与
`revcombat.func.php`
和
`revbattle.calc.php`
配合使用,构成了游戏的战斗遭遇机制。
## 主要函数列表
### revbattle_prepare($command, $message=NULL, $data=NULL)
**功能**
:处理从界面传回的战斗相关指令
**参数**
:
-
`$command`
:战斗命令
-
`$message`
:消息内容,默认为NULL
-
`$data`
:玩家数据,默认为NULL(使用全局$pdata)
**处理流程**
:
1.
检查是否存在战斗动作
2.
检查是否遇敌
3.
获取敌人数据
4.
检查敌人是否处于当前位置
5.
根据战斗命令执行相应操作(如攻击、逃跑等)
6.
更新玩家和敌人状态
**返回值**
:无,直接修改全局变量
### findenemy_rev($edata)
**功能**
:处理发现敌人的逻辑
**参数**
:
-
`$edata`
:敌人数据
**处理流程**
:
1.
检查敌人是否可被发现
2.
计算发现几率
3.
如果发现成功,初始化战斗界面
4.
设置战斗相关状态和变量
5.
更新玩家和敌人数据
**返回值**
:无,直接修改全局变量
### escape_from_enemy(&$pa, &$pd)
**功能**
:处理从敌人处逃跑的逻辑
**参数**
:
-
`&$pa`
:玩家数据(引用传递)
-
`&$pd`
:敌人数据(引用传递)
**处理流程**
:
1.
计算逃跑成功率
2.
判断是否逃跑成功
3.
如果成功,更新玩家状态和位置
4.
如果失败,可能触发战斗
5.
生成相应的日志消息
**返回值**
:无,直接修改传入的数据
### findneut(&$edata, $kind=0)
**功能**
:处理发现中立角色的逻辑
**参数**
:
-
`&$edata`
:中立角色数据(引用传递)
-
`$kind`
:类型,默认为0
**处理流程**
:
1.
检查中立角色是否可被发现
2.
计算发现几率
3.
如果发现成功,初始化交互界面
4.
设置相关状态和变量
5.
更新玩家和中立角色数据
**返回值**
:无,直接修改传入的数据和全局变量
### init_battle_title($pa, $pd, $ismeet=0)
**功能**
:初始化战斗标题
**参数**
:
-
`$pa`
:玩家数据
-
`$pd`
:敌人数据
-
`$ismeet`
:是否为初次遇见,默认为0
**处理流程**
:
1.
根据玩家和敌人的状态生成战斗标题
2.
考虑特殊情况(如先制攻击、突袭等)
3.
设置全局战斗标题变量
**返回值**
:无,直接修改全局变量
### init_battle_log($pa, $pd, $ismeet=0)
**功能**
:初始化战斗日志
**参数**
:
-
`$pa`
:玩家数据
-
`$pd`
:敌人数据
-
`$ismeet`
:是否为初次遇见,默认为0
**处理流程**
:
1.
根据玩家和敌人的状态生成战斗日志
2.
考虑特殊情况(如先制攻击、突袭等)
3.
添加战斗开始的描述信息
4.
更新全局日志变量
**返回值**
:无,直接修改全局变量
## 战斗遭遇系统特点
1.
**命名空间封装**
:使用PHP命名空间封装战斗遭遇相关函数,提高代码组织性
2.
**引用传递**
:大量使用引用传递参数,直接修改玩家数据
3.
**遭遇流程分离**
:将战斗遭遇流程分为准备、发现、逃跑和界面初始化等阶段
4.
**随机性**
:使用随机因素决定发现敌人和逃跑的成功率
5.
**状态管理**
:详细处理战斗遭遇中的各种状态和效果
## 战斗遭遇流程
改良版战斗遭遇系统实现了完整的遭遇流程:
1.
**指令处理**
:处理从界面传回的战斗相关指令
2.
**敌人检查**
:检查敌人是否存在和是否在当前位置
3.
**发现机制**
:计算发现敌人的几率和结果
4.
**逃跑机制**
:计算逃跑成功率和结果
5.
**界面初始化**
:初始化战斗标题和日志
6.
**战斗触发**
:触发战斗系统执行战斗流程
7.
**状态更新**
:更新玩家和敌人的状态
## 主要特点
1.
**完整的遭遇系统**
:实现了从敌人检查到战斗触发的完整流程
2.
**多文件协作**
:与revcombat.func.php等文件协作完成战斗功能
3.
**随机性设计**
:通过随机因素增加游戏的不确定性和挑战性
4.
**状态管理**
:详细处理遭遇中的各种状态和效果
5.
**日志记录**
:详细记录遭遇过程,提供战斗反馈
## 注意事项
1.
战斗遭遇系统依赖于多个相关文件,修改时需要考虑依赖关系
2.
遭遇流程涉及随机因素,可能导致不同的游戏体验
3.
使用命名空间封装,调用时需要注意命名空间前缀
4.
大量使用引用传递,修改函数内部会直接影响外部数据
5.
遭遇平衡性涉及多个参数和公式,调整需谨慎
\ No newline at end of file
doc/context/revcombat_func.md
deleted
100644 → 0
View file @
894a4630
# revcombat.func.php 文件分析
## 文件概述
`revcombat.func.php`
是游戏系统中实现改良版战斗系统的核心函数库。该文件使用命名空间
`revcombat`
封装了战斗流程的各个阶段,包括战斗准备、战斗执行、攻击处理和战斗结果处理等功能。文件与多个相关文件配合使用,构成了游戏的核心战斗机制。
## 主要函数列表
### rev_combat_prepare(&$pa, &$pd, $active, $wep_kind='', $log_print=1)
**功能**
:战斗准备,初始化战斗环境和数据
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:当前主视角是否为攻击者(1为攻击者,0为防御者)
-
`$wep_kind`
:武器类型,默认为空(自动判断)
-
`$log_print`
:是否显示战斗界面,默认为1
**处理流程**
:
1.
格式化双方的俱乐部参数、武器参数和防具参数
2.
根据active值决定战斗界面的显示方式
3.
初始化战斗界面和战斗标题
4.
准备战斗相关的数据和状态
**返回值**
:无,直接修改传入的玩家数据
### rev_combat(&$pa, &$pd, $active, $log_print=1)
**功能**
:执行战斗流程
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:当前主视角是否为攻击者
-
`$log_print`
:是否显示战斗日志,默认为1
**处理流程**
:
1.
检查战斗条件(如是否已死亡、是否可战斗等)
2.
处理先制攻击和反击机制
3.
执行攻击流程
4.
处理战斗结果
5.
更新玩家状态和数据
**返回值**
:无,直接修改传入的玩家数据
### rev_attack(&$pa, &$pd, $active=1)
**功能**
:处理攻击逻辑
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:是否为主动攻击,默认为1
**处理流程**
:
1.
计算攻击命中率
2.
判断攻击是否命中
3.
如果命中,计算伤害值
4.
应用伤害和特殊效果
5.
处理武器和防具的损耗
6.
更新战斗状态和日志
**返回值**
:无,直接修改传入的玩家数据
### rev_combat_result(&$pa, &$pd, $active)
**功能**
:处理战斗结果
**参数**
:
-
`&$pa`
:攻击者的玩家数据(引用传递)
-
`&$pd`
:防御者的玩家数据(引用传递)
-
`$active`
:当前主视角是否为攻击者
**处理流程**
:
1.
检查是否有玩家死亡
2.
如果有玩家死亡,处理死亡相关逻辑
3.
更新玩家经验值和等级
4.
处理战利品和掉落物品
5.
更新战斗统计数据
6.
生成战斗结果日志
**返回值**
:无,直接修改传入的玩家数据
### checkdmg($p1, $p2, $d)
**功能**
:检查伤害值的合法性
**参数**
:
-
`$p1`
:攻击者的玩家数据
-
`$p2`
:防御者的玩家数据
-
`$d`
:伤害值
**处理流程**
:
1.
检查伤害值是否为合法数值
2.
检查伤害值是否超出合理范围
3.
如果不合法,记录异常日志
**返回值**
:处理后的伤害值
## 战斗系统特点
1.
**命名空间封装**
:使用PHP命名空间封装战斗相关函数,提高代码组织性
2.
**引用传递**
:大量使用引用传递参数,直接修改玩家数据
3.
**战斗流程分离**
:将战斗流程分为准备、执行、攻击和结果处理等阶段
4.
**视角切换**
:支持不同视角(攻击者/防御者)的战斗界面显示
5.
**战斗日志**
:详细记录战斗过程和结果
## 战斗流程
改良版战斗系统实现了完整的战斗流程:
1.
**战斗准备**
:初始化战斗环境和数据
2.
**先制判断**
:确定先制攻击和反击机制
3.
**攻击执行**
:计算命中率、伤害值和特殊效果
4.
**伤害应用**
:应用伤害和状态效果
5.
**装备损耗**
:处理武器和防具的损耗
6.
**战斗结果**
:处理死亡、经验值和战利品
7.
**数据更新**
:更新玩家状态和战斗统计
## 主要特点
1.
**完整的战斗系统**
:实现了从战斗准备到结果处理的完整流程
2.
**多文件协作**
:与多个相关文件(如revattr.func.php)协作完成战斗功能
3.
**参数化设计**
:通过参数控制战斗流程的各个方面
4.
**状态管理**
:详细处理战斗中的各种状态和效果
5.
**日志记录**
:详细记录战斗过程,提供战斗反馈
## 注意事项
1.
战斗系统依赖于多个相关文件,修改时需要考虑依赖关系
2.
战斗流程复杂,涉及多个函数和计算公式
3.
使用命名空间封装,调用时需要注意命名空间前缀
4.
大量使用引用传递,修改函数内部会直接影响外部数据
5.
战斗平衡性涉及多个参数和公式,调整需谨慎
\ No newline at end of file
doc/context/roommng_func.md
deleted
100644 → 0
View file @
894a4630
# roommng.func.php 函数分析
`roommng.func.php`
是房间管理函数库,负责处理游戏中房间的创建、管理和操作。
## 函数列表
### 房间创建和初始化
#### `create_room($owner_id, $room_name, $room_type, $password = '', $max_players = 0, $game_mode = 0)`
-
**功能**
: 创建新房间
-
**参数**
:
-
`$owner_id`
: 房主ID
-
`$room_name`
: 房间名称
-
`$room_type`
: 房间类型
-
`$password`
: 房间密码
-
`$max_players`
: 最大玩家数
-
`$game_mode`
: 游戏模式
-
**返回值**
: 房间ID或错误信息
#### `init_room($room_id, $game_settings = array())`
-
**功能**
: 初始化房间
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$game_settings`
: 游戏设置
-
**返回值**
: 初始化结果
#### `close_room($room_id, $reason = '')`
-
**功能**
: 关闭房间
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$reason`
: 关闭原因
-
**返回值**
: 关闭结果
#### `reset_room($room_id)`
-
**功能**
: 重置房间状态
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 重置结果
### 房间信息和状态
#### `get_room_info($room_id)`
-
**功能**
: 获取房间信息
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 房间信息数组
#### `get_room_list($type = 0, $status = 0, $limit = 0)`
-
**功能**
: 获取房间列表
-
**参数**
:
-
`$type`
: 房间类型
-
`$status`
: 房间状态
-
`$limit`
: 限制数量
-
**返回值**
: 房间列表数组
#### `update_room_status($room_id, $status)`
-
**功能**
: 更新房间状态
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$status`
: 新状态
-
**返回值**
: 更新结果
#### `update_room_settings($room_id, $settings)`
-
**功能**
: 更新房间设置
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$settings`
: 新设置
-
**返回值**
: 更新结果
### 玩家管理
#### `join_room($user_id, $room_id, $password = '')`
-
**功能**
: 玩家加入房间
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$room_id`
: 房间ID
-
`$password`
: 房间密码
-
**返回值**
: 加入结果
#### `leave_room($user_id, $room_id)`
-
**功能**
: 玩家离开房间
-
**参数**
:
-
`$user_id`
: 用户ID
-
`$room_id`
: 房间ID
-
**返回值**
: 离开结果
#### `kick_player($room_id, $user_id, $reason = '')`
-
**功能**
: 踢出玩家
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
`$reason`
: 踢出原因
-
**返回值**
: 踢出结果
#### `get_room_players($room_id)`
-
**功能**
: 获取房间内的玩家
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 玩家列表数组
### 房间操作和控制
#### `start_room_game($room_id)`
-
**功能**
: 开始房间游戏
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 开始结果
#### `end_room_game($room_id, $result = array())`
-
**功能**
: 结束房间游戏
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$result`
: 游戏结果
-
**返回值**
: 结束结果
#### `pause_room_game($room_id)`
-
**功能**
: 暂停房间游戏
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 暂停结果
#### `resume_room_game($room_id)`
-
**功能**
: 恢复房间游戏
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 恢复结果
### 房间通信和消息
#### `send_room_message($room_id, $user_id, $message, $type = 'chat')`
-
**功能**
: 发送房间消息
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
`$message`
: 消息内容
-
`$type`
: 消息类型
-
**返回值**
: 发送结果
#### `broadcast_room_event($room_id, $event_type, $event_data)`
-
**功能**
: 广播房间事件
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$event_type`
: 事件类型
-
`$event_data`
: 事件数据
-
**返回值**
: 广播结果
#### `get_room_messages($room_id, $limit = 20, $offset = 0)`
-
**功能**
: 获取房间消息
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$limit`
: 限制数量
-
`$offset`
: 偏移量
-
**返回值**
: 消息列表数组
#### `notify_room_change($room_id, $change_type, $change_data)`
-
**功能**
: 通知房间变化
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$change_type`
: 变化类型
-
`$change_data`
: 变化数据
-
**返回值**
: 通知结果
### 房间权限和检查
#### `check_room_password($room_id, $password)`
-
**功能**
: 检查房间密码
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$password`
: 密码
-
**返回值**
: 布尔值,表示密码是否正确
#### `is_room_owner($room_id, $user_id)`
-
**功能**
: 检查用户是否为房主
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
**返回值**
: 布尔值,表示是否为房主
#### `can_join_room($room_id, $user_id)`
-
**功能**
: 检查用户是否可以加入房间
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
**返回值**
: 布尔值,表示是否可以加入
#### `can_start_game($room_id, $user_id)`
-
**功能**
: 检查用户是否可以开始游戏
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
**返回值**
: 布尔值,表示是否可以开始游戏
### 房间队伍和分组
#### `create_team($room_id, $team_name, $team_color = '')`
-
**功能**
: 创建队伍
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$team_name`
: 队伍名称
-
`$team_color`
: 队伍颜色
-
**返回值**
: 队伍ID或错误信息
#### `join_team($room_id, $user_id, $team_id)`
-
**功能**
: 加入队伍
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
`$team_id`
: 队伍ID
-
**返回值**
: 加入结果
#### `leave_team($room_id, $user_id)`
-
**功能**
: 离开队伍
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$user_id`
: 用户ID
-
**返回值**
: 离开结果
#### `get_room_teams($room_id)`
-
**功能**
: 获取房间队伍
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 队伍列表数组
### 房间设置和配置
#### `set_room_game_mode($room_id, $game_mode)`
-
**功能**
: 设置房间游戏模式
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$game_mode`
: 游戏模式
-
**返回值**
: 设置结果
#### `set_room_map($room_id, $map_id)`
-
**功能**
: 设置房间地图
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$map_id`
: 地图ID
-
**返回值**
: 设置结果
#### `set_room_options($room_id, $options)`
-
**功能**
: 设置房间选项
-
**参数**
:
-
`$room_id`
: 房间ID
-
`$options`
: 选项数组
-
**返回值**
: 设置结果
#### `get_room_settings($room_id)`
-
**功能**
: 获取房间设置
-
**参数**
:
`$room_id`
: 房间ID
-
**返回值**
: 设置数组
这些函数共同构成了一个完整的房间管理系统,用于处理游戏中的房间创建、玩家管理、游戏控制和通信等功能。
\ No newline at end of file
doc/context/special_func.md
deleted
100644 → 0
View file @
894a4630
# special.func.php 文件分析
## 文件概述
`special.func.php`
是游戏系统中实现特殊功能和事件的核心函数库。该文件包含了游戏中各种特殊事件、NPC互动、特殊地点效果以及游戏机制的实现。这些特殊功能丰富了游戏体验,增加了游戏的随机性和趣味性。
## 主要函数列表
### 特殊事件函数
#### event_area($atime)
**功能**
:处理区域特殊事件
**参数**
:
-
`$atime`
:事件时间
**处理流程**
:
1.
根据当前区域和时间确定可能触发的事件
2.
计算事件触发概率
3.
随机选择一个事件触发
4.
执行事件效果
5.
更新玩家状态和游戏日志
**返回值**
:事件处理结果
#### event_weather($wtime)
**功能**
:处理天气特殊事件
**参数**
:
-
`$wtime`
:天气时间
**处理流程**
:
1.
根据当前天气和时间确定可能触发的事件
2.
计算事件触发概率
3.
随机选择一个事件触发
4.
执行事件效果
5.
更新玩家状态和游戏日志
**返回值**
:事件处理结果
### NPC互动函数
#### npc_talk($nid, $dialogue)
**功能**
:处理与NPC的对话
**参数**
:
-
`$nid`
:NPC ID
-
`$dialogue`
:对话选项
**处理流程**
:
1.
获取NPC信息
2.
根据对话选项确定对话内容
3.
处理对话可能触发的事件
4.
更新NPC状态和玩家状态
5.
返回对话结果
**返回值**
:对话处理结果
#### npc_trade($nid, $item, $mode)
**功能**
:处理与NPC的交易
**参数**
:
-
`$nid`
:NPC ID
-
`$item`
:交易物品
-
`$mode`
:交易模式(买/卖)
**处理流程**
:
1.
获取NPC信息和交易物品信息
2.
检查交易条件(金钱、物品等)
3.
执行交易操作
4.
更新NPC库存和玩家物品/金钱
5.
返回交易结果
**返回值**
:交易处理结果
### 特殊地点函数
#### special_area($aid)
**功能**
:处理特殊区域效果
**参数**
:
-
`$aid`
:区域ID
**处理流程**
:
1.
获取区域信息
2.
根据区域类型确定效果
3.
执行区域特殊效果
4.
更新玩家状态和游戏日志
5.
返回处理结果
**返回值**
:区域效果处理结果
#### special_building($bid, $action)
**功能**
:处理特殊建筑效果
**参数**
:
-
`$bid`
:建筑ID
-
`$action`
:玩家行动
**处理流程**
:
1.
获取建筑信息
2.
根据建筑类型和玩家行动确定效果
3.
执行建筑特殊效果
4.
更新玩家状态和游戏日志
5.
返回处理结果
**返回值**
:建筑效果处理结果
### 游戏机制函数
#### special_skill($sid, $target)
**功能**
:处理特殊技能效果
**参数**
:
-
`$sid`
:技能ID
-
`$target`
:目标对象
**处理流程**
:
1.
获取技能信息
2.
检查技能使用条件
3.
计算技能效果
4.
应用技能效果到目标
5.
更新玩家状态和游戏日志
6.
返回技能使用结果
**返回值**
:技能使用结果
#### special_item_effect($iid, $target)
**功能**
:处理特殊物品效果
**参数**
:
-
`$iid`
:物品ID
-
`$target`
:目标对象
**处理流程**
:
1.
获取物品信息
2.
检查物品使用条件
3.
计算物品特殊效果
4.
应用效果到目标
5.
更新玩家状态和游戏日志
6.
返回物品效果结果
**返回值**
:物品效果处理结果
### 随机事件函数
#### random_event($chance, $type)
**功能**
:处理随机事件
**参数**
:
-
`$chance`
:触发概率
-
`$type`
:事件类型
**处理流程**
:
1.
计算事件触发概率
2.
确定是否触发事件
3.
如果触发,根据事件类型选择具体事件
4.
执行事件效果
5.
更新玩家状态和游戏日志
6.
返回事件处理结果
**返回值**
:事件处理结果
#### timed_event($time)
**功能**
:处理定时事件
**参数**
:
-
`$time`
:当前时间
**处理流程**
:
1.
检查是否到达事件触发时间
2.
如果到达,确定触发的事件
3.
执行事件效果
4.
更新玩家状态和游戏日志
5.
返回事件处理结果
**返回值**
:事件处理结果
## 特殊功能系统特点
1.
**多样化事件类型**
:包括区域事件、天气事件、NPC互动、特殊地点等
2.
**随机性**
:大多数特殊事件具有随机触发机制,增加游戏变化性
3.
**条件触发**
:事件触发受多种条件影响,如玩家状态、位置、时间等
4.
**多重效果**
:事件可能同时影响玩家的多个属性和状态
5.
**交互性**
:许多特殊功能需要玩家做出选择,增加游戏交互性
6.
**奖惩机制**
:特殊事件可能带来奖励或惩罚,影响游戏平衡
## 事件数据结构
特殊功能系统使用以下数据结构:
1.
**事件基本属性**
:
-
事件ID
-
事件名称
-
事件描述
-
触发条件
-
事件效果
2.
**NPC数据**
:
-
NPC ID
-
NPC名称
-
对话内容
-
交易物品
-
特殊行为
3.
**特殊地点数据**
:
-
地点ID
-
地点名称
-
地点描述
-
地点效果
## 主要特点
1.
**丰富游戏内容**
:特殊功能系统大大丰富了游戏内容和玩法
2.
**增加随机性**
:随机事件增加了游戏的不可预测性和重玩价值
3.
**提供游戏变化**
:特殊事件可能改变游戏环境和规则,提供新的挑战
4.
**创造叙事机会**
:特殊事件和NPC互动创造了游戏叙事的机会
5.
**平衡游戏难度**
:特殊功能可以调整游戏难度,提供帮助或增加挑战
## 注意事项
1.
特殊功能系统涉及游戏多个方面,修改需谨慎考虑平衡性
2.
随机事件的触发概率需要仔细调整,避免过于频繁或罕见
3.
特殊事件的效果应该有意义但不至于破坏游戏平衡
4.
NPC互动和特殊地点应该提供有趣的选择而不是明显的最优解
5.
特殊功能系统与其他游戏系统(如战斗、物品)紧密相关,修改时需考虑兼容性
\ No newline at end of file
doc/context/state_func.md
deleted
100644 → 0
View file @
894a4630
# state.func.php 函数分析
`state.func.php`
是游戏状态管理函数库,负责处理游戏中各种状态的变化和管理。
## 函数列表
### 状态初始化和加载
#### `init_game_state($gid)`
-
**功能**
: 初始化游戏状态
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 初始化结果
#### `load_game_state($gid)`
-
**功能**
: 加载游戏状态
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 游戏状态数组
#### `save_game_state($gid, $state)`
-
**功能**
: 保存游戏状态
-
**参数**
:
-
`$gid`
: 游戏ID
-
`$state`
: 状态数据
-
**返回值**
: 保存结果
#### `reset_game_state($gid)`
-
**功能**
: 重置游戏状态
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 重置结果
### 玩家状态管理
#### `get_player_state($uid, $gid)`
-
**功能**
: 获取玩家状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 玩家状态数组
#### `update_player_state($uid, $gid, $state)`
-
**功能**
: 更新玩家状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state`
: 新状态
-
**返回值**
: 更新结果
#### `add_player_state($uid, $gid, $state_type, $duration, $effect)`
-
**功能**
: 添加玩家状态效果
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_type`
: 状态类型
-
`$duration`
: 持续时间
-
`$effect`
: 效果数据
-
**返回值**
: 添加结果
#### `remove_player_state($uid, $gid, $state_id)`
-
**功能**
: 移除玩家状态效果
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_id`
: 状态ID
-
**返回值**
: 移除结果
### 状态效果处理
#### `apply_state_effects($uid, $gid)`
-
**功能**
: 应用状态效果
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 应用结果
#### `update_state_durations($gid)`
-
**功能**
: 更新状态持续时间
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 更新结果
#### `check_state_expiration($gid)`
-
**功能**
: 检查状态是否过期
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 过期状态列表
#### `handle_expired_states($gid)`
-
**功能**
: 处理过期状态
-
**参数**
:
`$gid`
: 游戏ID
-
**返回值**
: 处理结果
### 特定状态类型
#### `apply_buff_state($uid, $gid, $buff_type, $value, $duration)`
-
**功能**
: 应用增益状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$buff_type`
: 增益类型
-
`$value`
: 增益值
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
#### `apply_debuff_state($uid, $gid, $debuff_type, $value, $duration)`
-
**功能**
: 应用减益状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$debuff_type`
: 减益类型
-
`$value`
: 减益值
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
#### `apply_dot_state($uid, $gid, $damage, $interval, $duration)`
-
**功能**
: 应用持续伤害状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$damage`
: 伤害值
-
`$interval`
: 伤害间隔
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
#### `apply_hot_state($uid, $gid, $healing, $interval, $duration)`
-
**功能**
: 应用持续治疗状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$healing`
: 治疗值
-
`$interval`
: 治疗间隔
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
### 控制状态
#### `apply_stun_state($uid, $gid, $duration)`
-
**功能**
: 应用眩晕状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
#### `apply_silence_state($uid, $gid, $duration)`
-
**功能**
: 应用沉默状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
#### `apply_root_state($uid, $gid, $duration)`
-
**功能**
: 应用定身状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
#### `apply_disarm_state($uid, $gid, $duration)`
-
**功能**
: 应用缴械状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$duration`
: 持续时间
-
**返回值**
: 应用结果
### 状态抵抗和清除
#### `check_state_resistance($uid, $gid, $state_type)`
-
**功能**
: 检查状态抵抗
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_type`
: 状态类型
-
**返回值**
: 布尔值,表示是否抵抗
#### `clear_all_states($uid, $gid)`
-
**功能**
: 清除所有状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 清除结果
#### `clear_debuff_states($uid, $gid)`
-
**功能**
: 清除所有减益状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 清除结果
#### `clear_control_states($uid, $gid)`
-
**功能**
: 清除所有控制状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
**返回值**
: 清除结果
### 状态查询和检查
#### `has_state($uid, $gid, $state_type)`
-
**功能**
: 检查玩家是否有特定状态
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_type`
: 状态类型
-
**返回值**
: 布尔值,表示是否有该状态
#### `get_state_effect($uid, $gid, $state_type)`
-
**功能**
: 获取状态效果值
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_type`
: 状态类型
-
**返回值**
: 效果值
#### `get_state_duration($uid, $gid, $state_id)`
-
**功能**
: 获取状态剩余持续时间
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_id`
: 状态ID
-
**返回值**
: 剩余持续时间
#### `is_state_active($uid, $gid, $state_id)`
-
**功能**
: 检查状态是否激活
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_id`
: 状态ID
-
**返回值**
: 布尔值,表示状态是否激活
### 状态通知和显示
#### `notify_state_change($uid, $gid, $state_id, $action)`
-
**功能**
: 通知状态变化
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_id`
: 状态ID
-
`$action`
: 变化动作
-
**返回值**
: 通知结果
#### `get_state_icon($state_type)`
-
**功能**
: 获取状态图标
-
**参数**
:
`$state_type`
: 状态类型
-
**返回值**
: 图标路径
#### `get_state_description($state_type, $value = 0)`
-
**功能**
: 获取状态描述
-
**参数**
:
-
`$state_type`
: 状态类型
-
`$value`
: 状态值
-
**返回值**
: 状态描述
#### `format_state_display($uid, $gid, $state_id)`
-
**功能**
: 格式化状态显示
-
**参数**
:
-
`$uid`
: 用户ID
-
`$gid`
: 游戏ID
-
`$state_id`
: 状态ID
-
**返回值**
: 格式化的状态显示
这只是部分函数的分析,完整的state.func.php文件包含更多状态管理函数,用于支持游戏中各种状态效果的处理和管理。
\ No newline at end of file
doc/context/system_func.md
deleted
100644 → 0
View file @
894a4630
# system.func.php 函数分析
`system.func.php`
是系统核心函数库,包含系统运行所需的基础函数。
## 函数列表
### 系统核心函数
#### `get_magic_quotes_gpc_compatible()`
-
**功能**
: 兼容处理magic_quotes_gpc,返回是否开启了magic_quotes_gpc
-
**返回值**
: 布尔值,表示是否开启了magic_quotes_gpc
#### `daddslashes($string, $force = 0)`
-
**功能**
: 对字符串进行addslashes处理,防止SQL注入
-
**参数**
:
-
`$string`
: 需要处理的字符串或数组
-
`$force`
: 是否强制处理,即使magic_quotes_gpc已开启
-
**返回值**
: 处理后的字符串或数组
#### `rhtmlspecialchars($string)`
-
**功能**
: 对字符串进行htmlspecialchars处理,转换特殊字符为HTML实体
-
**参数**
:
`$string`
: 需要处理的字符串
-
**返回值**
: 处理后的字符串
#### `raddslashes($string)`
-
**功能**
: 对字符串进行addslashes处理,防止SQL注入
-
**参数**
:
`$string`
: 需要处理的字符串
-
**返回值**
: 处理后的字符串
#### `rsetcookie($var, $value, $life = 0, $prefix = 1)`
-
**功能**
: 设置cookie
-
**参数**
:
-
`$var`
: cookie名称
-
`$value`
: cookie值
-
`$life`
: cookie生存时间
-
`$prefix`
: 是否添加前缀
-
**返回值**
: 无
#### `fileext($filename)`
-
**功能**
: 获取文件扩展名
-
**参数**
:
`$filename`
: 文件名
-
**返回值**
: 文件扩展名
#### `cutstr($string, $length, $dot = ' ...')`
-
**功能**
: 截取字符串,支持中文
-
**参数**
:
-
`$string`
: 原始字符串
-
`$length`
: 截取长度
-
`$dot`
: 省略符号
-
**返回值**
: 截取后的字符串
#### `showmsg($message, $url_forward = '', $msgtype = 'message', $extra = '')`
-
**功能**
: 显示消息并跳转
-
**参数**
:
-
`$message`
: 消息内容
-
`$url_forward`
: 跳转URL
-
`$msgtype`
: 消息类型
-
`$extra`
: 额外信息
-
**返回值**
: 无,直接输出HTML
#### `getusergroup($groupid)`
-
**功能**
: 获取用户组信息
-
**参数**
:
`$groupid`
: 用户组ID
-
**返回值**
: 用户组信息数组
#### `checkpost($varname, $minlength, $maxlength, $checktype = '')`
-
**功能**
: 检查POST变量
-
**参数**
:
-
`$varname`
: 变量名
-
`$minlength`
: 最小长度
-
`$maxlength`
: 最大长度
-
`$checktype`
: 检查类型
-
**返回值**
: 检查结果
### 文件和目录操作
#### `writeover($filename, $data, $method = 'wb', $iflock = 1)`
-
**功能**
: 写入文件
-
**参数**
:
-
`$filename`
: 文件名
-
`$data`
: 写入数据
-
`$method`
: 写入方式
-
`$iflock`
: 是否锁定文件
-
**返回值**
: 布尔值,表示操作是否成功
#### `readover($filename, $method = 'rb')`
-
**功能**
: 读取文件
-
**参数**
:
-
`$filename`
: 文件名
-
`$method`
: 读取方式
-
**返回值**
: 文件内容
#### `makedir($dir)`
-
**功能**
: 创建目录
-
**参数**
:
`$dir`
: 目录路径
-
**返回值**
: 布尔值,表示操作是否成功
### 时间和日期处理
#### `sgmdate($dateformat, $timestamp = '', $format = 0)`
-
**功能**
: 格式化时间戳
-
**参数**
:
-
`$dateformat`
: 日期格式
-
`$timestamp`
: 时间戳
-
`$format`
: 格式化方式
-
**返回值**
: 格式化后的日期字符串
#### `get_date($time, $type = 0)`
-
**功能**
: 获取格式化日期
-
**参数**
:
-
`$time`
: 时间戳
-
`$type`
: 格式类型
-
**返回值**
: 格式化后的日期字符串
### 安全和验证
#### `clearcookies()`
-
**功能**
: 清除所有cookie
-
**参数**
: 无
-
**返回值**
: 无
#### `checkformhash($formhash)`
-
**功能**
: 检查表单hash,防止CSRF攻击
-
**参数**
:
`$formhash`
: 表单hash值
-
**返回值**
: 布尔值,表示检查是否通过
#### `formhash()`
-
**功能**
: 生成表单hash
-
**参数**
: 无
-
**返回值**
: 生成的hash值
### 其他实用函数
#### `debuginfo()`
-
**功能**
: 输出调试信息
-
**参数**
: 无
-
**返回值**
: 无,直接输出HTML
#### `random($length, $numeric = 0)`
-
**功能**
: 生成随机字符串
-
**参数**
:
-
`$length`
: 字符串长度
-
`$numeric`
: 是否仅包含数字
-
**返回值**
: 随机字符串
#### `multi_array_sort($arrays, $sort_key, $sort_order = SORT_ASC, $sort_type = SORT_NUMERIC)`
-
**功能**
: 多维数组排序
-
**参数**
:
-
`$arrays`
: 待排序数组
-
`$sort_key`
: 排序键名
-
`$sort_order`
: 排序顺序
-
`$sort_type`
: 排序类型
-
**返回值**
: 排序后的数组
#### `getmicrotime()`
-
**功能**
: 获取微秒级时间戳
-
**参数**
: 无
-
**返回值**
: 微秒级时间戳
#### `check_ip($ip, $ips)`
-
**功能**
: 检查IP是否在允许范围内
-
**参数**
:
-
`$ip`
: 待检查IP
-
`$ips`
: 允许的IP范围
-
**返回值**
: 布尔值,表示检查是否通过
#### `convertip($ip, $ipdatafile = '')`
-
**功能**
: 将IP转换为地理位置
-
**参数**
:
-
`$ip`
: IP地址
-
`$ipdatafile`
: IP数据文件
-
**返回值**
: 地理位置信息
这只是部分核心函数的分析,完整的system.func.php文件包含更多系统级函数,用于支持整个游戏系统的运行。
\ No newline at end of file
doc/context/template_func.md
deleted
100644 → 0
View file @
894a4630
# template.func.php 函数分析
`template.func.php`
是模板处理函数库,负责处理HTML模板的加载、解析和渲染。
## 函数列表
### 模板加载和解析
#### `template($file, $templateid = 0, $tpldir = '')`
-
**功能**
: 加载模板文件
-
**参数**
:
-
`$file`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 模板内容
#### `parse_template($tplfile, $templateid = 0, $tpldir = '')`
-
**功能**
: 解析模板文件
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 解析后的模板内容
#### `subtemplates($subtpl, $templateid = 0, $tpldir = '')`
-
**功能**
: 加载子模板
-
**参数**
:
-
`$subtpl`
: 子模板名称
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 子模板内容
### 模板变量和数据
#### `template_variables($data, $force = 0)`
-
**功能**
: 设置模板变量
-
**参数**
:
-
`$data`
: 变量数据
-
`$force`
: 是否强制覆盖
-
**返回值**
: 无
#### `get_template_vars($var = '')`
-
**功能**
: 获取模板变量
-
**参数**
:
`$var`
: 变量名
-
**返回值**
: 变量值或所有变量数组
#### `assign($name, $value)`
-
**功能**
: 分配变量到模板
-
**参数**
:
-
`$name`
: 变量名
-
`$value`
: 变量值
-
**返回值**
: 无
#### `assign_by_ref($name, &$value)`
-
**功能**
: 通过引用分配变量
-
**参数**
:
-
`$name`
: 变量名
-
`$value`
: 变量值引用
-
**返回值**
: 无
### 模板渲染和输出
#### `render_template($tpl, $data = array())`
-
**功能**
: 渲染模板
-
**参数**
:
-
`$tpl`
: 模板名称
-
`$data`
: 模板数据
-
**返回值**
: 渲染后的HTML
#### `display($tpl)`
-
**功能**
: 显示模板
-
**参数**
:
`$tpl`
: 模板名称
-
**返回值**
: 无,直接输出HTML
#### `fetch($tpl)`
-
**功能**
: 获取模板渲染结果
-
**参数**
:
`$tpl`
: 模板名称
-
**返回值**
: 渲染后的HTML
#### `output_template($content)`
-
**功能**
: 输出模板内容
-
**参数**
:
`$content`
: 模板内容
-
**返回值**
: 无,直接输出HTML
### 模板缓存
#### `template_cache($tplfile, $templateid = 0, $tpldir = '')`
-
**功能**
: 获取模板缓存
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 缓存内容或false
#### `save_template_cache($tplfile, $content, $templateid = 0, $tpldir = '')`
-
**功能**
: 保存模板缓存
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$content`
: 缓存内容
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 保存结果
#### `clear_template_cache($tplfile = '', $templateid = 0, $tpldir = '')`
-
**功能**
: 清除模板缓存
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 清除结果
### 模板处理和修改
#### `template_include($file, $templateid = 0, $tpldir = '')`
-
**功能**
: 包含其他模板
-
**参数**
:
-
`$file`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 包含后的内容
#### `template_exists($tplfile, $templateid = 0, $tpldir = '')`
-
**功能**
: 检查模板是否存在
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 布尔值,表示模板是否存在
#### `template_format($template)`
-
**功能**
: 格式化模板内容
-
**参数**
:
`$template`
: 模板内容
-
**返回值**
: 格式化后的内容
#### `template_compile($template)`
-
**功能**
: 编译模板
-
**参数**
:
`$template`
: 模板内容
-
**返回值**
: 编译后的PHP代码
### 模板标签和语法
#### `parse_template_tag($tag, $parameter)`
-
**功能**
: 解析模板标签
-
**参数**
:
-
`$tag`
: 标签名
-
`$parameter`
: 标签参数
-
**返回值**
: 解析结果
#### `parse_template_loop($code, $loopname, $key, $value)`
-
**功能**
: 解析循环标签
-
**参数**
:
-
`$code`
: 循环代码
-
`$loopname`
: 循环名称
-
`$key`
: 键名
-
`$value`
: 值名
-
**返回值**
: 解析后的PHP代码
#### `parse_template_if($condition)`
-
**功能**
: 解析条件标签
-
**参数**
:
`$condition`
: 条件表达式
-
**返回值**
: 解析后的PHP代码
#### `parse_template_function($func, $parameter)`
-
**功能**
: 解析函数标签
-
**参数**
:
-
`$func`
: 函数名
-
`$parameter`
: 函数参数
-
**返回值**
: 解析后的PHP代码
### 辅助功能
#### `template_path($tplfile, $templateid = 0, $tpldir = '')`
-
**功能**
: 获取模板文件路径
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 模板文件完整路径
#### `template_cache_path($tplfile, $templateid = 0, $tpldir = '')`
-
**功能**
: 获取模板缓存路径
-
**参数**
:
-
`$tplfile`
: 模板文件名
-
`$templateid`
: 模板ID
-
`$tpldir`
: 模板目录
-
**返回值**
: 缓存文件完整路径
#### `template_error($message)`
-
**功能**
: 处理模板错误
-
**参数**
:
`$message`
: 错误消息
-
**返回值**
: 无,直接输出错误
这些函数共同构成了一个完整的模板系统,用于处理游戏中的HTML页面生成和显示,支持模板加载、解析、缓存和渲染等功能。
\ No newline at end of file
doc/context/titles_func.md
deleted
100644 → 0
View file @
894a4630
# titles.func.php 文件分析
## 文件概述
`titles.func.php`
是游戏系统中处理玩家称号的核心函数库。该文件包含了称号的获取、删除、描述和验证等功能,是游戏称号系统的完整实现。文件支持新旧两种称号系统,并提供了兼容性处理。
## 主要函数列表
### get_title($t, $n)
**功能**
:获取称号(旧系统接口)
**参数**
:
-
`$t`
:称号名称
-
`$n`
:玩家名称
**处理流程**
:
1.
检查称号是否存在于称号列表中
2.
如果存在,将旧系统称号转换为新系统格式
3.
调用新系统函数获取称号
4.
更新数据库中的玩家称号数据
**返回值**
:无,直接修改数据库
### titles_get_new(&$udata, $tkey, $mode=0)
**功能**
:获取称号(新系统)
**参数**
:
-
`&$udata`
:用户数据(引用传递)
-
`$tkey`
:称号键值
-
`$mode`
:模式,默认为0
**处理流程**
:
1.
检查用户数据中的称号记录是否初始化
2.
检查称号是否已经获得
3.
如果未获得,添加新称号到用户数据
4.
根据模式决定是否显示获得消息
**返回值**
:无,直接修改传入的用户数据
### titles_delete(&$udata, $tkey, $mode=0)
**功能**
:删除称号
**参数**
:
-
`&$udata`
:用户数据(引用传递)
-
`$tkey`
:称号键值
-
`$mode`
:模式,默认为0
**处理流程**
:
1.
检查用户数据中的称号记录是否存在
2.
检查指定称号是否存在
3.
如果存在,从用户数据中移除该称号
4.
根据模式决定是否显示删除消息
**返回值**
:无,直接修改传入的用户数据
### titles_get_desc($tkey, $mode=0)
**功能**
:获取称号描述
**参数**
:
-
`$tkey`
:称号键值
-
`$mode`
:模式,默认为0
**处理流程**
:
1.
从全局称号列表中获取称号名称
2.
根据模式返回不同格式的称号描述
3.
如果称号不存在,返回空字符串
**返回值**
:称号描述字符串
### get_titles_desc($n)
**功能**
:获取玩家所有称号的描述
**参数**
:
-
`$n`
:玩家名称
**处理流程**
:
1.
从数据库获取玩家的称号数据
2.
解析称号数据
3.
生成所有称号的描述列表
4.
返回格式化的称号描述
**返回值**
:玩家所有称号的描述字符串
### get_title_valid($n)
**功能**
:获取玩家当前有效称号
**参数**
:
-
`$n`
:玩家名称
**处理流程**
:
1.
从数据库获取玩家的称号数据
2.
检查是否设置了有效称号
3.
返回有效称号的描述
**返回值**
:有效称号的描述字符串
## 称号系统特点
1.
**新旧系统兼容**
:支持旧系统和新系统的称号格式
2.
**称号列表**
:使用全局称号列表管理所有可用称号
3.
**称号描述**
:提供不同格式的称号描述
4.
**有效称号**
:支持设置当前有效的称号
5.
**称号管理**
:支持称号的获取和删除操作
## 称号存储格式
新系统使用JSON格式存储称号数据,包含以下结构:
1.
**nicks**
:已获得的称号列表
2.
**valid**
:当前有效的称号
3.
**time**
:获得称号的时间记录
## 主要特点
1.
**JSON数据存储**
:使用JSON格式存储称号数据,提高灵活性
2.
**兼容性处理**
:提供旧系统到新系统的转换机制
3.
**模块化设计**
:将称号功能分解为独立函数
4.
**数据库集成**
:直接操作数据库更新玩家称号数据
5.
**描述格式化**
:支持不同格式的称号描述输出
## 注意事项
1.
称号系统经过了从旧系统到新系统的升级,包含兼容性处理
2.
称号数据使用JSON格式存储,需要注意JSON编码和解码的正确性
3.
称号系统与成就系统可能有关联,某些成就可能会授予称号
4.
有效称号机制允许玩家选择显示的称号
5.
称号列表定义在全局变量中,修改称号需要更新该列表
\ No newline at end of file
doc/context/user_func.md
deleted
100644 → 0
View file @
894a4630
# user.func.php 文件分析
## 文件概述
`user.func.php`
是游戏系统中处理用户相关功能的函数库。该文件包含了用户名和密码验证、IP地址获取、用户数据获取和格式化等功能,是用户管理系统的核心组件。
## 函数列表
### name_check($username)
**功能**
:检查用户名是否符合规则
**参数**
:
-
`$username`
:待检查的用户名
**处理流程**
:
1.
检查用户名是否为空
2.
检查用户名长度是否超过15个字符
3.
检查用户名是否包含非法字符(逗号、尖括号、&符号、分号、井号、引号、空白字符等)
4.
检查用户名是否匹配禁用名称规则(通过
`$nmlimit`
正则表达式)
**返回值**
:
-
`name_not_set`
:用户名为空
-
`name_too_long`
:用户名过长
-
`name_invalid`
:用户名包含非法字符
-
`name_banned`
:用户名被禁用
-
`name_ok`
:用户名符合规则
### pass_check($pass, $rpass)
**功能**
:检查密码是否符合规则
**参数**
:
-
`$pass`
:密码
-
`$rpass`
:重复输入的密码
**处理流程**
:
1.
检查密码或重复密码是否为空
2.
检查两次输入的密码是否一致
3.
检查密码长度是否小于4个字符(已注释)
4.
检查密码长度是否超过24个字符
**返回值**
:
-
`pass_not_set`
:密码为空
-
`pass_not_match`
:两次密码不一致
-
`pass_too_long`
:密码过长
-
`pass_ok`
:密码符合规则
### real_ip()
**功能**
:获取用户的真实IP地址
**参数**
:无
**处理流程**
:
1.
首先尝试从
`$_SERVER['HTTP_X_FORWARDED_FOR']`
获取IP
2.
如果上述方法失败,尝试从
`$_SERVER['HTTP_CLIENT_IP']`
获取
3.
如果上述方法失败,尝试从
`$_SERVER['HTTP_CF_CONNECTING_IP']`
(Cloudflare代理)获取
4.
如果上述方法失败,尝试从
`$_SERVER['REMOTE_ADDR']`
获取
5.
如果使用的是旧版PHP环境,则使用getenv()函数获取
6.
使用正则表达式验证IP地址格式
7.
对特定用户名进行IP地址硬编码处理
**返回值**
:用户的真实IP地址字符串
### get_iconlist()
**功能**
:获取头像列表的HTML选项
**参数**
:无
**处理流程**
:
1.
根据
`$iconlimit`
生成从0到限制值的头像编号列表
2.
根据当前选中的头像(
`$icon`
)设置选中状态
**返回值**
:包含头像选项的HTML选项数组
### get_utitlelist()
**功能**
:获取用户称号列表
**参数**
:无
**处理流程**
:
1.
将
`$nicks`
字符串按"/"分割成数组
2.
将分割后的数组与
`$utitlelist`
对应
**返回值**
:用户称号列表数组
### fetch_userdata_by_username($n)
**功能**
:根据用户名获取用户数据
**参数**
:
-
`$n`
:用户名
**处理流程**
:
1.
从数据库查询指定用户名的用户数据
2.
如果用户不存在,返回NULL
3.
调用
`format_userdata()`
格式化用户数据
**返回值**
:格式化后的用户数据数组,或NULL(用户不存在时)
### format_userdata($data)
**功能**
:格式化用户数据
**参数**
:
-
`$data`
:用户数据数组
**处理流程**
:
1.
处理用户的成就记录(
`achrev`
)
2.
处理用户的称号记录(
`nicksrev`
)
**返回值**
:格式化后的用户数据数组
## 主要特点
1.
**安全验证**
:提供用户名和密码的安全验证功能
2.
**IP获取**
:提供多种方法获取用户真实IP,包括对代理情况的处理
3.
**数据格式化**
:提供用户数据的格式化功能
4.
**UI生成**
:生成头像选择和称号选择的UI元素
## 注意事项
1.
用户名验证使用了正则表达式,包括对特殊字符和长度的限制
2.
IP获取函数考虑了多种代理情况,包括Cloudflare代理
3.
对特定用户名有硬编码的IP地址处理
4.
用户数据格式化主要处理成就和称号相关数据
5.
该文件主要处理用户账户相关功能,不涉及游戏内角色数据处理
\ No newline at end of file
doc/repomix-output.txt
deleted
100644 → 0
View file @
894a4630
This diff is collapsed.
Click to expand it.
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