# mmv **Repository Path**: jmx_123456/mmv ## Basic Information - **Project Name**: mmv - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mmv 重装机兵联机版 #### 介绍 重装机兵联机版源码,为免费提供。 未经许可,不得商用! #### 特色 1.复活药只有一个
2.保留经典bug,如军号等
3.新增至少4个城镇
4.地图将扩大至原本的四倍
5.新增怪物以及赏金首
6.增加组队联机系统 7.增加大富翁玩法(钱生钱) 这个项目是一个基于Java的2D游戏开发项目,名为“重装机兵V”,主要使用Swing框架进行图形界面的设计,并结合了网络通信、数据持久化、事件驱动等多种功能。项目中包含多个模块,涵盖了游戏开发中的许多方面。 ### 1. **项目结构** - **`doc/`**:文档目录,包含生成的Java文档(HTML格式),如类说明和接口描述。 - **`src/`**:源代码目录,按包名组织为多个子目录。 - **`Correct/`**:修复工具相关的代码,用于检测并修复游戏数据。 - **`FCRendering/`**:核心渲染与游戏逻辑相关代码,包括主游戏循环、角色动作、战斗系统等。 - `sw/` 和 `azer/`:进一步细分的功能类,如监听器、值对象等。 - **`Frame/`**:负责UI界面设计,包括菜单、地图编辑器、对话框等。 - `screen/`:屏幕显示相关的具体实现,如商店界面、战斗界面。 - `sayoptional/`:处理对话选项的辅助类。 - `shopSet/`:涉及商店交互的类。 - **`Function/`**:功能性模块,包括数据加载、剧情触发检测、物品管理等。 - **`VWorldGameStudio/`**:游戏核心元素定义,包括角色、坦克、怪物、地图等实体类。 - **`interfaces/`**:接口定义,如玩家滑动回调接口。 - **`socket/`**:网络通信部分,支持多人联机功能。 - **`utils/`**:实用工具类,如数据单例模式、文件读写等。 - **`test/`**:测试类,验证某些功能是否正常工作。 - **[README.md](file://D:\code\mmv-master\README.md)**:项目的简要介绍或指南。 --- ### 2. **核心功能** #### 2.1 游戏引擎 - **主游戏类**:[FCRMaster](file://D:\code\mmv-master\src\FCRendering\FCRMaster.java#L39-L2240) 是整个游戏的核心类,它包含了游戏状态、画面绘制、用户输入监听以及各种游戏机制(如战斗、对话、移动)的处理。 - **渲染系统**:通过 [paintComponent(Graphics g)](file://D:\code\mmv-master\src\FCRendering\FCRMaster.java#L494-L514) 方法实现了基于Swing的游戏画面渲染,同时支持分辨率适配。 - **游戏循环**:使用 `TimerTask` 实现了一个游戏主循环,每帧更新状态并重新绘制画面。 #### 2.2 角色与NPC控制 - **玩家行为**:[PlayerAction](file://D:\code\mmv-master\src\FCRendering\azer\PlayerAction.java#L24-L378) 类处理玩家移动、跳跃、战斗等基本操作,同时支持快速滑行、方向判断等功能。 - **NPC行为**:通过线程 [plotnpcactive](file://D:\code\mmv-master\src\FCRendering\FCRMaster.java#L1859-L2080) 控制剧情中的NPC行动,包括位置变换、方向调整、动画切换等。 #### 2.3 战斗系统 - **战斗流程**: - 怪物随机生成:根据地图信息生成怪物群组。 - 攻击顺序排序:按照速度属性决定攻击顺序。 - 玩家与怪物轮流执行攻击。 - **战后奖励**:掉落物品、经验值增长、金钱获得等。 - **长期状态**:如中毒、酸腐蚀等效果在每回合中生效。 #### 2.4 对话系统 - **剧情对话**:[SayEvent](file://D:\code\mmv-master\src\VWorldGameStudio\events\SayEvent.java#L7-L61) 定义了剧情对话内容,[SayTextAndOption](file://D:\code\mmv-master\src\Frame\sayoptional\SayTextAndOption.java#L5-L48) 处理选项与分支。 - **对话选择**:通过 [SayOptionalHelper](file://D:\code\mmv-master\src\Frame\sayoptional\SayOptionalHelper.java#L6-L90) 创建对话菜单,允许玩家选择不同选项。 - **自动推进**:若对话选项无分支,则直接进入下一阶段。 #### 2.5 地图与场景管理 - **地图编辑器**:[FCGMaster](file://D:\code\mmv-master\src\Frame\FCGMaster.java#L32-L861) 提供了地图编辑器的UI,允许添加、删除、保存地图。 - **地图动画**:[FCMapAnimationLibrary](file://D:\code\mmv-master\src\Function\FCMapAnimationLibrary.java#L12-L75) 负责加载和播放地图动画。 - **动态物体**:如传送带、门、床等地图实体,各自有不同的交互方式。 #### 2.6 网络与多人游戏 - **Socket通信**:`socket/` 包含客户端与服务器端的基础通信实现,支持多人同步。 - **存档同步**:服务器可以发送存档数据给客户端,确保多玩家之间的状态一致。 #### 2.7 数据持久化 - **存档系统**:支持加载、保存游戏进度,使用 [FCSave](file://D:\code\mmv-master\src\VWorldGameStudio\FCSave.java#L23-L515) 类存储当前游戏状态。 - **数据校验**:通过 `examine/textlist.java` 检查 `data/` 目录下的资源是否与 [list.vw](file://D:\code\mmv-master\data\maplist.vw) 文件匹配,防止数据缺失。 #### 2.8 剧情与任务系统 - **剧情触发**:[FCPlotDetect](file://D:\code\mmv-master\src\Function\FCPlotDetect.java#L15-L235) 类负责检查剧情触发条件,比如等级、血量、物品拥有情况等。 - **剧情执行**:[plotnpcactive](file://D:\code\mmv-master\src\FCRendering\FCRMaster.java#L1859-L2080) 线程处理剧情中的NPC行为,如移动、对话、战斗等。 #### 2.9 物品与装备系统 - **背包管理**:玩家背包可容纳最多10个物品,超出则放入保管NPC。 - **道具使用**:支持对物品进行使用,如回血药水、迷彩条等。 #### 2.10 UI 与 交互 - **对话窗口**:弹出式对话框,支持多种选项(购买、对话、睡觉等)。 - **商店系统**:售货机界面支持金币支付、抽奖机制、物品购买。 - **战斗界面**:实时显示战斗结果、经验获得、金钱变化等。 --- ### 3. **技术栈** - **语言**:Java - **GUI框架**:Swing - **网络通信**:Java Socket API - **数据格式**:JSON、Excel表格([.xls](file://D:\code\mmv-master\material\config\怪物图鉴.xls))、文本文件([.vw](file://D:\code\mmv-master\data\action\StepUp.vw), `.txt`) - **并发模型**:`java.util.Timer` + `Runnable` + `Thread` 实现异步任务处理(如自动存档、战斗动画、时间更新) --- ### 4. **关键设计模式** - **单例模式**:[FCRMaster](file://D:\code\mmv-master\src\FCRendering\FCRMaster.java#L39-L2240) 使用单例来统一访问游戏全局状态。 - **观察者模式**:`KeyListener`、`MouseListener` 等监听器处理用户输入。 - **模板方法模式**:[IScreen](file://D:\code\mmv-master\src\Frame\screen\IScreen.java#L10-L68) 定义通用的绘图接口,具体实现由子类完成。 - **策略模式**:[FCPlotDetect](file://D:\code\mmv-master\src\Function\FCPlotDetect.java#L15-L235) 根据不同的剧情触发条件执行不同的策略。 - **责任链模式**:[SayOptionalHelper](file://D:\code\mmv-master\src\Frame\sayoptional\SayOptionalHelper.java#L6-L90) 处理不同的对话选项类型(reborn, sleep, jump等)。 --- ### 5. **扩展性与插件** - **插件化设计**: - 通过 [FCTouZiProject](file://D:\code\mmv-master\src\VWorldGameStudio\touzi\FCTouZiProject.java#L4-L33) 可以拓展新的小游戏或挑战模式。 - [FCPlot](file://D:\code\mmv-master\src\VWorldGameStudio\FCPlot.java#L9-L60) 类支持自定义剧情脚本,只需继承并实现特定接口即可。 - **可配置化**: - 所有数据均从外部文件加载(如地图、事件、人物属性等),方便修改与维护。 - [FCDataDecryptOrEncryption](file://D:\code\mmv-master\src\utils\FCDataDecryptOrEncryption.java#L11-L145) 支持数据加密/解密,增强安全性。 --- ### 6. **优化建议** - **性能优化**: - 部分渲染逻辑(如地图缩略图生成)可以在后台线程处理 发生异常,可以输入更多信息再让我来回答或重试。 #### 孤独的旅者 源码贡献 1.设计大体框架
2.实现了大部分功能
3.源码提供方
## 开发记录 #### Azer 贡献 2021-5-30 1.调试移动撞墙抖动问题
2.在FCRMaster中新增setters and getters #### 小鲁班打野 贡献 2021-5-29 1.规范部分代码注释,命名,格式等 #### 小鲁班打野 贡献 2021-6-9 1.怪物攻击动画设计窗口初步修改 #### 孤独的旅者 2021-8-31 1.设置点击跳过动画,进入游戏主菜单界面
2.修复游戏主菜单界面分辨率问题 #### 孤独的旅者 2021-9-3 1.修复单人存档准备界面分辨率错位问题
2.修复分辨率改变的情况下地图渲染卡顿问题 #### 孤独的旅者 2021-9-6 1.修复分辨率改变的情况下npc偏移问题
2.修复分辨率改变的情况下背包错位问题
3.修复分辨率改变的情况下个人信息显示错位问题 #### 孤独的旅者 2021-9-13 1.修复分辨率改变的情况下战斗菜单错位问题
2.修复存档加载成功后部分地图背景音乐错误问题
3.调整部分文字显示大小,以适应不同分辨率
4.修复分辨率改变的情况下角色血量显示错位问题
5.修复分辨率给变的情况下进入战斗与结束战斗黑幕只移动一半就跳至全屏问题 #### 孤独的旅者 2021-9-16 1.修复摇奖可能会出现灯的移动未出现匀速情况的问题
2.修复装备武器后,点击徒手却使用的武器攻击 #### 孤独的旅者 2021-9-24 1.修复战斗时使用弹弓动画与音效不正常问题
2.修复主角被攻击时只有最后一个怪攻击才有被攻击效果问题
3.编辑器新增怪物清单窗口 #### 孤独的旅者 2021-9-29 1.修复被移动的且为驾驶坦克,在其他地图上也会显示
2.修复站在坦克上无法再次进入
3.修复坦克忽视1级阻碍直接行走 #### 孤独的旅者 2021-10-1 1.修复战斗时坦克显示尺寸问题
2.修复战斗时驾驶状态下战斗菜单不显示问题
3.修复战斗时乘驾状态切换不正常问题
4.准备坦克的普通主炮攻击动画素材
5.准备坦克的普通副炮攻击动画素材 #### 孤独的旅者 2021-10-5 1.修改编辑器动画创建窗口
2.修复战斗时徒手攻击可能导致程序卡死问题 #### 孤独的旅者 2021-10-18 1.完善普通主炮攻击动画
2.编辑器添加动画窗口完善素材列表 #### 小鲁班打野 2021-10-24 1.修改自动回血机制,仅在血量小于30%后触发。
2.规范部分代码,变量。 #### 小鲁班打野 2021-10-31 1.添加常量类,优化Master。 #### 孤独的旅者 2021-11-1 1.设置战斗体力消耗 #### 小鲁班打野 2021-11-6 1.添加ImageUtil类,优化Image读取方式。
2.添加ClassUtils类,功能暂未实现。
3.代码全体格式化。 #### 小鲁班打野 2021-11-7 1.优化地图编辑器。 #### 孤独的旅者 2021-11-9 1.增加数据检测主函数 examine.textlist.java
2.修复数据损坏。 #### 小鲁班打野 2021-11-9 1.优化地图编辑器主类,增加代码可读性。 #### 小鲁班打野 2021-11-11 1.二次优化地图编辑器主类,增加代码可读性。 #### 小鲁班打野 2021-11-13 1.优化数据读写类,添加两个接口,添加url类,大幅提高代码可读性。
2.添加数据删除类,可实现任意路径文件的删除。
3.部分类作简单调整。
4.移除存档(有bug)。 #### 小鲁班打野 2021-11-14 1.将FCDataWriteAndRead类功能拆分,读,写,删除操作分离开。
2.数据的读写删除加密解密操作改为使用FCDataSingles类中的对象,无需再new对象。 #### 小鲁班打野 2021-11-15 1.utils类微调。 #### 孤独的旅者 2021-11-21 1.修改文件读写方式,去掉了压缩与解压过程
2.调整了vw文件的数据 #### 小鲁班打野 2021-11-21 1.action相关内容优化。 #### 小鲁班打野 2021-11-25 1.实体类和lib类相关内容持续优化。 #### 小鲁班打野 2021-11-28 1.实体类和lib类相关内容持续优化。
2.新增了数十个bug。 #### 孤独的旅者 2021-11-30 1.修复加载数据失败问题
2.优化数据加载过程:去掉了从list.vw文件读取过程
3.优化了进度显示计算 #### 孤独的旅者 2021-12-30 1.优化代码,将监听类代码独立成类(暂不能运行) #### 孤独的旅者 2022-1-20 1.优化master类代码
2.部分鼠标或按键监听有问题 #### bpbwan(您的IE版本过低) 2022-3-03 1.增加了Excel文件填放按键的坐标区域,整理一波
2.修改了右键坦克剩降时灰色块问题bug,存档优化修复好case类型的event存档
3.联机功能新增和界面缩小调整优化(联机行走操作实现)
4.队伍功能增加(把npc徒弟也作为队伍里一员)
5.优化了按键操作放到单独线程避免和UI线程一起(队伍多的时候引起了画面卡顿) #### bpbwan(您的IE版本过低) 2022-3-10 1.重新整理优化了战斗和组队联机
2.编辑器修改攻击动画编辑大改,战斗界面
3.大改战斗动画框架搭建完成
4.人物和怪物的普通攻击、防守、投掷动画 #### bpbwan您的IE版本过低 2022-3-14 一、已完成的动画:动画编辑已支持增改删动画和物品绑定动画
1.加入持续性状态机制,比如+防御1回合后自动消除,比如燃烧3回合持续掉血等
2.弹弓动画
3.人类手枪动画
4.战斗中坦克乘降
5.坦克副炮攻击动画
6.坦克主炮攻击动画
7.坦克SE动画
8.角色战斗死亡的动画(竖个墓碑)
二、联机战斗功能已经通过测试,攻击计算公式未准确完善
三、大地图多人坦克共存可显示(**能看见乱放的别玩家坦克,但不能使用别的玩家的**)
四、大改了物品编辑器,取消五行属性,加上酸,火焰,毒气,麻痹,睡眠,冷冻属性 #### bpbwan您的IE版本过低 2022-3-18 1.修改了事件编辑编辑器(剧情战斗编辑)
2.增加了一个战狗boss和红狼坦克以及剧情战斗,地图没动,需要统一更改地图数据,把fightdog放置在dongxue1-2位置对话就可以触发选择战斗了 增加文件:
data/character/fightdog.vw
data/character/honglang.vw
data/event/testbattledog.vw
data/event/testbattleendSay.vw
data/event/testbattlehonglan1-1.vw
data/event/testbattlestartSay.vw
data/monster/dog.vw
data/tank/honglangcar.vw
3.动画编辑器更加完善了怪物攻击动画的编辑
4.删除了一些测试代码 #### bpbwan您的IE版本过低 2022-3-21 1.Laduo地图作为调试地图,以后测试模块都先放这
2.增加了牵引系统并且多人可显示,和统一了共享显示抽象类FCPropulsion(有visiable控制),共享显示方式是 FCMutilPlayPropulsionCache.loacalShareIt,之前提交的坦克共享显示也都迁移到用这种方式。将要共享显示的对象继承FCPropulsion就行了,比如FCtank继承了FCPropulsion。
3.优化了队伍行走 #### 孤独的旅者 2022-3-22 1.优化了Block参数,去掉数字化ID,改为字母+数字组合形式。
2.修复MapEditJpanel素材显示位置错位问题。
3.设置窗口化模式下缩放比例锁定,以及缩放带来的系列渲染错位问题。
4.新增event文件:
LaDuoToLaDuo-ZuChe.vw
LaDuo-ZuCheToLaDuo.vw
5.修改map文件:
LaDuo.vw
6.新增block文件:
DiTanA1.vw
DiTanA2.vw
DiTanA3.vw
DiTanA4.vw
DiTanB1.vw
DiTanB2.vw
DiTanB3.vw
DiTanB4.vw
DiTanC1.vw
DiTanD1.vw
DiTanD2.vw
DiTanD3.vw
DiTanD4.vw
ZhaLan8.vw
7.新增block图片:
DiTanA1.png
DiTanA2.png
DiTanA3.png
DiTanA4.png
DiTanB1.png
DiTanB2.png
DiTanB3.png
DiTanB4.png
DiTanC1.png
DiTanD1.png
DiTanD2.png
DiTanD3.png
DiTanD4.png
ZhaLan8.png
8.添加特色鼠标指针,增加图片:
stick.png
9.修复了没有save文件夹时报错问题。 #### bpbwan您的IE版本过低 2022-3-23
1.角色背包,和坦克背包的UI更新和坦克道具获得备份对象 2.底盘编辑增加了弹仓和穴编辑 3.修复了战斗bug 4.增加了热键Q,可角色间拖放物品到不同背包,坦克背包已经可用 #### bpbwan您的IE版本过低 2022-3-26
1.修改了联机框架,可以支持多人了 #### bpbwan您的IE版本过低 2022-3-31
1.增加拖尸体
2.增加了带属性伤害和持续性的火炎瓶,酸瓶,睡眠瓶,冷冻瓶,麻痹瓶,毒气瓶(用于测试属性效果和持续效果)
冷冻瓶,火瓶概率着火炎烧2回合,
睡眠瓶概率睡眠,3回合,睡眠中受到伤害会醒
麻痹瓶持续麻痹能持续到战斗结束
毒气也是能持续到战斗结束
酸瓶概率中酸2回合
3整理了say对话代码变得易懂
4.增加了明奇电击复活(包括团灭动画复活和带尸体复活
5.战斗界面增加了快捷键和道具快捷键等
6.右键只能乘降,F键对话和调查
#### bpbwan您的IE版本过低 2022-4-2
0.增加了上床睡觉功能
1.地图动画基础框架完成加编辑器
2.自动触发事件类型增加,如进入某个镇子,踩中某地块自动将城镇跳转地图事件id记录到可传送目标中, 传送目标先选按F选择乘城镇选择目标并开启传送镇,共3秒后跳转到对应地图
3.镇传送阵功能完成(去波布的传送阵传回拉多可以试)(要先踩拉多的门口触发能传送拉多的功能)
4.重构npc随机行走会走偏问题和完善路线行走,大大的优化
改动的地图有LaDuo-ChuanZhen.vw,bobu-chuanzhen.vw,bobu.vw,home2.vw
#### bpbwan您的IE版本过低 2022-4-10
1.完善增加了物品商店,修理服务和补满服务店,C装置升级店,发动机升级店,底盘改造升级店,
出租战车店,旅店住宿店,洗车店(打蜡洗酸,铲粪), 赏金店基础功能(都有对应的npc放在拉多测试)
2.修复加载存档成别的存档的bug
3.坦克减sp功能
#### bpbwan您的IE版本过低 2022-4-15
1.右键使用物品功能
2.增加了探测仪功能
3.更改了物品编辑生成和怪物编辑生成的方式,弃用编辑器里的物品编辑器和怪物编辑器,全用EXCEL文件生成,
使用方式分别执行BuildFCMonsterByExcelMain,BuildFCItemByExcelMain。excel文件为”重装机兵V-数据-怪物.xls“
腾讯文档共享连接仅限群内分享和编辑。
#### bpbwan您的IE版本过低 2022-4-29
1.修改了地图遇怪结构,完善了怪物攻击和物品使用框架,增加和修改了很多攻击动画,呼叫同伴等技能完善,坦克传真也完善了,帮助功能等等等
2.完善联机功能等等
3.完善了初版测试版可以玩的版本V0.9.3 2022
#### 孤独的旅者 2022-5-4
1.美化UI
#### bpbwan您的IE版本过低 2022-5-17
1.增加了门事件结构,指定钥匙开门(姐姐的房间)优化行走键的短按摆向和长按行走等
2.遇怪太频繁问题优化,增加个人使用的气息屏蔽器
3.增加组队场景同步指令,同步场景变化,比如开门等等
4.连接坦克可以共享乘坐了,规则如下
规则1.坦克原车主要是退出游戏了,玩家占用的坦克直接消失(不管战斗中)
规则2.别人的玩家坦克不能牵引,只能乘坐
规则3.占用的坦克被占用要时刻更新位置给原主人
规则4.占用的坦克保存存档的不能保存到本地
规则5.占用的坦克保允许偷拿坦克里的道具背包等
规则6.建立安全地图(拉多的车库),这个地图内不可见别人的坦克也偷不了
#### bpbwan您的IE版本过低 2022-5-18
1.增加了地图功能,(购买地图使用后永久获得,按X)地图可显示联机玩家位置 #### bpbwan您的IE版本过低 2022-5-30
1.出租的战车不能改造和移动装备,如果严重损坏的是发动机、C装置或底盘,则会立即强制下车
2.新增一个护手套装备类型
3.更改坦克的底盘重量计算方式。和守备力改造,最大守备力,职业使用限制
坦克每增加1点守备力就增加0.035t,开一个洞-1t,增加一个弹仓是0.22t
主副穴通用特点增加
4.原版全部出租车添加
5.扳手功能完善
6.原版全部地区出租店员,人类,坦克武器和工具店员,营地商人npc(物品商店和功能对话全部已添加,按地图放置即可使用)
#### bpbwan您的IE版本过低 2022-5-30
1.提交快捷编辑的工具BuildFCVendShopEventMain,BuildFCOtherNpcEventMain,BuildFCMapHideEventMain
BuildFCDoorEventMain,BuildFCCaseEventMain对应各种事件用excel辅助生成 #### bpbwan您的IE版本过低 2022-6-10
V0.9.4 2022 完成一轮更新
1.增加怪物攻击次数概念
2.防弹衣会掉防到防御变0
3.战斗中能使用装备功能和整理了一波怪的攻击技能,优化战斗信息,全部怪物的图片增加
4.军号,花板,消防器等等道具完善功能添加
5.拉多镇全npc人物对话完善
6.增加多段对话功能
7.酒吧喝酒功能完成
8.完善初始剧情隐藏和展示功能
9.初始条件,拉多村没帐篷-完成
10.剧情条件1,拿到第一俩战车后,酒吧的红狼要消失,拉多村的帐篷出现,前往上方的路牌要消失-完成
11.本地队友随地脱队留在原地和进队功能完成
#### bpbwan您的IE版本过低 2022-6-15
麦基全地图和npc功能,对话以及传送全完成
找戒指换宝石镜剧情完成开发
麦基传真机功能完成
林间小屋npc功能和对话完成
麦基南营地地图对话全完成
波布全对话功能地图完成
新增内容波布投资中心
波布投资项目(公司注册投资公司)
增加标新立异的玩家对话系统
bobu南屋子duck加入剧情
#### bpbwan您的IE版本过低 2022-6-23
1.增加了人物投掷动作 2.增加了一个专门快速测试怪物攻击的npc 3.伤害显示 4.钩爪 5.剧情增加 #### bpbwan您的IE版本过低 2022-7-7
1.巨型炮炮击动画增加
2.刀砍动画
3.枪支动画(普通子弹)
4.火炮动画(普通)
5.回旋镖动画
6.按键行走 以上增加和大优化