新月杀拓展之书# 这部分文档基本上从太阳神三国杀经典的拓展制作教程《太阳神三国杀拓展开发参考》修改而来, 原作者为独孤安河。目前仍在施工且大概率过时了。 1. 开发环境准备 1.1. 通过本教程,你可以做到… 1.2. 熟悉新月杀 1.2.1. packages/ 1.2.2. lua/ 1.3. 准备代码编辑器 1.4. 在VSCode中部署工作区 1.5. 用VSCode写东西 2. 创建拓展包与新武将 2.1. 扩展包的内容 2.1.1. init.lua 2.1.2. 子扩展包 2.1.3. audio, image 2.1.4. 其他文件 2.2. 创建拓展包 2.3. 创建武将 3. 添加技能 4. 武将美化 4.1. 软件准备 4.2. 图片准备 4.3. 处理图片 4.4. 将图片加入游戏 5. 创建一个新技能 6. 添加音效 6.1. 打造自己的声音工作室 6.2. 添加技能使用音效 6.3. 添加武将阵亡音效 7. 发布与更新自己的拓展吧 7.1. 关于Git 7.2. 安装Git 7.3. 初次运行Git 7.4. 为拓展包创建git仓库 7.5. 上传拓展 7.6. 更新拓展 8. 添加提示信息 8.1. 添加代码注释 8.2. 显示战报信息 9. 修改距离 10. 技能管理 10.1. 技能判定 10.2. 创建技能 10.2.1. 视为技 10.2.2. 触发技 10.2.3. 禁止技 10.2.4. 距离修改技 10.2.5. 手牌上限技 10.2.6. 攻击范围技 10.2.7. 失效技 10.2.8. 目标选择技 10.2.9. 可见技 10.2.10. 卡牌技 10.3. 获得或失去技能 11. 体力变更 11.1. 体力流失 11.2. 制造伤害 11.3. 回复体力 11.4. 体力上限修改 12. 游戏进程 12.1. 阶段触发技能 12.2. 跳过阶段 12.3. 启用翻面 12.4. 额外回合 13. 新月杀标记/技能名格式整理 13.1. 新月杀标记格式整理 13.2. 新月杀技能名格式整理 13.3. 新月杀其他命名格式整理 13.4. 新月杀QML备注 14. 技巧:调试您的代码 14.1. 使用debugger.lua 14.2. 利用VSCode的Lua调试插件进行调试 14.3. 一些在调试中可能有用的函数 14.3.1. print 14.3.2. p 14.3.3. json.encode 14.3.4. GameLogic:dumpEventStack() 15. 解析:事件栈 15.1. 何谓事件 15.2. 初步观察事件栈 15.3. 如何调查事件栈 15.4. 如何给事件附加数据 15.5. 如何终止事件 15.6. 关于事件的灾后清理 16. 解析:Exppattern 16.1. pattern的语法 16.2. 对pattern进行测试 17. 拓展规范文档 17.1. 简介 17.2. 拓展与包的基本结构 17.2.1. audio 17.2.2. image 17.2.3. init.lua 17.3. 子扩展包的结构 17.4. 武将子扩展包 17.5. 卡牌子扩展包 17.6. 模式子扩展包 17.6.1. 游戏模式的主要定义和逻辑定义 17.6.2. assignRoles() 17.6.3. adjustSeats() 17.6.4. chooseGenerals() 17.6.5. buildPlayerCircle() 17.6.6. broadcastGeneral() 17.6.7. prepareDrawPile() 17.6.8. attachSkillToPlayers() 17.6.9. prepareForStart() 17.6.10. action()