AliceInCradle 机制解析·绪论 第一章
分享者在分享游戏程序时不应当对游戏文件中的内容做任何增添、删减、改动,若有任何增添、删减、改动,应当在分享时附上部分信息,且应当在游戏文件以外附上。
前言 · 本文仅适用于现在
本人不会以任何形式,在任何平台发布AliceInCradle的反编译代码。本文仅帮助对游戏内容进行理解。所有关于“XXX内容怎么获取”的问题不会得到解答。请在Fantia上注册账号后,采用官方方法下载并使用AliceInCradle。本人对任何读者阅读后作出行为产生的不良结果不负任何责任。
(但愿不会有免责声明被搬出来用的一天吧……)
另外,本人在此提出倡议:如果确希望在互联网上发布该游戏的修改体,请仅包含尽可能少的文件,避免各类不必要的麻烦。例如,如果您制作了一个带有TAS的修改版本,希望能够仅发布修改后的Assembly-CSharp.dll。(举例中文下载站上的去码插件)
*谁适合阅读这篇文章?
对游戏具体机制研究的爱好者可以查看; 主要面向模组或类似产品的制作者。

正文 Alice In Cradle 绪论上·游戏的基本组成
本文基于0.21a 0.21r撰写。如果在新版本中出现错误,请参看评论。
众所周知:Alice In Cradle,下称AIC,是一款使用C#语言及Unity引擎编写的游戏。
为方便分析,在此把游戏内容分为三部分:
C#语言部分。这一部分的游戏内容主要包含在Assembly-CSharp文件中。如果您希望制作模组等作品,可以考虑合理使用BepInEx等现成作品,尽量避免直接修改原DLL文件。
脚本语言部分。这一部分的游戏内容包含大多数地方单位的数据、所有事件对话、地图数据以及部分算法。暂且将本地化文件也归入这一类,因为编辑事件对话与本地化二者是直接绑定的。
其他文件部分。主要包括各类艺术素材。像素画素材可以前往fantia下载,其他素材也许可以向某些知名玩家或其所属群聊申请。谨记,游戏内文件与你常用的文件有所不同。另外,向互联网上公开发布艺术素材可能是违法的。
在本系列内容中,我们将对前两部分进行讨论。关于第三部分素材,我们建议您通过其他的通用手段进行处理。关于具体如何获取到以上三部分内容,并不在本文讨论范围内。见谅。

对于三部分内容的进一步介绍:
对于C#部分,该部分是游戏内容的核心。当你尝试通过修改脚本改变游戏行为时,请先确认该行为是否为硬编码(举例:按下Esc键时唤出的菜单,其选项的编号疑似是硬编码)。如果是,也许您能考虑为其制作对应的脚本并替换——本人也许正在尝试这方面内容的制作——或者什么都不做,以保证安全。
当然,如果您认为可以,您也可以直接修改硬编码,这也是最常用且自由度最高的方案。但个人认为,尽管有如BepInEx的成熟组件,出于对程序安全性与组件通用性的考虑,直接修改dll程序的行为不应被大规模地允许。
很难说制作方究竟根据什么区分应用硬编码与否。但可以确定的是,大多数基础的机制都应当存在于C#部分中——当然,什么叫基础,什么叫机制,本人也很难说清,一切以具体运行机制为准。
对于脚本语言部分,该部分的运行机制,即其语法、功能等,可以直接在第一部分中找到答案。目前来看,该系统并未达成图灵完备,想仅用内置脚本改出大作的短期内可以洗洗睡了。未来本人可能会对脚本的格式等问题进行进一步汇总,但不是现在。当然,脚本似乎又通过其他软件生成,尤其是地图数据脚本,我们不建议您跟那一屏幕的数据过不去。
也许会做个专门的编辑器吧……但在群里立了那么久Flag也没啥做出来……
为了对游戏的BGM等内容进行处理,请搜索“CriWare”以获取更多信息。本人绝对意义上地不建议您未授权地将BGM上传到网络平台,尤其是如 网易云音乐 的音乐网站的专辑等存盈利可能的部分。对于其他艺术资源内容,您可以直接通过搜索引擎获取到相当多的内容,包括打开方式等。
举例说明:
需求1:了解伤害计算方式 - C#代码中
需求2: 了解史莱姆运行AI - C#代码中
需求3:把开箱改成好运来 - 其他文件中,具体而言,StreamingAssets中
需求4:去除*这不合法吧* - C#代码中;其他文件中
需求5:了解史莱姆数值 - 脚本程序中
Part 中 大概会是讲这几部分是怎么组织起来的
Part 下 则是讲整体框架结构与一些重点细节
接下来大抵会随缘更新各类游戏机制。不过众所周知,我是鸽子。

