请选择时期:
怀孕准备 怀孕 分娩 宝宝0-1岁 宝宝1-3岁 宝宝3-6岁

模拟人生4自制查询城镇人口mod教程(模拟人生4城镇居民怎么增加)

来源: 最后更新:22-12-24 07:10:58

导读:该教程主要目的是让你习惯于在Sims4的Python代码中找到东西。它是一个巨大的对象,类和函数的网络,所以很容易在里面迷路。通过这个教程,我们将学习制作一个“查询城镇人口”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)处理完控制台部分后,下面让我们来编写一个获取城镇人口的函数:

  需要使用到的集合:“模拟”。

  在“sims”文件夹中,有一个名为“sim_info_manager.py”的文件。

  在该文件中有一个名为“SimInfoManager”的类。它是用来保存每个小人的数据的。如果我们可以计数其列表中的所有sim个数,那么我们就能得到所有模拟的人口了。通过查看TS4的存储库中的其余代码,我注意到一个模式:sim_info_manager是服务(services)中的一个对象,位于services文件夹的__init__.py中。它有一个非常重要的函数:get_all()<-看到名字应该就猜到是什么作用的了吧?

  这里是我们到目前为止的代码:

  import sims4.commands
@ sims4.commands.Command('getpopulation',command_type = sims4.commands.CommandType.Live)

  (写了这么久才两行代码zzz,作者表示请大家坚持看下去,因为大部分的关键线索都已经找到了,就差把它们合一起啦~功夫不负有心人~)

  现在我们导入service(包含了刚才说的__init__.py):

  import services

  然后在装饰器下面声明一个函数:

  def getpop(_connection = None):

  *getpop是你的函数名,_connection是形参的名称,随便叫什么都可以,作者表示你就算叫它fluffy_kittens(毛毛猫)都行。

  所以,现在我们知道如何输出到控制台(通过调用CheatOutput),我们就可以定义一个调用它的变量,输出得字符串是类型output('blablabla'):

  output = sims4.commands.CheatOutput(_connection)

  但我们不想只输出'blablabla',我们想输出城镇的人口。这是我们在service中使用sim_info_manager的地方。

  output('Your town\'s population is {}'.format(len(services.sim_info_manager().get_all())))

  *可以把英语改成中文

  output('你的城镇人口是: {}'.format(len(services.sim_info_manager().get_all())))

  通过我们在services.sim_info_manager()中调用get_all()时获得的列表长度,我们得到了城镇中所有小人的数量!完成!

  这是我们的最终代码:

  import servicesimport sims4.commands@sims4.commands.Command('getpopulation', command_type=sims4.commands.CommandType.Live)def getpop(_connection=None):output = sims4.commands.CheatOutput(_connection)output('Your town\'s population is {}'.format(len(services.sim_info_manager().get_all())))

  游戏截图:

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

  Q1:首先……如何编写python?

  下载一个文本编辑器,如Notepad++ (仅windows),sublime Text (支持windows、OS X、Ubuntu),两个都很好用~

  *notepad++编写时选择语言>python,sublime选择view>syntax>python

  Q2:如何把.py文件转换成.pyo?

  (1)下载python3.3.5(模拟人生使用的python版本),安装时别忘了把安装python路径(path) 这个选项也选上

  (2)保存如下代码,格式为.bat,文件名随便取,比如:PythonOptimizeCompile.bat

  import sims4.commandsimport services@sims4.commands.Command('getpopulation', command_type=sims4.commands.CommandType.Live)def getpop(_connection=None):output = sims4.commands.CheatOutput(_connection)output('Your town\'s population is {}'.format(len(services.sim_info_manager().get_all())))

  好了,然后把已经写好的.py文件拉到xxx.bat上,你会发现文件夹里多了一个.pyo文件,把.py和.pyo打包到一起,放入mod文件夹就可以啦~

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

免责声明:本文系转载,版权归原作者所有;旨在传递信息,其原创性以及文中陈述文字和内容未经本站证实。

本文地址:http://www.bbbaike.com/baike/youxi/1137100.html

声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 联系邮箱:kefu#bbbaike.com (请把#替换成@)

关于我们 | 广告服务 | 网站合作 | 免责声明 | 联系我们| 网站地图

© 2022-2024 宝宝百科网 all rights reserved. 沪ICP备2023005727号-4