手機(jī)游戲> 模擬人生4> 游戲攻略> 綜合篇> 模擬人生4自制查詢城鎮(zhèn)人口mod新手教學(xué)

模擬人生4自制查詢城鎮(zhèn)人口mod新手教學(xué)

作者:互聯(lián)網(wǎng) 來(lái)源:游戲狗 發(fā)布時(shí)間:2017-06-14 11:52:55
上九游,領(lǐng)福利

模擬人生4自制查詢城鎮(zhèn)人口mod新手教學(xué),主要目的是讓你習(xí)慣于在Sims4的Python代碼中找到東西通過(guò)這個(gè)教程將制作查詢城鎮(zhèn)人口mod。模擬人生4自制查詢城鎮(zhèn)人口mod新手教學(xué)希望通過(guò)這個(gè)教程你可以簡(jiǎn)單的理解這個(gè)游戲框架是怎么工作的。

以下內(nèi)容需要一點(diǎn)寫代碼的基礎(chǔ),哪怕你只是個(gè)會(huì)看c代碼的萌新,完全不懂的可能會(huì)覺(jué)得有點(diǎn)懵逼。

你需要如下內(nèi)容:

“模擬人生4的核心Python模塊、對(duì)Python如何工作的一點(diǎn)想法”

所以,現(xiàn)在我們來(lái)看看在sims 4(PY文件,不是PYO文件)提供的Python模塊。你可以在這里找到有用的方法來(lái)獲得這些核心模塊。 “基礎(chǔ)(base)”,“核心(core)”和“模擬(simulation)”都是在游戲的引擎中使用的模塊集合的標(biāo)簽。這里我們主要關(guān)注“核心”和“模擬”兩大類?!癰ase”包含了大量的庫(kù)模塊,可用于游戲代碼中的某些微操作,但不一定是我們經(jīng)常要看的東西。 “核心”和“模擬”對(duì)于改裝游戲相對(duì)而言更加重要。

要成功完成我們的小mod,我們需要一個(gè)你可以鍵入的命令。當(dāng)輸入它的時(shí)候,Sims 4會(huì)告訴你的游戲中的模擬人口是多少?,F(xiàn)在我們知道了目標(biāo),就可以開始尋找我們需要的東西了。

首先是“核心”集合。用google搜索:“shared_commands”和“sims4”。在sims4中,你會(huì)發(fā)現(xiàn)幾個(gè)與修改和創(chuàng)建Python模塊、游戲運(yùn)行所必需的算法、Sims 4用戶界面中的關(guān)鍵方面相關(guān)的函數(shù)庫(kù)。如果我們想找出在哪里有一個(gè)功能,我們就可以從這里面找。這樣,游戲就能允許我們創(chuàng)建新的控制臺(tái)(Ctrl + Shift + C)命令了。

讓我們來(lái)看看Command函數(shù):

代碼:*定義Command函數(shù)

def Command(* aliases,command_type = CommandType.DebugOnly,pack = None):

* aliases:輸入的命令字符串名稱

command_type:見下文

pack = None:不用管

hin好!這就是我們需要的代碼!讓我們開始寫我們的腳本吧!

代碼:*導(dǎo)入xxx包

class CommandType(enum.Int, export=False):

OK,所以我們要定義我們的命令類型為L(zhǎng)ive命令。由于之前的Command()已經(jīng)傳遞了一個(gè)command_type的變量,現(xiàn)在需要在我們自己的代碼中覆蓋它為:

現(xiàn)在我們要在這個(gè)裝飾器下聲明一個(gè)函數(shù),給出一些輸出。當(dāng)玩家輸入“getpopulation”時(shí),函數(shù)返還鎮(zhèn)上的人口。

首先,我們需要找出(1)怎么把代碼輸出到控制臺(tái)(Ctrl + Shift + C),(2)如何獲取鎮(zhèn)的人口。這是整個(gè)腳本最難的地方。

(1)我們來(lái)看看“commands.py”,找到有關(guān)輸出的代碼:

class CheatOutput(Output):

__qualname__ = 'CheatOutput'

def __call__(self, s):

cheat_output(s, self._context)

“__call__”函數(shù)的作用是:當(dāng)用戶輸入某特定字符串時(shí),調(diào)用所對(duì)應(yīng)的指定函數(shù)。

(2)處理完控制臺(tái)部分后,下面讓我們來(lái)編寫一個(gè)獲取城鎮(zhèn)人口的函數(shù):

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

在“sims”文件夾中,有一個(gè)名為“sim_info_manager.py”的文件。

