模拟人生4自制查询城镇人口mod教程 如何自制查询城镇人口mod


模拟人生4自制查询城镇人口mod教程 如何自制查询城镇人口mod


玩家“alsie”分享的该教程主要目的是让你习惯于在Sims4的Python代码中找到东西 。它是一个巨大的对象,类和函数的网络,所以很容易在里面迷路 。通过这个教程,我们将学习制作一个“查询城镇人口”mod 。希望通过这个教程,你可以简单的理解这个游戏框架是怎么工作的 。感兴趣的朋友们快来看看吧!
自制查询城镇人口mod教程
*以下内容需要一点写代码的基础,哪怕你只是个会看c代码的萌新,完全不懂的可能会觉得有点懵逼 。
你需要如下内容:
“模拟人生4的核心Python模块、对Python如何工作的一点想法”
所以,现在我们来看看在sims 4(PY文件,不是PYO文件)提供的Python模块 。你可以在这里找到有用的方法来获得这些核心模块 。“基础(base)”,“核心(core)”和“模拟(simulation)”都是在游戏的引擎中使用的模块集合的标签 。这里我们主要关注“核心”和“模拟”两大类 。“base”包含了大量的库模块,可用于游戏代码中的某些微操作,但不一定是我们经常要看的东西 。“核心”和“模拟”对于改装游戏相对而言更加重要 。
要成功完成我们的小mod,我们需要一个你可以键入的命令 。当输入它的时候,Sims 4会告诉你的游戏中的模拟人口是多少 。现在我们知道了目标,就可以开始寻找我们需要的东西了 。
首先是“核心”集合 。用google搜索:“shared_commands”和“sims4” 。在sims4中,你会发现几个与修改和创建Python模块、游戏运行所必需的算法、Sims 4用户界面中的关键方面相关的函数库 。如果我们想找出在哪里有一个功能,我们就可以从这里面找 。这样,游戏就能允许我们创建新的控制台(Ctrl + Shift + C)命令了 。
让我们来看看Command函数:
代码:*定义Command函数
def Command(* aliases,command_type = CommandType.DebugOnly,pack = None):
* aliases:输入的命令字符串名称
command_type:见下文
pack = None:不用管
hin好!这就是我们需要的代码!让我们开始写我们的脚本吧!
代码:*导入xxx包
import sims4.commands
现在,是时候插入调用sims4.commands.Command()作为装饰器 。任何我们在装饰器下面直接定义的函数都会成为它的“主体”(装饰器将应用于该函数) 。不过在我们创建命令之前,我们需要确保我们已经确定了命令的类型 。在“commands.py”中,有一个枚举的命令类型列表:
class CommandType(enum.Int, export=False):
OK,所以我们要定义我们的命令类型为Live命令 。由于之前的Command()已经传递了一个command_type的变量,现在需要在我们自己的代码中覆盖它为:
@sims4.commands.Command('getpopulation', command_type=sims4.commands.CommandType.Live)
现在我们要在这个装饰器下声明一个函数,给出一些输出 。当玩家输入“getpopulation”时,函数返还镇上的人口 。
首先,我们需要找出(1)怎么把代码输出到控制台(Ctrl + Shift + C),(2)如何获取镇的人口 。这是整个脚本最难的地方 。
(1)我们来看看“commands.py”,找到有关输出的代码:
class CheatOutput(Output):
__qualname__ = 'CheatOutput'
def __call__(self, s):
cheat_output(s, self._context)
“__call__”函数的作用是:当用户输入某特定字符串时,调用所对应的指定函数 。
(2)处理完控制台部分后,下面让我们来编写一个获取城镇人口的函数:
需要使用到的集合:“模拟” 。

推荐阅读