心靈終結(jié)3.3.6地圖編輯器萌新教程第16篇:科技類型的封鎖與解鎖
本篇專欄要解決的問題是如何在一場戰(zhàn)役中允許或禁止玩家生產(chǎn)一種單位或建造一種建筑。
一、是否可以建造一種建筑/生產(chǎn)一種單位與哪些因素有關(guān)?
1、要有相應(yīng)的生產(chǎn)建筑。建造一種建筑的必要條件是有建造場,生產(chǎn)一種步兵的必要條件是有兵營,生產(chǎn)載具要有戰(zhàn)車工廠,生產(chǎn)飛機(jī)要有機(jī)場。
2、Prerequisite. 建筑和單位都有。這句代碼就是指明“前置條件”。比如:在[ABRM]下可以找到代碼:Prerequisite=GAWEAP,GAMERC,GATECH,說明生產(chǎn)艾布拉姆斯的條件是盟軍重工、墨丘利和科技中心。
??? 注意上面的第一條中只是說明了“要有相應(yīng)生產(chǎn)建筑”,并沒有說明“一定要有相應(yīng)陣營的生產(chǎn)建筑”。比如,如果我們將艾布拉姆斯建造條件中的GAWEAP刪去,只要求有墨丘利和科技中心,那么艾布拉姆斯的生產(chǎn)條件就會改為“墨丘利+科技中心+任一陣營的重工”。
??? 另外,這句代碼的鍵值也可能并不是具體某一個建筑的注冊代碼,而是指某一類建筑,比如Barracks,它指的是“兵營類建筑”,具體包含的建筑種類可以在rulesmo.ini中[General]小節(jié)里的PrerequisiteBarracks屬性查到。比如盟軍圍墻[GAWALL],建造條件是:Preresiquite=GACNST,BARRACKS,指的是盟軍建造場+任意兵營。
3、建筑的FactoryOwners. 這是我們在上一篇專欄中所說的“國家特色科技建筑”的建造條件。例如,只有美國可以造墨丘利是因?yàn)樵摻ㄖ拇a中有FactoryOwners=UnitedStates.
4、Owner. 建筑和單位都有。這句代碼比較令人迷惑,在游戲中似乎沒什么用,但也不是完全沒用。經(jīng)本人試驗(yàn),發(fā)現(xiàn)的現(xiàn)象如下:如果沒有這句代碼,或者Owner的鍵值不是所屬方的名稱,那么任何陣營都不能造相應(yīng)的單位或建筑。但如果有這句代碼且鍵值是所屬方的名稱,那么實(shí)際效果與鍵值究竟是哪一所屬方無關(guān)。
????? 比如,我們知道斗牛犬坦克(ETNK)是美國專屬的T1單位。在[ETNK]下可以看到這樣一行代碼:Owner=UnitedStates. 但是不是這句代碼決定了只有美國可以生產(chǎn)它呢?上一篇專欄中已經(jīng)說明不是,真正起決定作用的代碼是RequiredHouses=UnitedStates. 如果改成Owner=Chinese,或者其他任何一個陣營名稱,都沒有任何作用,美國仍然可以生產(chǎn)斗牛犬;然而如果寫一個非陣營名稱的鍵值,比如Owner=abcd,或者Owner=None,那么美國就不能再生產(chǎn)斗牛犬了。
5、單位的RequiredHouses和ForbiddenHouses,前者規(guī)定“只有誰能造”,后者規(guī)定“誰不能造”。詳見上一篇專欄。
6、TechLevel與游戲中選擇的科技等級。某一所屬方的科技等級可以在地圖編輯器中的“所屬方”中設(shè)置,范圍是1到10之間的一個整數(shù)。TechLevel是單位和建筑的一個屬性,一般也填1到10中的一個整數(shù)。所屬方可以建造或生產(chǎn)某一建筑或單位的一個必要條件就是所屬方的科技等級大于等于該建筑或單位的TechLevel. 特別地,如果TechLevel=-1,則玩家游戲中玩家不能建造或生產(chǎn)該建筑或單位,但電腦可以;如果TechLevel=11,則玩家和電腦都不可以。
7、PrerequisiteOverride. 鍵值填建筑代碼。它的含義是:只要有該建筑,那么前面的第2、3、5、6條的限制全部無效,只要有相應(yīng)生產(chǎn)建筑且Owner值符合要求就可以建造或生產(chǎn)該建筑或單位。
????? 比如,風(fēng)暴之子戰(zhàn)機(jī)[STORM]有以下代碼
????? [STORM]
????? Prerequisite=GAAIRC(盟軍機(jī)場)
????? PrerequisiteOverride=GAMERC(墨丘利)
????? RequiredHouses=UnitedStates
????? 對于美國來說,如果它有盟軍機(jī)場,就可以生產(chǎn)風(fēng)暴之子,而對于其他所屬方,擁有盟軍機(jī)場之后并不能造風(fēng)暴之子,這是由第一條和第三條代碼決定的;然而,任何所屬方(包括美國),只要擁有墨丘利和任何一座機(jī)場類建筑,不一定是盟軍機(jī)場,甚至可以是占領(lǐng)的中立科技機(jī)場,都可以生產(chǎn)風(fēng)暴之子。假如在內(nèi)置ini中寫如下代碼:
??????? [STORM]
??????? RequiredHouses=Pacific
??????? ForbiddenHouses=UnitedStates
??????? TechLevel=11
?????? 并且地圖上美國沒有盟軍機(jī)場,但有厄普西隆停機(jī)坪。即使是在上述條件的限制下,美國只要有墨丘利,都可以生產(chǎn)風(fēng)暴之子。
二、解鎖或封鎖科技的方法
?????? 有了上面的準(zhǔn)備,那么如何實(shí)現(xiàn)解鎖或封鎖科技就很容易了:只需要在內(nèi)置ini中作相應(yīng)修改即可。我們一般會針對上面的第2、3、5、6條進(jìn)行修改。不過,在上面的所有屬性中,可以在游戲過程中修改的只有“建筑和單位的TechLevel”這一項(xiàng)。方法為觸發(fā)結(jié)果106:“設(shè)置科技等級”。
例1:整場游戲禁止生產(chǎn)某種單位
??????? 包括“禁止玩家和電腦生產(chǎn)基地車”“禁止玩家和電腦生產(chǎn)英雄單位”等,只需要改變該單位的TechLevel屬性即可。
??????? [TANY](譚雅)
??????? TechLevel=11
??????? [AMCV](盟軍基地車)
??????? TechLevel=11
??????? 如果允許電腦生產(chǎn)但不許玩家生產(chǎn),改為TechLevel=-1即可。
例2:游戲過程中解鎖某科技類型
??????? 在官方蘇軍戰(zhàn)役“主宰”中,游戲開始一段時間后才會給玩家解鎖生產(chǎn)獵狼犬的權(quán)限。
??????? 之前已經(jīng)提到,前面7條中能在游戲過程中改變的只有建筑或單位的TechLevel,因此如果要在游戲過程中解鎖或封鎖某一科技類型,一般通過改變科技類型的TechLevel來實(shí)現(xiàn)。
??????? 首先在內(nèi)置ini中設(shè)置獵狼犬直升機(jī)的初始科技等級:
??????? [WOLF]
??????? TechLevel=11
??????? 這樣游戲開始后玩家不能生產(chǎn)獵狼犬
??????? 然后,在要解鎖獵狼犬時,使用觸發(fā)結(jié)果106:設(shè)置科技等級,科技類型填WOLF,數(shù)值填9(就是獵狼犬直升機(jī)本來的TechLevel)。
例3:“同盟國聯(lián)軍”的實(shí)現(xiàn)
???????? 在之前的專欄中講過,一些官方關(guān)卡介紹中有“玩家:同盟國聯(lián)軍”,但地編中的“玩家所屬方”并沒有“同盟國聯(lián)軍”這一陣營,實(shí)際上玩家所屬方還是美國,只不過是解鎖了歐盟和太平洋陣線的科技。
??????? 根據(jù)上一篇專欄的內(nèi)容,需要解鎖的歐盟和太平洋陣線的特色科技類型主要分為三種:科技建筑,由科技建筑解鎖的單位,不由科技建筑解鎖的單位。首先需要解鎖“特色科技建筑”,即歐盟的“防御指揮部”和太平洋的“控制中心”:
??????? [GASCEA]
??????? FactoryOwners=UnitedStates
??????? [GASCPF]
??????? FactoryOwners=UnitedStates
?????? 解鎖了特色科技建筑后,由科技建筑解鎖的單位自然也就解鎖了(詳見上一篇專欄)。然后再考慮解鎖不由科技建筑解鎖的單位,例如騎士坦克(MTNK)和河童坦克(KTNK)。
??????? [MTNK]
??????? ForbiddenHouses=Pacific(本來是Pacific,UnitedStates,也就是去掉了美國)
??????? [KTNK]
??????? RequiredHouses=UnitedStates(本來是Pacific)
例4:解鎖滲透單位
?????? 例如在一場戰(zhàn)役中解鎖天啟坦克。在rulesmo.ini中,天啟坦克(MAMM)下面沒有Owner和Prerequisite代碼,“滲透后可以建造”是在另一個ini文件中規(guī)定的。在戰(zhàn)役中只需要加上這兩條代碼就可以解鎖天啟坦克。例如,玩家所屬方是蘇俄,天啟坦克解鎖條件設(shè)置為蘇軍重工+宮殿。
??????? [MAMM]
?????? Owner=USSR(隨便填一個所屬方就可以)
?????? Prerequisite=NAWEAP,NATECHR
例5:秘密科技實(shí)驗(yàn)室
??????? 在官方厄普西隆戰(zhàn)役“海難”中,玩家占領(lǐng)秘密科技實(shí)驗(yàn)室后可以解鎖西風(fēng)火炮(實(shí)驗(yàn)室被摧毀后當(dāng)然也會失去該科技)。在遭遇戰(zhàn)中,玩家占領(lǐng)秘密科技實(shí)驗(yàn)室后獲得隨機(jī)某種科技類型,而在該戰(zhàn)役中要固定解鎖西風(fēng)火炮。實(shí)現(xiàn)方法如下:
??????? [CASLAB](秘密科技實(shí)驗(yàn)室)
??????? SecretLab=no
??????? 本來rulesmo.ini中這一條是SecretLab=yes,改成no后就不會再隨機(jī)解鎖科技了。
??????? [HOWI](西風(fēng)火炮)
?????? PrerequisiteOverride=CASLAB
?????? 這一條就是說只要有秘密科技實(shí)驗(yàn)室和任一重工,就可以無視其他限制,直接生產(chǎn)西風(fēng)火炮。實(shí)際上這兩句代碼只不過就是把“秘密科技實(shí)驗(yàn)室”變成了一個“普通建筑”,然后又用該建筑解鎖西風(fēng)火炮而已。