在該文件中有一個(gè)名為“SimInfoManager”的類。它是用來(lái)保存每個(gè)小人的數(shù)據(jù)的。如果我們可以計(jì)數(shù)其列表中的所有sim個(gè)數(shù),那么我們就能得到所有模擬的人口了。通過(guò)查看TS4的存儲(chǔ)庫(kù)中的其余代碼,我注意到一個(gè)模式:sim_info_manager是服務(wù)(services)中的一個(gè)對(duì)象,位于services文件夾的__init__.py中。它有一個(gè)非常重要的函數(shù):get_all()<-看到名字應(yīng)該就猜到是什么作用的了吧?

這里是我們到目前為止的代碼:

(寫了這么久才兩行代碼zzz,作者表示請(qǐng)大家堅(jiān)持看下去,因?yàn)榇蟛糠值年P(guān)鍵線索都已經(jīng)找到了,就差把它們合一起啦~功夫不負(fù)有心人~)

現(xiàn)在我們導(dǎo)入service(包含了剛才說(shuō)的__init__.py):

import services

然后在裝飾器下面聲明一個(gè)函數(shù):

def getpop(_connection = None):

*getpop是你的函數(shù)名,_connection是形參的名稱,隨便叫什么都可以,作者表示你就算叫它fluffy_kittens(毛毛貓)都行。

所以,現(xiàn)在我們知道如何輸出到控制臺(tái)(通過(guò)調(diào)用CheatOutput),我們就可以定義一個(gè)調(diào)用它的變量,輸出得字符串是類型output('blablabla'):

但我們不想只輸出'blablabla',我們想輸出城鎮(zhèn)的人口。這是我們?cè)趕ervice中使用sim_info_manager的地方。

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

*可以把英語(yǔ)改成中文

output('你的城鎮(zhèn)人口是: {}'.format(len(services.sim_info_manager().get_all())))

通過(guò)我們?cè)趕ervices.sim_info_manager()中調(diào)用get_all()時(shí)獲得的列表長(zhǎng)度,我們得到了城鎮(zhèn)中所有小人的數(shù)量!完成!

這是我們的最終代碼:

游戲截圖:

模擬人生4自制查詢城鎮(zhèn)人口mod新手教學(xué)

Q1:首先……如何編寫python?

一個(gè)文本編輯器,如Notepad++ (僅windows),sublime Text (支持windows、OS X、Ubuntu),兩個(gè)都很好用~

*notepad++編寫時(shí)選擇語(yǔ)言>python,sublime選擇view>syntax>python

Q2:如何把.py文件轉(zhuǎn)換成.pyo?

(1)python3.3.5(模擬人生使用的python版本),安裝時(shí)別忘了把安裝python路徑(path) 這個(gè)選項(xiàng)也選上

(2)保存如下代碼,格式為.bat,文件名隨便取,比如:PythonOptimizeCompile.bat

好了,然后把已經(jīng)寫好的.py文件拉到xxx.bat上,你會(huì)發(fā)現(xiàn)文件夾里多了一個(gè).pyo文件,把.py和.pyo打包到一起,放入mod文件夾就可以啦~

如轉(zhuǎn)載涉及版權(quán)等問(wèn)題,請(qǐng)作者與我司聯(lián)系,我司將在第一時(shí)間刪除或支付稿酬。

熱門游戲

模擬人生4
模擬人生4
t21_2-t21_1:0.0
休閑
《模擬人生4》是一款模擬類游戲
t21_4-t21_3:0.0
電腦版 加速器
最新動(dòng)態(tài),一手掌握
加速器下載 九游預(yù)約

玩家評(píng)論

(1068條)
加入九游群聊,開黑不愁,禮包全有
下載九游APP
點(diǎn)擊下載按鈕,或用手機(jī)二維碼掃描可直接下載對(duì)應(yīng)安裝包!
立即下載九游APP

