hook上的進階教程 沒有翻譯編輯聲音和編輯多人遊戲隊伍顏色(這兩個分量不大)
(原文)
MOD高手請指正紕漏。
包括:
(bluefrank88 朋友已經翻譯了武器修改的一些信息,我為了保持連貫性,就把自己翻的也貼進來了。)
1.如何修改單位圖標。
2.關於修改單位的更多信息。
3.怎樣改變單位和建築的建造時間和花費。
4.怎樣改變一個用戶或是建築的科技附屬性。
5.怎樣改變單位或是建築的武器。
6.關於武器修改的更多消息。
7.為單位或者建築添加維修工蜂。
8.如何編輯單位經驗等級
9.如何改變特殊能力模板。
How to change unit icons如何修改單位圖標
嗨,這次是關於cameo的教程,Cameos,或許你不知道,正是用來作為單位圖標的圖像,,正是因為使用了它們,你在訓練一個單位,或是建造一個建築時,你知道你在訓練什麼,在建造什麼,所以對於新的單位或是修改已有的單位來說,這是很重要的。今天,我們將學習去編輯一個新單位的cameo,我們還用mytank的例子。
這里是他的主要設置:
id=」mytank」
inheritFrom=」BaseVehicle」
SelectPortrait=」Portrait_AlliedAntiVehicleVehicleTech1″ !
ButtonImage=」Button_AlliedAntiVehicleVehicleTech1_on」 !
Side=」Allies」
SubGroupPriority=」425″
EditorSorting=」UNIT」
HealthBoxHeightOffset=」25″
BuildTime=」10″
CommandSet=」mytankCommandSet」
KindOf=」SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS SCORE VEHICLE CAN_BE_FAVORITE_UNIT T2_UNIT」
WeaponCategory=」CANNON」
VoicePriority=」188″
EditorName=」mytank」
Description=」Desc:mytank」
TypeDescription=」Type:mytank」
UnitIntro=」Allied_GuardianTank_UnitIntro」>
xai:joinAction=」Replace」 xmlns:xai=」uri:ea.com:eala:asset:instance」>Name:mytank
有兩個地方是和改變cameo有關的:
SelectPortrait=」Portrait_AlliedAntiVehicleVehicleTech1″
ButtonImage=」Button_AlliedAntiVehicleVehicleTech1_on」
現在,我們把上面文本括號里面的內容變為「Portrait_mytank」,當然,腳本會要求一個按鈕圖像和肖像,當然這兩個可以不一樣,但為了簡單起見,我們使用一樣的圖像。
現在,保存並關閉它,我們進入圖像文件夾 RA3 MOD SDK>Art>images
如果你看到了先驅者炮艇的肖像,那你就來對了。現在,我們要復制SampleUpdatedPackedImages.xml文件,把它重命名為SampleUpdatedPackedImages 2,現在,打開它,刪除下面內容出現之前所有內容:
好的,現在我們要做的就是把每個「Portrait_AlliedHarbringerGunship」置換為「Portrait_mytank」。
一旦完成了上述的操作,保存並關閉.xml文件。現在,我們所需要做的就是製作肖像。使用你最喜歡的畫圖程序(要能夠編輯TGA格式),最重要的是要把畫的圖命名為Portrait_mytank,並且你要把它存在image文件夾下,跟先驅者的肖像放在一起。
注意:圖像尺寸最好在128*128或76*106,如果不是,會自動調整大小,但我不喜歡這樣。
現在讓我來解釋我們剛才做的,新的cameo必須通SampleUpdatedPackedImages這種文件來引入mod中,否則,他們不會被使用。
OK,該最後一步了,前往mod.xml文件,在最下方,/asset declaration標簽之上,加入如下內容:
現在,build閣下的mod並享受吧,如果沒效果,那麼檢查你的文件名,確保他們相同。
本教程由EvilConker編寫。
More info on editing units 關於修改單位的更多信息
關於單位的文件可以在SageXml>陣營名稱>Units文件夾下找到(Allied:盟軍 japan:日本 Soviet:蘇聯)
讓我們來看如何修改磁暴步兵。
找到Soviet/Units/SovietHeavyAntiVehicleInfantry.xml.
好吧..我知道..EA使用的名字轉換並不是很直白,但你要適應。(單位的xml文件的名字不是其真實的名字,而是另一種名字,比如磁暴步兵,就是在這里的名字就是蘇聯重型反載具步兵,大家可以根據它們這里名字的意思來推測它們是哪種單位,heavy是重型,Anti的意思是反,克,venhicle是載具,infantyr是步兵,Air是空軍,navyship是海軍,structure是建築,bomber是炸彈。Fighter是戰鬥機,。。解釋這些可能多餘了)
然後打開單位的文件。
我們看到了一長串的
意味着這個單位將使用在BaseInfantry.xml文件中定義的一般類步兵單位使用的基本動作。所有的步兵單位都鏈接到這個基礎的文件上。
下面是關鍵的部分了:
『inheritFrom=』與上面的並不是十分相同,區別在於,上一個是用於視覺(art),而另一個是用於單位的實際的基本特性.
『id=』只是每個單位或是物件所需要的獨特的標識符。可以隨便設,但如果你要引用這個單位的話,要記住它。
『SelectPortrait』 和 『ButtonImage』對應着兩個圖標,一個是你在遊戲中選擇它時的圖像,另一個則是建造界面上的圖像。
『Side=」Soviet」這個很明顯,磁暴步兵是蘇聯的單位 (side:陣營)
『BuildTime=』很重要,決定了單位的製造時間,以秒為單位。
『CommandSet=』是一個特定的單位的特定的動作集,在這里不討論。
『KindOf=』一個制約環境來過濾這個單位可以做什麼,不可以做什麼
『SELECTABLE』 意味着你可以選中這個單位。『CAN_ATTACK』意味着這個單位可以攻擊目標 『INFANTRY』意味着這個單位是步兵單位,當然,也可以是別的。
『VoicePriority』(語音優先級)被用在當你選擇了一群不同類型的單位的情況。優先級高的單位會語音響應你的選中。比如,如果你同時選中了動員兵和磁暴步兵,磁暴步兵的語音將被播放。
『Description』 和 『TypeDescription』這兩個標簽定義了你在單位的製造界面上可以看到的描述說明。文本信息可以通過字段文件(mod.str)來自定義。
『HealthBoxHeightOffset』標示單位的生命條在哪里顯示,用默認的就行了。
『UnitIntro』 在你建造一個單位時,所播放的聲音。
『GameDependency』定義製造該單位需要什麼前提。
id=」ModuleTag_GameDependency」>
SovietPowerPlantAdvanced
從上面我們可以看到,磁暴步兵需要SovietPowerPlantAdvanced蘇聯的核電廠,實際的生產建築沒有列出來(蘇聯兵營),列出來是多此一舉。
『BuildCost』標簽中的『Amount=』的值表示該單位的造價。
可以看到,磁暴步兵的造價是750。你可以任意修改這個值,不會影響別的東西,我建議你保持一個成比例的性價比。
『ArmorSet』子段里的『Armor=』定義了這個單位是何種裝甲類型。這很重要,如果你想改變武器對不同護甲的傷害。
告訴我們這個單位怎樣移動,我建議最好不要亂改。最好在你確定要做的情況下改變。你所能做的是修改『Speed=』值,代表單位的速度。
然後是一大堆我們不願理的動作條。
還有兩個你是願意修改的。
一個是單位的生命
一個單位的生命在『Body』子段中如下定義:
id=」ModuleTag_Body」
MaxHealth=」250″ />
『MaxHealth=』可以改為隨便一個正整數,我沒試過改負數,也不推薦這樣做。
第2個就是單位的武器。武器定義在『WeaponSetUpdate』上,
讓我們來看一看磁暴步兵的武器:
Let』s see the Tesla Trooper』s weapon:
id=」ModuleTag_WeaponSetUpdate」>
ID=」1″>
Ordering=」PRIMARY_WEAPON」
Template=」SovietHeavyAntiVehicleInfantryTeslaGun」
ForbiddenObjectStatus=」GENERIC_TOGGLE_STATE CHARGING_BASE_DEFENSES」/>
Ordering=」SECONDARY_WEAPON」
Template=」SovietHeavyAntiVehicleInfantryTeslaLinkGun」
ForbiddenObjectStatus=」GENERIC_TOGGLE_STATE」/>
有兩個武器,定義為primary主武器和secondary副武器
不幸的是你不能在這里編輯它們,因為武器專門在Weapon.xml文件中定義。
如果你要修改它們,你要打開Weapon.xml文件,搜索『SovietHeavyAntiVehicleInfantryTeslaGun』 和『SovietHeavyAntiVehicleInfantryTeslaLinkGun』
武器將在另一章討論,本章結束
感謝Overmind的這篇指導。
How to change the build cost and time of a unit or structure怎樣改變單位和建築的建造時間和花費
還用我們在以第一個教程中的坦克例子,你可以發現修改建造時間和花費簡直是小菜一碟。只要修改下劃線部分就可以了。
id=」mytank」
inheritFrom=」BaseVehicle」
SelectPortrait=」Portrait_AlliedAntiVehicleVehicleTech1″
ButtonImage=」Button_AlliedAntiVehicleVehicleTech1_on」
Side=」Allies」
SubGroupPriority=」425″
EditorSorting=」UNIT」
HealthBoxHeightOffset=」25″
BuildTime=」10″建造時間=10 秒
CommandSet=」mytankCommandSet」
KindOf=」SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS SCORE VEHICLE CAN_BE_FAVORITE_UNIT T2_UNIT」
WeaponCategory=」CANNON」
VoicePriority=」188″
EditorName=」mytank」
Description=」Desc:mytank」
TypeDescription=」Type:mytank」
UnitIntro=」Allied_GuardianTank_UnitIntro」>
xai:joinAction=」Replace」 xmlns:xai=」uri:ea.com:eala:asset:instance」>Name:mytank
How to change the dependancy of a unit or structure怎樣改變一個用戶或是建築的科技附屬性
一個單位的附屬性就是建造這個單位所需要建造的建築或是要進行的研究。使用前面的坦克例子來看看。
id=」mytank」
inheritFrom=」BaseVehicle」
SelectPortrait=」Portrait_AlliedAntiVehicleVehicleTech1″
ButtonImage=」Button_AlliedAntiVehicleVehicleTech1_on」
Side=」Allies」
SubGroupPriority=」425″
EditorSorting=」UNIT」
HealthBoxHeightOffset=」25″
BuildTime=」10″
CommandSet=」mytankCommandSet」
KindOf=」SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS SCORE VEHICLE CAN_BE_FAVORITE_UNIT T2_UNIT」
WeaponCategory=」CANNON」
VoicePriority=」188″
EditorName=」mytank」
Description=」Desc:mytank」
TypeDescription=」Type:mytank」
UnitIntro=」Allied_GuardianTank_UnitIntro」>
xai:joinAction=」Replace」 xmlns:xai=」uri:ea.com:eala:asset:instance」>Name:mytank
Upgrade_AlliedTech2
下劃線部分表示我們的坦克需要盟軍的高級授權來建造。刪除它,就可以使得該單位的建造不再有附屬性。
當然,你也可以根據你所設的附屬性等級來修改粗體部分,你可以選擇1,2,3。(這一行的作用是設定單位的某些屬性,單位屬於幾級單位)
How to change the weapon of a unit or structure怎樣改變單位或是建築的武器
還使用以前的坦克作例子,把其xml文件拉到下面所示文本處,當然,你也可以使用搜索功能來搜索「weapon」
id=」ModuleTag_WeaponSetUpdate」>
ID=」1″>
Ordering=」PRIMARY_WEAPON」
Template=」AlliedAntiVehicleVehicleTech1Cannon」
ForbiddenObjectStatus=」GENERIC_TOGGLE_STATE」/>
Ordering=」SECONDARY_WEAPON」
Template=」AlliedAntiVehicleVehicleTech1TargetPainter」
ObjectStatus=」GENERIC_TOGGLE_STATE」/>
TurretTurnRate=」360″
MinimumPitch=」-30d」
AllowsPitch=」true」
TurretPitchRate=」180″
MinIdleScanTime=」1.0s」
MaxIdleScanTime=」4.0s」
MinIdleScanAngle=」30.0″
MaxIdleScanAngle=」50.0″
ComeToHaltJiggle=」3d」>
IdleScanDelay=」=$FAST_IDLE_SCAN_DELAY」
CanAcquireDynamicIfAssignedOutOfRange=」true」 />
從上面可以看到,這個單位有兩種武器,因為是取自守護者坦克,因此有一個探測瞄準器作為副武器,現在我們只需關注主武器(下劃線部分)。可以把它替換為其他的武器模板,只要查看別的單位的武器模板的名稱就可以了,或者直接看weapon.xml文件。要記住,有些武器比如激光類的需要額外的代碼來畫出來,你可以打開這個激光武器單位的xml文件,把它的繪圖代碼拷到武器代碼的下面。(有時候會出現原來的武器的開火效果和新的武器的效果並存,這應該也是繪圖代碼在作怪)
More info on how to edit weapons關於武器修改的更多消息。
遊戲的所有武器都在GlobalData/Weapon.xml中保存。
就讓我們來改一下海嘯坦克的武器。
打開Weapon.xml文件,搜索JapanAntiVehicleVehicleTech1Cannon,這是海嘯坦克的武器在這里的名稱。
只需關注一些條目:
『AttackRange=』攻擊范圍。
『WeaponSpeed=』武器速度,其實是武器射出彈藥的速度,對於激光類武器來說,很快,導彈類則很慢。
『AcceptableAimDelta=』武器的最大攻擊角度。與一個單位的炮塔是如何定義的有關。增加這個可以使武器開火更快,但是炮塔的動作將變得很醜。
『ClipSize=』可以用在爆發型武器(應該指動員兵或是雙刃那樣)和彈藥(應該是轟炸機)。對於沒有彈藥限制的單位,你可以把這個設的大一些,讓武器在爆發模式下更持久。
『AutoReloadsClip=』告訴你武器是自動重裝還是有限需要回去補充。『AUTO』表示沒有彈藥限制,『RETURN_TO_BASE』表示單位要回去補充彈藥。
『Flags=』 例如」ATTACK_NEEDS_LINE_OF_SIGHT」,表示武器開火需要看到目標。
『CanFireWhileMoving=』表示武器是否可以運動中開火。
『RequiredAntiMask=』過濾目標,使得武器只能攻擊制定類型的目標。例如
RequiredAntiMask=」ANTI_WATER ANTI_GROUND ANTI_STRUCTURE」武器將會射擊任何在水面上,陸地上的單位和建築,但是,不能對空和反潛。
『FiringDuration=』武器開火持續時間,經常被用在不同持續時間的武器開火動作上。
『ClipReloadTime=』開火的准確速率。降低以使武器更快,但一定要在『FiringDuration』之上,這樣動作才能正常進行。
『』 子段定義了武器的彈頭和拋射物。
懂得其工作機理很重要。
武器其實並不造成傷害,他只是以一定速率發射出了拋射物,拋射物帶着彈頭到達目標,然後彈頭來造成傷害。
所以說,武器造成了傷害是技術上的錯誤。海嘯武器的彈頭被稱為『JapanAntiVehicleVehicleTech1Warhead』.
來看看我們可以改些什麼。
首先,彈頭有自己的『RequiredAntiMask』,這個理論上必須匹配武器的『RequiredAntiMask』中的一個。但如果你想進一步做些什麼,這也不是強制的。然後,我們找到『DamageNugget』,它掌握着彈頭所能造成的傷害。
改變『Damage=』來改變彈頭的傷害。
『DamageType=』定義了傷害的類型,與護甲類型一起使用,來造成不同的傷害。
『DeathType=』代表單位在彈頭下的死亡方式,只有很少的死亡類型。
『SuppressionNugget』表示彈頭的區域壓制效果。『Radius=』表示壓制的范圍,『DurationSeconds=』表示壓制持續時間,單位為秒。
這就是關於武器的一切,隨心所欲的修改吧。
感謝Overmind提供的教程。
How to add repair drones to units and structures為單位或者建築添加維修工蜂。
隨便找個單位或者建築物,就拿我們的坦克也行,打開其xml文件向下拖直到你 找到了behaviors的起始標簽(看起來像 後面跟着),也可以使用搜索功能來找。一旦你定位了,復制粘貼下面的代碼到behaviors的開始標簽和結束標簽之間的任意部分。
id=」ModuleTag_SpecialPowerRepairVehicle」
SpecialPowerTemplate=」SpecialPower_TargetedRepairVehicle」 />
id=」ModuleTag_SpawnRepairDrones」
SpawnNumberData=」3″
InitialBurst=」3
SpawnReplaceDelayData=」10s」
SpawnedRequireSpawner=」true」
KillSpawnsOnCaptured=」true」
SpawnInsideBuilding=」true」
KillSpawnsOnDisabled=」true」>
DeathTypes=」ALL」 />
AlliedWarFactoryRepairDrone
改變下劃線部分的值,分別來確定維修工蜂的總個數和該單位被製造出來時產生的工蜂個數。
How to edit experience levels如何編輯單位經驗等級
要改變單位的XP等級,要去GlobalData/ExperienceLevels.xml文件。
There you can edit the XP values for all units.
這里你可以修改所有單位的經驗值。如果你加入了新單位,你要把它們也加入到這個文件里,這樣它們才能升級。
現在我們來談談這個文件。
最開始,定義了一般的老兵級別veterancy levels (VLs)。.
別改變它們,除非你為一個新的老兵系統增加了視覺效果。
所有單位初始級別是1,而2,3,4,分別對應老兵等級的1,2,3 (veterancy levels 1 2 and 3)
我稱它們為有經驗的,老兵,精英(『experienced』, 『veteran』 and 『elite』),EA稱它們為老兵,精英,英雄(『veteran』 『elite』 and 『heroic』),名稱無所謂,所以我用LV1 LV2 LV3來代替。
現在來看看它們怎麼運作的,其實很簡單。
這是從ExperienceLevels.xml中提取的盟軍海豚的經驗代碼:
等級1
id=」AlliedAntiNavalScoutExperienceLevel_1″
inheritFrom=」ExperienceLevel_AlliedRank1″
RequiredExperience=」1″
ExperienceAward=」750″>
AlliedAntiNavalScout
等級2
id=」AlliedAntiNavalScoutExperienceLevel_2″
inheritFrom=」ExperienceLevel_AlliedRank2″
Prerequisite=」AlliedAntiNavalScoutExperienceLevel_1″
RequiredExperience=」2250″
ExperienceAward=」1500″>
AlliedAntiNavalScout
等級3
id=」AlliedAntiNavalScoutExperienceLevel_3″
inheritFrom=」ExperienceLevel_AlliedRank3″
Prerequisite=」AlliedAntiNavalScoutExperienceLevel_2″
RequiredExperience=」4500″
ExperienceAward=」2250″>
AlliedAntiNavalScout
等級4
id=」AlliedAntiNavalScoutExperienceLevel_4″
inheritFrom=」ExperienceLevel_AlliedRank4″
Prerequisite=」AlliedAntiNavalScoutExperienceLevel_3″
RequiredExperience=」6750″
ExperienceAward=」3000″>
AlliedAntiNavalScout
The 4 templates define all 4 ranks of the unit: a default one (level 1) and the 3 promoted versions.
四個經驗模板(即從是一個經驗模板)代表等級1到4。
我們工作集中在兩個標簽上。
第一個『RequiredExperience=』,定義了該等級的該單位需要多少經驗才能升級。例如,盟軍海豚要6750的經驗才能升到LV3。
The second function: 『ExperienceAward=』 gives the value of XP a unit will gain by killing the current unit at it』s current level.
第二個『ExperienceAward=』,定義了,該等級下的單位值多少經驗。比如一個蘇聯潛艇宰了一隻1級海豚,得到750經驗,宰了一隻3級海豚,得到3000經驗。
我一般會把單位的升級經驗設為其造價3倍,本身經驗則為造價本身。
隨便設就行了,別太夸張。
感謝Overmind提供本教程。
How to change special power templates如何改變特殊能力模板。
特殊能力模板是遊戲中最復雜也最強大的部分。
用這些模板,你基本上可以無所不能,但要小心,它們也不容易對付。
對應的文件是GlobalData/SpecialPowerTemplates.xml.
從一個簡單的例子開始:
id=」SpecialPower_UnpackReplaceSelf」
TargetType=」LOCATION_AND_ANGLE」
NameOfVoiceNameToUseAsInitiateIntendToDoVoice=」VoiceDeploy」
RadiusCursorRadius=」1″
PreventConditions=」BOOBY_TRAPPED IS_BEING_DRAGGED SOLD」
Flags=」WATER_OK FOGGED_SHROUDED_CELLS_OK CANNOT_LEAVE_ENCLOSURE CAN_NOT_BE_SCRAMBLED」
WaypointModeTerminal=」false」 >
id=」SpecialPower_UnpackReplaceSelf_GameDependency」
ForbiddenModelConditions=」UNPACKING」/>
上述代碼是一個MCV的展開特殊能力. 『id=』必須是第一無二的,以便我們以後使用這個模板.
『TargetType=』是一個目標選擇系統,定義了當前的支援/特殊能力可以作用的對象. 被CAPS的關鍵詞是被硬編碼的動作,不能被重定義,但是這里有很多,所以我們只需去學習使用.所以,MCV展開的目標可以使任何地點/多角度的方位.
『NameOfVoiceNameToUseAsInitiateIntendToDoVoice』字段定義了該能力模板執行時所播放的聲音.這里的是MCV在展開時的音效.
『RadiusCursorRadius=』影響你的光標的外形.對於一些支援能力,你的光標會變為一些不同的形狀(比如核彈).這個標簽定義了在使用在這個能力時,你的光標如何顯示.
『PreventConditions=』這個很重要.一個情況過濾器,來判斷特殊能力動作是否可執行.我們可以看到,MCV不能展開的情況被定義了.例如『IS_BEING_DRAGGED』,這個情況指的是MCV被天啟的魚叉捕獲, 『SOLD』指的是你買掉總部的時候,還想使用它的打包/部署功能.
『Flags=』定義了其他的情況,這些情況被『PreventConditions=』定義為限制條件.這個准確的保證了在特定的情況下,事情會無誤的發生.
比如, 『WATER_OK』表示,MCV可以在水面上展開.現在它當然可以按照缺省值來做,但在某些情況下,最好你最好保證事情會按你想的發展.
『GameDependency』另一個特殊的功能.在當前的情況下,來阻止模型錯誤的發生.
『ForbiddenModelConditions=」UNPACKING」表示MCV已經在展開時,不能在執行展開/打包動作.
現在我會給一個實實在在的修改例子.
我一直深惡痛疾的,EA這個2B一直不做的就是鐵幕根本不是真正的鐵幕,很多東西仍能夠作用於這層神聖不可侵犯的護盾.
所以我要讓鐵幕重新雄起,就像在2代中一樣,絕對的免疫.有兩個點會影響它,我要修改的就是縮小光線和超時空轉換.
到縮小光線(shrink ray)的模板,如下:
id=」SpecialPower_ShrinkRay」
ReloadTime=」10s」
TargetType=」OBJECT」
NameOfVoiceNameToUseAsInitiateIntendToDoVoice=」VoiceShrinkRay」
Flags=」NEEDS_OBJECT_FILTER CANNOT_LEAVE_ENCLOSURE」
WaypointModeTerminal=」false」 >
Rule=」ANY」
Include=」VEHICLE HUGE_VEHICLE TIME_BOMB」
Exclude=」AIRCRAFT」
StatusBitFlagsExclude=」SUBMERGED AIRBORNE_TARGET」>
我們感興趣的就是『ObjectFilter』(目標過濾器),定義了光線可以作用的對象.這里定義的內容是:光線可以射載具,重型載具和時間炸彈,天上飛的和水下潛的它沒轍.
現在我要讓他在鐵幕單位面前也陽痿不舉.
於是我找到了硬編碼的『UNDER_IRON_CURTAIN』(鐵幕之下)動作/特性條,以及鐵幕的激活效果『IronCurtainEffect』
對縮小光線的操作如下:
id=」SpecialPower_ShrinkRay」
ReloadTime=」10s」
TargetType=」OBJECT」
NameOfVoiceNameToUseAsInitiateIntendToDoVoice=」VoiceShrinkRay」
Flags=」NEEDS_OBJECT_FILTER CANNOT_LEAVE_ENCLOSURE」
WaypointModeTerminal=」false」 >
Rule=」ANY」
Include=」VEHICLE HUGE_VEHICLE TIME_BOMB」
Exclude=」AIRCRAFT」
StatusBitFlagsExclude=」SUBMERGED AIRBORNE_TARGET UNDER_IRON_CURTAIN」>
IronCurtainEffect
我要做的就是把『UNDER_IRON_CURTAIN』加到例外情況里,這樣光線在鐵幕單位前就射不了了.( StatusBitFlagsExclude=」SUBMERGED AIRBORNE_TARGET UNDER_IRON_CURTAIN」>)
『ExcludeThing』也使得光線不能在鐵幕效果生效時發射(例如,我正好激活了一個鐵幕),同樣,對超時空轉換,我也這樣做了,鐵幕單位不會再被超時空轉換推倒了. (IronCurtainEffect)
現在再給一個例子,讓你更深入了解特殊能力模板的工作機制.
我將解說超時空換位怎樣發生.
id=」SpecialPowerChronoSwapTeleport」
ReloadTime=」120s」
TargetType=」OBJECT」
EvaEventToPlayWhenSelectingTarget=」SelectUnit」
inheritFrom=」SpecialPowerChrono_Base」
RequiredPlayerTech=」PlayerTech_Allied_ChronoSwap」>
Rule=」ANY」
Relationship=」ALLIES」
Include=」INFANTRY VEHICLE TIME_BOMB」
Exclude=」AIRCRAFT」
StatusBitFlagsExclude=」SUBMERGED AIRBORNE_TARGET NOT_IN_WORLD」>
AlliedTimeBombLvl1
AlliedTimeBombLvl2
AlliedTimeBombLvl3
id=」Allied_ChronoSwapTeleport_GameDependency」>
AlliedConstructionYard
『TargetType=」OBJECT」表示在用這個能力時,我們必須選擇一個單位.
『EvaEventToPlayWhenSelectingTarget=』表示在你選擇該單位時播放的EVA大媽的聲音.
『nheritFrom=』在源代碼中被廣泛使用.意味着定義的對象或是模板使用了一些別處定義的基礎特性.在當前情況下,表示超時空換位是一個基於超時空技術的能力.
『Relationship=表示能力是否可用於自己單位,敵人,還是兩者皆可.在這種情況,是「ALLIES」(並非的盟軍陣營(Allied),而是指你自己的單位或是友軍),這樣能力只作用於你的單位.
該能力,如你所見,將作用於步兵,載具和時間炸彈,對天上飛的和水下藏的無能為力.
『IncludeThing』確保該能力能夠作用於時間炸彈,其實是多餘的,因為炸彈被單獨的另外定義了.
最後的過濾器『RequiredObject』是一個附屬,告訴你要有總部才能使用該能力.
希望我讓各位醍醐灌頂了。
記住,特殊能力模板可以無所不能,但確保你知道自己到底在幹什麼.
感謝Overmind為本次教學所作的。
來源:遊民星空