1. 开发环境准备#
1.1. 通过本教程,你可以做到…#
本教程将讲解如何制作新月杀扩展,包括武将、游戏牌和模式等。我们在新月杀里玩到的武将、游戏牌和模式等,主要都是用计算机语言Lua编写完成的。本教程就将介绍如何为新月杀制作Lua扩展。所有新月杀已有的武将、游戏牌和模式都可以作为我们的参考。
1.2. 熟悉新月杀#
在制作扩展前,我们先需要熟悉一下新月杀的文件结构。
打开新月杀文件目录,和制作扩展相关的主要有packages、lua这两个文件夹。
新月杀的目录结构#
1.2.1. packages/#
packages文件夹是储存所有游戏卡牌扩展和武将扩展的位置。 新月杀的本体只包含standard、standard_cards、maneuvering以及test四个包,它们属于核心扩展,也就是三国杀的标准包(武将)、标准游戏牌包和军争游戏牌包,还有(专门用于测试而非游玩的)测试包。
如果你进行过服务器联机的话,会自动同步服务器上的所有拓展包,例如shzl(神话再临)。在新月杀中,扩展包拥有在线安装/在线更新的功能,这种功能都是依托于git进行的,因此如果你打算将自己的扩展包发布出去的话,就需要为其创建git仓库,并托管到git托管网站去。如何进行扩展包发布和git托管参见其他教程。
packages/下存放着拓展包#
1.2.2. lua/#
lua文件夹是新月杀运行规则的核心。我们以lua文件夹下的server文件夹为例:
server文件夹#
server文件夹中包含许多在客户端执行文件。例如,events文件夹中是三国杀各类“事件”的执行规则,它定义着诸如使用牌事件的流程、扣减体力事件各种时机的先后顺序,这些流程是我们按照规则集现有结算规则严格制定的。
虽然lua文件夹神通广大,但并非是我们扩展包开发需要修改的内容。我们需要熟悉其中游戏结算的逻辑,在其中查阅要利用的函数,寻找调试修正bug的方法。在没有思路实现某个功能时,翻翻lua文件夹总能有新发现^_^。
这里所包含的文件均是游戏的核心代码,当你对新月杀的执行流程不熟悉的时候,不要忘记看一下这些文件哦,目前我们新人的话,可以先暂时不用理会这里面的内容,但是不要忘记这里的内容非常重要哦。
1.3. 准备代码编辑器#
新月杀扩展的开发完全使用Lua语言。采用Lua不需要编译,语法简单易懂, 外加和太阳神三国杀的一些渊源,使用Lua完全符合我们自由、开放、可扩展的diy平台理念。
尽管使用记事本就能直接编辑Lua文件,但工欲善其事必先利其器, 用一款好的代码编辑器对于提高编程效率、查漏补缺是很有帮助的。 出于易用性和免费的考虑,我们推荐用VSCode进行编写(百度搜索下载即可)。
vscode#
VSCode提供的插件能为开发提供很大便利。点击侧边栏,选择第五项“扩展”选项卡, 直接搜索插件名字安装即可。
插件面板#
中文翻译包
安装中文翻译插件吧!#
难道有人看英文比中文更顺眼?
Lua
安装Lua插件吧!#
Lua插件提供了强大的代码提示、补齐、纠错、注释功能,妈妈再也不用担心我打错字啦^_^。
1.4. 在VSCode中部署工作区#
重要
注意,因为我们开发、调试都是在本地进行的,还没有上传至服务器,所以最好复制一份游戏本体,用来玩的和用来开发的区分开,不然我们修改过文件的游戏是不能连接服务器的。 将FreeKill-release文件夹(或者,你的新月杀的根目录所在的文件夹)复制一份,粘贴在另外一处,改名为FreeKill-dev(或者“新月杀开发版”,名字无所谓啦)以区分。
为了方便在文件间进行切换,以及全局搜索相关内容,我们先将游戏目录部署到工作区。 点击VSCode的侧边栏,选择第一项“资源管理器”选项卡:
资源管理器面板#
点击“打开文件夹”,选择我们用来开发的游戏目录(FreeKill-dev文件夹)。
资源管理器中显示出文件目录就部署好啦。
部署完成工作区后,应该像这样#
1.5. 用VSCode写东西#
好了,我们终于可以开写了……但是写啥呢……? 你可以直接前往下一章节创建第一个武将,但这里先说一下你会碰到的操作/快捷键吧。
Ctrl+F是在文件内搜索特定字符串的常见快捷键,但是更常用的,则是它的高级形式——在整个工作区(也就是FreeKill-dev文件夹)里搜索,这个的快捷键是
Ctrl+Shift+F通过搜索已有的相对成熟的代码,可以解决很多问题~
Ctrl+S是保存本文件,你会经常摁它的。未保存的文件,其文件名左边会有一个实心圆,表示该文件有未保存的东西。
提示
经常保存有益身心健康,谁也不想辛辛苦苦写的东西全作古吧……
左侧的资源管理器通常有四个区域——这里只摘选经常用的地方
打开的编辑器:这里是你打开的所有文件的列表,未保存的文件也会显示一个实心圆。
资源视图:其实名字一般是你的工作区(一般是游戏目录,不会有人拿扩展包当工作区吧), 这里会用树形结构显示你打开的全部文件,也可以通过
Ctrl+F按照文件名搜索文件。时间线:这里保存着你各种保存后的文件历史,点击其中一个历史记录会显示它与现存版本之间的差异。
提示
单纯撤销文件的历史的名字是不一样的,可以通过这个撤销你的撤销。