全部評(píng)論

  • 紫懿 來(lái)自于 九游APP 2024-12-22 11:13

    什么時(shí)候可以下裁玩?

  • 豌豆xxg4h3 來(lái)自于 九游APP 2024-12-07 19:48

    快點(diǎn)給我下載,快點(diǎn),快點(diǎn),快點(diǎn)!不要對(duì)不起我的五星好評(píng)

  • 豌豆pw4a2d 來(lái)自于 九游APP 2024-10-30 00:05

    垃圾玩意,好評(píng)都刷的

  • 紅龍無(wú)指環(huán)4 來(lái)自于 九游APP 2024-10-01 13:34

    可不可以快點(diǎn)讓我把這個(gè)游戲下出,我還要拍視頻呢,真的很煩這種(`Δ′)!

  • 劍刃右雙頭龍4 來(lái)自于 九游APP 2024-10-17 15:06

    什么時(shí)候上線,開始玩

  • 豌豆rm7j18 來(lái)自于 九游APP 2024-10-06 19:38

    別預(yù)約了,實(shí)在排不上

  • 豌豆aamg4l 來(lái)自于 九游APP 2024-10-19 11:06

    我沒(méi)玩過(guò),反正不知道。預(yù)約了,

  • 豌豆kvs2p6 來(lái)自于 九游APP 2024-09-09 11:58

    官方已經(jīng)說(shuō)了,沒(méi)有手機(jī)端

  • 毀滅至春羽2 來(lái)自于 九游APP 2024-08-26 12:53

    有些人七年前就預(yù)約了,怎么還沒(méi)上?到底什么出?!

  • suuuuuuu 來(lái)自于 九游APP 2024-07-31 12:17

    這個(gè)應(yīng)該是下不了的,其實(shí)就是個(gè)幌子?

t26_2-t26_1:4.0

其他玩家還在玩

  • 相關(guān)閱讀

  • 最新文章

模擬人生4

模擬人生4
類型:休閑
安卓:即將測(cè)試
訂閱
《模擬人生4》是一款非常真實(shí)的模擬類游戲,模擬人生4無(wú)論是在畫面的表現(xiàn) [詳情]

《模擬人生4》是一款非常真實(shí)的模擬類游戲,模擬人生4無(wú)論是在畫面的表現(xiàn)力、人物的情感細(xì)膩與豐富程度都有了質(zhì)的提升!加上令人無(wú)法想象的自由DIY設(shè)定、在空前的自由度下,你幾乎可以在游戲中做任何你想做的事!喜歡模擬人生系列的玩家千萬(wàn)不要錯(cuò)過(guò)。

開發(fā)者:互聯(lián)網(wǎng)

tgamedetail_ff_2-tgamedetail_ff_1:22.0

tgamedetail_ff_3-tgamedetail_ff_2:1.0

tgamedetail_ff_4-tgamedetail_ff_3:7.0

tgamedetail_ff_5-tgamedetail_ff_4:7.0

tgamedetail_ff_6-tgamedetail_ff_5:5.0

tgamedetail_ff_6-tgamedetail_ff_1:42.0

t10_2-t10_1:7.0

t10_3-t10_2:8.0

t10_4-t10_3:8.0

t10_5-t10_4:7.0

t10_6-t10_5:0.0

t10_6-t10_1:30.0

t40_2-t40_1:5.0

相關(guān)專題

最新專題

預(yù)約游戲
掃描二維碼下載九游app預(yù)約游戲
第一時(shí)間接受活動(dòng),禮包,開測(cè)下載提醒
掃碼領(lǐng)取福利

下載九游APP,可獲取更多禮包和攻略視頻

九游云游戲
電腦也能玩手游 · 無(wú)需下載 · 不占空間 · 點(diǎn)擊即玩
在線玩

t2627_2_2627_1:4.0

t1-t0:42.0

t2-t1:6.0

t3-t2:0.0

t4-t3:2.0

t5-t4:13.0

t6-t5:15.0

t7-t6:4.0

t8-t7:0.0

t9-t8:12.0

t10-t9:0.0

t11-t10:5.0

t12-t11:0.0

t13-t12:0.0

t14-t13:0.0

t15-t14:0.0

t16-t15:0.0

t17-t16:0.0

t18-t17:39.0

t19-t18:4.0

t20-t19:1.0

t21-t20:0.0

t22-t21:0.0

t23-t22:5.0

t24-t23:0.0

t25-t24:16.0

t26-t25:0.0

t27-t26:4.0

t28-t27:2.0

t29-t28:0.0

t30-t29:3.0

t31-t30:0.0

t32-t31:2.0

t33-t32:0.0

t34-t33:1.0

t35-t34:0.0

t36-t35:0.0

t37-t36:43.0

t38-t37:31.0

t39-t38:0.0

t40-t39:0.0

t41-t40:5.0

t42-t41:27.0

t43-t42:0.0

t44-t43:29.0

t45-t44:11.0

t46-t45:0.0

t47-t46:0.0

t48-t47:3.0

t49-t48:0.0

t50-t49:2.0

t51-t50:3.0

t52-t51:0.0

t52-t0:330.0