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

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

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

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

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

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

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

所以,現(xiàn)在我們來看看在sims 4(PY文件,不是PYO文件)提供的Python模塊。你可以在這里找到有用的方法來獲得這些核心模塊。 “基礎(chǔ)(base)”,“核心(core)”和“模擬(simulation)”都是在游戲的引擎中使用的模塊集合的標(biāo)簽。這里我們主要關(guān)注“核心”和“模擬”兩大類?!癰ase”包含了大量的庫模塊,可用于游戲代碼中的某些微操作,但不一定是我們經(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ù)庫。如果我們想找出在哪里有一個(gè)功能,我們就可以從這里面找。這樣,游戲就能允許我們創(chuàng)建新的控制臺(tái)(Ctrl + Shift + C)命令了。

讓我們來看看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)我們來看看“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)部分后,下面讓我們來編寫一個(gè)獲取城鎮(zhèn)人口的函數(shù):

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

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

在該文件中有一個(gè)名為“SimInfoManager”的類。它是用來保存每個(gè)小人的數(shù)據(jù)的。如果我們可以計(jì)數(shù)其列表中的所有sim個(gè)數(shù),那么我們就能得到所有模擬的人口了。通過查看TS4的存儲(chǔ)庫中的其余代碼,我注意到一個(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(包含了剛才說的__init__.py):

import services

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

def getpop(_connection = None):

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

所以,現(xiàn)在我們知道如何輸出到控制臺(tái)(通過調(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())))

*可以把英語改成中文

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

通過我們?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í)選擇語言>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)等問題,請(qǐng)作者與我司聯(lián)系,我司將在第一時(shí)間刪除或支付稿酬。

熱門游戲

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

玩家評(píng)論

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

全部評(píng)論

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

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

  • 豌豆pw4a2d 來自于 九游APP 2024-10-30 00:05

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

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

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

  • 豌豆rm7j18 來自于 九游APP 2024-10-06 19:38

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

  • 豌豆aamg4l 來自于 九游APP 2024-10-19 11:06

    我沒玩過,反正不知道。預(yù)約了,

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

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

  • 豌豆kvs2p6 來自于 九游APP 2024-09-09 11:58

    官方已經(jīng)說了,沒有手機(jī)端

  • suuuuuuu 來自于 九游APP 2024-07-31 12:17

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

  • 豌豆3z4rql 來自于 九游APP 2024-08-07 23:00

    以前下載過,但現(xiàn)在下載不上了,感覺現(xiàn)在的版本會(huì)更好玩

  • A魚海戀的柔柔 來自于 九游APP 2024-08-21 18:13

    預(yù)約了10多天,還玩不了

t26_2-t26_1:3.0

其他玩家還在玩

  • 相關(guān)閱讀

  • 最新文章

模擬人生4

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

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

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

tgamedetail_ff_2-tgamedetail_ff_1:31.0

tgamedetail_ff_3-tgamedetail_ff_2:0.0

tgamedetail_ff_4-tgamedetail_ff_3:3.0

tgamedetail_ff_5-tgamedetail_ff_4:6.0

tgamedetail_ff_6-tgamedetail_ff_5:5.0

tgamedetail_ff_6-tgamedetail_ff_1:45.0

t10_2-t10_1:3.0

t10_3-t10_2:4.0

t10_4-t10_3:4.0

t10_5-t10_4:3.0

t10_6-t10_5:0.0

t10_6-t10_1:14.0

t40_2-t40_1:4.0

相關(guān)專題

最新專題

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

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

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

t2627_2_2627_1:4.0

t1-t0:33.0

t2-t1:6.0

t3-t2:0.0

t4-t3:3.0

t5-t4:10.0

t6-t5:16.0

t7-t6:3.0

t8-t7:0.0

t9-t8:13.0

t10-t9:0.0

t11-t10:3.0

t12-t11:0.0

t13-t12:0.0

t14-t13:0.0

t15-t14:0.0

t16-t15:0.0

t17-t16:1.0

t18-t17:42.0

t19-t18:4.0

t20-t19:0.0

t21-t20:0.0

t22-t21:1.0

t23-t22:4.0

t24-t23:0.0

t25-t24:15.0

t26-t25:0.0

t27-t26:3.0

t28-t27:4.0

t29-t28:0.0

t30-t29:19.0

t31-t30:0.0

t32-t31:2.0

t33-t32:0.0

t34-t33:0.0

t35-t34:0.0

t36-t35:0.0

t37-t36:45.0

t38-t37:16.0

t39-t38:0.0

t40-t39:0.0

t41-t40:4.0

t42-t41:28.0

t43-t42:0.0

t44-t43:32.0

t45-t44:38.0

t46-t45:0.0

t47-t46:0.0

t48-t47:2.0

t49-t48:1.0

t50-t49:2.0

t51-t50:2.0

t52-t51:0.0

t52-t0:352.0