1. 开发环境准备#

1.1. 通过本教程,你可以做到…#

本教程将讲解如何制作新月杀扩展,包括武将、游戏牌和模式等。我们在新月杀里玩到的武将、游戏牌和模式等,主要都是用计算机语言Lua编写完成的。本教程就将介绍如何为新月杀制作Lua扩展。所有新月杀已有的武将、游戏牌和模式都可以作为我们的参考。

1.2. 熟悉新月杀#

在制作扩展前,我们先需要熟悉一下新月杀的文件结构。

打开新月杀文件目录,和制作扩展相关的主要有packages、lua这两个文件夹。

../../_images/0-1.jpg

新月杀的目录结构#

1.2.1. packages/#

packages文件夹是储存所有游戏卡牌扩展和武将扩展的位置。 新月杀的本体只包含standard、standard_cards、maneuvering以及test四个包,它们属于核心扩展,也就是三国杀的标准包(武将)、标准游戏牌包和军争游戏牌包,还有(专门用于测试而非游玩的)测试包。

如果你进行过服务器联机的话,会自动同步服务器上的所有拓展包,例如shzl(神话再临)。在新月杀中,扩展包拥有在线安装/在线更新的功能,这种功能都是依托于git进行的,因此如果你打算将自己的扩展包发布出去的话,就需要为其创建git仓库,并托管到git托管网站去。如何进行扩展包发布和git托管参见其他教程。

../../_images/0-2.jpg

packages/下存放着拓展包#

提示

如果你没有进行过联机,可以直接在新月杀的管理扩展包功能中, 使用“从URL安装”,输入以下扩展包的链接,将这些本教程会涉及到的需参考的扩展包安装入你的新月杀: 神话再临一将成名界限突破标包

1.2.2. lua/#

lua文件夹是新月杀运行规则的核心。我们以lua文件夹下的server文件夹为例:

../../_images/0-3.jpg

server文件夹#

server文件夹中包含许多在客户端执行文件。例如,events文件夹中是三国杀各类“事件”的执行规则,它定义着诸如使用牌事件的流程、扣减体力事件各种时机的先后顺序,这些流程是我们按照规则集现有结算规则严格制定的。

虽然lua文件夹神通广大,但并非是我们扩展包开发需要修改的内容。我们需要熟悉其中游戏结算的逻辑,在其中查阅要利用的函数,寻找调试修正bug的方法。在没有思路实现某个功能时,翻翻lua文件夹总能有新发现^_^。

这里所包含的文件均是游戏的核心代码,当你对新月杀的执行流程不熟悉的时候,不要忘记看一下这些文件哦,目前我们新人的话,可以先暂时不用理会这里面的内容,但是不要忘记这里的内容非常重要哦。

1.3. 准备代码编辑器#

新月杀扩展的开发完全使用Lua语言。采用Lua不需要编译,语法简单易懂, 外加和太阳神三国杀的一些渊源,使用Lua完全符合我们自由、开放、可扩展的diy平台理念。

尽管使用记事本就能直接编辑Lua文件,但工欲善其事必先利其器, 用一款好的代码编辑器对于提高编程效率、查漏补缺是很有帮助的。 出于易用性和免费的考虑,我们推荐用VSCode进行编写(百度搜索下载即可)。

../../_images/0-4.jpg

vscode#

VSCode提供的插件能为开发提供很大便利。点击侧边栏,选择第五项“扩展”选项卡, 直接搜索插件名字安装即可。

../../_images/0-5.jpg

插件面板#

  1. 中文翻译包

../../_images/0-6.jpg

安装中文翻译插件吧!#

难道有人看英文比中文更顺眼?

  1. Lua

../../_images/0-7.jpg

安装Lua插件吧!#

Lua插件提供了强大的代码提示、补齐、纠错、注释功能,妈妈再也不用担心我打错字啦^_^。

1.4. 在VSCode中部署工作区#

重要

注意,因为我们开发、调试都是在本地进行的,还没有上传至服务器,所以最好复制一份游戏本体,用来玩的和用来开发的区分开,不然我们修改过文件的游戏是不能连接服务器的。 将FreeKill-release文件夹(或者,你的新月杀的根目录所在的文件夹)复制一份,粘贴在另外一处,改名为FreeKill-dev(或者“新月杀开发版”,名字无所谓啦)以区分。

为了方便在文件间进行切换,以及全局搜索相关内容,我们先将游戏目录部署到工作区。 点击VSCode的侧边栏,选择第一项“资源管理器”选项卡:

../../_images/0-8.jpg

资源管理器面板#

点击“打开文件夹”,选择我们用来开发的游戏目录(FreeKill-dev文件夹)。

资源管理器中显示出文件目录就部署好啦。

../../_images/0-9.jpg

部署完成工作区后,应该像这样#

1.5. 用VSCode写东西#

好了,我们终于可以开写了……但是写啥呢……? 你可以直接前往下一章节创建第一个武将,但这里先说一下你会碰到的操作/快捷键吧。

  • Ctrl+F是在文件内搜索特定字符串的常见快捷键,

    但是更常用的,则是它的高级形式——在整个工作区(也就是FreeKill-dev文件夹)里搜索,这个的快捷键是Ctrl+Shift+F

    通过搜索已有的相对成熟的代码,可以解决很多问题~

  • Ctrl+S是保存本文件,你会经常摁它的。

    未保存的文件,其文件名左边会有一个实心圆,表示该文件有未保存的东西。

提示

经常保存有益身心健康,谁也不想辛辛苦苦写的东西全作古吧……

  • 左侧的资源管理器通常有四个区域——这里只摘选经常用的地方

    • 打开的编辑器:这里是你打开的所有文件的列表,未保存的文件也会显示一个实心圆。

    • 资源视图:其实名字一般是你的工作区(一般是游戏目录,不会有人拿扩展包当工作区吧), 这里会用树形结构显示你打开的全部文件,也可以通过Ctrl+F按照文件名搜索文件。

    • 时间线:这里保存着你各种保存后的文件历史,点击其中一个历史记录会显示它与现存版本之间的差异。

    提示

    单纯撤销文件的历史的名字是不一样的,可以通过这个撤销你的撤销。