帝國(guó)時(shí)代3修改教程
帝國(guó)時(shí)代3修改教程
帝國(guó)時(shí)代3是帝國(guó)時(shí)代2這個(gè)獲得高度評(píng)價(jià)的即時(shí)戰(zhàn)略游戲的續(xù)集,它同樣也是一款精彩的游戲,但是,可能很多新手對(duì)這款游戲還不夠了解。游戲中大家總是想發(fā)掘一些新奇古怪的東西,今天,學(xué)習(xí)啦小編給大家介紹一哥帝國(guó)時(shí)代3的修改教程,讓大家肯定盡情享受各種新奇的樂(lè)趣。
修改后的效果顯示:
在陸地上的戰(zhàn)船 |
需要的三個(gè)文件:
Data目錄下的
proto.xml
stringtable.xml
techtree.xml
各文件主要內(nèi)容:
proto.xml:單位的基本屬性
stringtable.xml:顯示語(yǔ)言
techtree.xml:科技和卡片的基本屬性
一.單一的文件修改
1.proto.xml
用記事本打開(kāi)這個(gè)文件編輯.
<Unit id ='X' name ='XXX'>
單位的第一條屬性,不做復(fù)雜修改的話,建議不要?jiǎng)?
<DBID>X</DBID>
一般不做修改
<DisplayNameID>X</DisplayNameID>
在游戲中顯示的文字代號(hào),與stringtable.xml關(guān)聯(lián).
<EditorNameID>X</EditorNameID>
同樣是顯示的文字代碼,但不知在哪里起作用,一般不做修改,與stringtable.xml關(guān)聯(lián).
<ObstructionRadiusX>***</ObstructionRadiusX>
<ObstructionRadiusZ>***</ObstructionRadiusZ>
單位的實(shí)際體積,數(shù)值越大,體積越大,當(dāng)然目標(biāo)也越大.
<FormationCategory>X</FormationCategory>
有Ranged,protected,body,mobile這幾類
Ranged一般用于帶遠(yuǎn)程攻擊的兵種
protected一般用于炮兵及幾乎沒(méi)有攻擊能力的單位
body一般用于近戰(zhàn)型步兵
mobile一般用于騎兵
<MaxVelocity>X</MaxVelocity>
<MaxRunVelocity>X</MaxRunVelocity>
最大行走/跑步速度,數(shù)值越大,單位移動(dòng)越快,很有修改價(jià)值
<MovementType>X</MovementType>
單位移動(dòng)模式,很有修改價(jià)值
共分air,water,land三類
air:移動(dòng)完全不受阻礙,即在天上飛.
water:只能在海里移動(dòng).
land:只能在陸地移動(dòng).
<TurnRate>X</TurnRate>
單位轉(zhuǎn)彎時(shí)的速度,數(shù)值越大,轉(zhuǎn)彎越快.
(如果數(shù)值過(guò)小,單位在轉(zhuǎn)彎時(shí)會(huì)先朝目標(biāo)方向移動(dòng),再慢慢把身子轉(zhuǎn)過(guò)去)
<AnimFile>
建議不做修改.
<ImpactType>X</ImpactType>
單位自身類型,如Flesh(人體),Animal(動(dòng)物),Wood(木制),Stone(石制)...
<Icon>X</Icon>
單位調(diào)用的頭像文件,這是顯示在建造命令里的頭像.
<PortraitIcon>X</PortraitIcon>
單位調(diào)用的頭像文件,這是當(dāng)你點(diǎn)選某個(gè)單位時(shí),它的大&小肖像.
<RolloverTextID>X</RolloverTextID>
語(yǔ)言顯示代碼,這是顯示在建造命令里或主城模式卡片里對(duì)單位進(jìn)行描述的語(yǔ)言代碼.
<ShortRolloverTextID>X</ShortRolloverTextID>
語(yǔ)言顯示代碼,當(dāng)你將光標(biāo)移動(dòng)到某個(gè)單位上,顯示的對(duì)單位進(jìn)行描述的語(yǔ)言代碼.
<InitialHitpoints>X</InitialHitpoints>
單位剛被生產(chǎn)出來(lái)的初始生命值,如果改為0...
很有修改價(jià)值
<MaxHitpoints>X</MaxHitpoints>
單位的最高生命值(未升級(jí)的情況下).
很有修改價(jià)值
<LOS>X</LOS>
單位視野,數(shù)值越大,視野越廣.
很有修改價(jià)值
<ProjectileProtoUnit>X</ProjectileProtoUnit>
單位攻擊時(shí)發(fā)射的投射物,即單位名稱.
有修改價(jià)值
<UnitAIType>X</UnitAIType>
單位閑置時(shí)(暫時(shí)這么說(shuō)吧)調(diào)用的AI類型.
很有修改價(jià)值
<BuildPoints>X</BuildPoints>
<TrainPoints>X</TrainPoints>
建筑/單位被產(chǎn)出來(lái)需要的時(shí)間.數(shù)值越大,生產(chǎn)越慢.
(如果將建筑物的改為0,則剛放下建筑就建成)
很有修改價(jià)值
<Bounty>X</Bounty>
<BuildBounty>X</BuildBounty>
單位死亡/生產(chǎn)出來(lái)加的經(jīng)驗(yàn)值.
很有修改價(jià)值
<Cost resourcetype ='XXX'>X</Cost>
生產(chǎn)單位所需資源類型及數(shù)目.
很有修改價(jià)值
<InitialResource resourcetype ='XXX'>X</InitialResource>
提供資源開(kāi)采的單位(如樹(shù),銀礦),提供的資源類型及數(shù)目.
很有修改價(jià)值
<ResourceSubType>Gold</ResourceSubType>
提供資源開(kāi)采的單位,提供的資源類型及數(shù)目(與上條對(duì)應(yīng)).
很有修改價(jià)值
<BuildingWorkRate>X</BuildingWorkRate>
建筑工作速度(如研究,生產(chǎn))的乘數(shù).
很有修改價(jià)值
<MaxContained>X</MaxContained>
單位提供的駐扎空間.
有修改價(jià)值
<AllowedAge>X</AllowedAge>
單位被生產(chǎn)出來(lái)的最早時(shí)代(0-4).
有修改價(jià)值
<Armor type ='X' value ='X'></Armor>
單位護(hù)甲類型(ranged,siege,hand)及抵消傷害的百分比.一種單位能否有多于一種的護(hù)甲,我還沒(méi)有試過(guò).
(如0.2表示抵消攻擊傷害的20%)
數(shù)值高并不意味著無(wú)敵!
這與后面的傷害類型有關(guān),以后我會(huì)做說(shuō)明.
很有修改價(jià)值
<BuilderLimit>X</BuilderLimit>
建造一個(gè)該單位的最大建筑工數(shù)量.
有修改價(jià)值
<GathererLimit>X</GathererLimit>
該單位支持的最大采集者數(shù)量.
很有修改價(jià)值
<PopulationCount>X</PopulationCount>
每個(gè)該類單位所占人口.
(如果你想暴兵,就改為0吧)
很有修改價(jià)值
<PopulationCapAddition>X</PopulationCapAddition>
每個(gè)該類單位支持的人口.
很有修改價(jià)值
<UnitType>XXX</UnitType>
<Flag>XXX</Flag>
非常有修改價(jià)值!
可以定義單位最基本的屬性.
如不會(huì)被Delete掉(<Flag>NotDeleteable</Flag>),英雄(<UnitType>Hero</UnitType>
)......
以后我會(huì)進(jìn)行說(shuō)明.
在<UnitType>XXX</UnitType>
的下面,通常有
<Train row ='X' page ='X' column ='X'>XXX</Train>
一大串
這是對(duì)該類單位可以生產(chǎn)單位的設(shè)定!非常有用!自己試著改一改,添一添,以后我會(huì)說(shuō)明.
在<Flag>XXX</Flag>
的下面,通常有
<Command page ='X' column ='X'>XXX</Command>
這是對(duì)該類單位的某些能力(控制按鈕)的設(shè)定,非常有用!自己試著改一改,添一添,以后我會(huì)說(shuō)明.
在<Tactics>XXX</Tactics>
下面,通常會(huì)有
<ProtoAction>
XXX
</ProtoAction>
一類針對(duì)單位動(dòng)作的設(shè)定,非常有用!其關(guān)聯(lián)很多,自己試著改一改,以后我會(huì)具體說(shuō)明.
很有修改價(jià)值!
<ProtoAction>到</ProtoAction>之間的一些設(shè)定:
<Damage>XXX</Damage> 單位攻擊傷害.
<DamageType>XXX</DamageType> 傷害類型.
<MaxRange>XXX</MaxRange> 射程.
<ROF>XXX</ROF> 攻擊速率(數(shù)值越小,速率越高).
<DamageCap>XXX</DamageCap> 不是很明確,似乎是一次攻擊所能造成的最大傷害,一般用于艦船,數(shù)值=Damage*2
<DamageBonus type ='XXX'>X</DamageBonus> 對(duì)某類單位的傷害乘數(shù).
其中XXX與對(duì)應(yīng)單位的UnitType關(guān)聯(lián).
<DamageArea>XXX</DamageArea> 攻擊的傷害范圍.
<DamageFlags>XXX</DamageFlags> 未知.
引申,對(duì)于采集者的采集速度設(shè)定.
搜索"<Unit id ='200' name ='Settler'>"
(采集者),接著搜索"<Name>Gather</Name>",
會(huì)出現(xiàn)(下面的數(shù)值為原始設(shè)定)
<Name>Gather</Name>
<Rate type ='Tree'>0.500000</Rate>
<Rate type ='Mill'>0.670000</Rate>
<Rate type ='AbstractMine'>0.600000</Rate>
<Rate type ='Plantation'>0.500000</Rate>
<Rate type ='Herdable'>3.000000</Rate>
<Rate type ='Huntable'>0.840000</Rate>
<Rate type ='BerryBush'>0.670000</Rate>
數(shù)值越大,采集速度越快.速度單位應(yīng)是X單位資源/秒*人.
對(duì)proto.xml的基本修改就寫到這里了.
2.techtree.xml
Warning:筆者用的techtree.xml是游俠網(wǎng)上下的突破9級(jí)和卡片使用限制的補(bǔ)丁內(nèi)的techtree.xml.
在這個(gè)文件里,大多數(shù)的科技或卡片以這種形式描述:
<Tech name ='XXX' type ='XXX'>
<DBID>X</DBID>
<Status>XXX</Status>
<Flag>XXX</Flag>
<Effects>
<Effect type ='Data' amount ='X' subtype ='Enable' relativity ='Absolute'>
<Target type ='ProtoUnit'>XXX</Target></Effect>
XXX
</Effects>
</Tech>
1).這就是一個(gè)完整的描述一個(gè)科技的格式.
以升級(jí)三桅戰(zhàn)艦的科技為例說(shuō)明(以下信息為原設(shè)定)
搜索"ImperialManOWar",直到搜到如下描述(這個(gè)科技與標(biāo)準(zhǔn)試玩版的相同):
<Tech name ='ImperialManOWar' type ='Normal'>
<DBID>1336</DBID>
<DisplayNameID>31112</DisplayNameID>
<Cost resourcetype ='Wood'>1500.0000</Cost>
<Cost resourcetype ='Gold'>1500.0000</Cost>
<ResearchPoints>30.0000</ResearchPoints>
<Status>UNOBTAINABLE</Status>
<Icon>ui\techs\imperial_navy\imperial_navy</Icon>
<RolloverTextID>31111</RolloverTextID>
<Flag>UpgradeTech</Flag>
<Flag>OrPrereqs</Flag>
<Flag>CountsTowardMilitaryScore</Flag>
<Prereqs>
<TechStatus status ='Active'>Imperialize</TechStatus></Prereqs>
<Effects>
<Effect type ='Data' amount ='1.50' subtype ='Damage' allactions ='1' relativity ='BasePercent'>
<Target type ='ProtoUnit'>Frigate</Target></Effect>
<Effect type ='Data' amount ='1.50' subtype ='Hitpoints' relativity ='BasePercent'>
<Target type ='ProtoUnit'>Frigate</Target></Effect>
<Effect type ='SetName' proto ='Frigate' culture ='none' newName ='42267'></Effect>
</Effects>
</Tech>
Tech name : 科技原英文名稱.
<DisplayNameID>X</DisplayNameID> : 科技實(shí)際顯示名稱代碼.與stringtable.xml關(guān)聯(lián).
<Cost resourcetype ='X'>X</Cost>: 研發(fā)此科技需要的資源種類及數(shù)量.
<ResearchPoints>X</ResearchPoints> : 研發(fā)時(shí)間.數(shù)值越大,研發(fā)越慢.
<Icon>X</Icon> : 科技圖標(biāo)文件的地址.
<RolloverTextID>X</RolloverTextID> : 語(yǔ)言顯示代碼,即科技描述文字代碼.
<Flag>UpgradeTech</Flag> : 該科技的基本屬性.此為升級(jí)單位類科技(為升級(jí)單位類科技所必須).
<Effects>
<Effect type ='Data' amount ='1.50' subtype ='Damage' allactions ='1' relativity ='BasePercent'>
<Target type ='ProtoUnit'>Frigate</Target></Effect>
<Effect type ='Data' amount ='1.50' subtype ='Hitpoints' relativity ='BasePercent'>
<Target type ='ProtoUnit'>Frigate</Target></Effect>
<Effect type ='SetName' proto ='Frigate' culture ='none' newName ='42267'></Effect>
</Effects>
這可以說(shuō)是最有價(jià)值的修改部分.
</Effects>: 科技描述結(jié)束標(biāo)志.
Effect type : 科技效果.
有Data,SetName,TechStatus,SetAge四類.
Data : 允許設(shè)置研發(fā)對(duì)象的屬性乘數(shù).
SetName : 允許設(shè)置研發(fā)對(duì)象的新名稱.
TechStatus : 未知.
SetAge : 允許升級(jí)時(shí)代(Age1-4).如果有這個(gè)描述出現(xiàn),則在<Flag>里應(yīng)有<Flag>AgeUpgrade</Flag>與之對(duì)應(yīng).
amount : 研發(fā)對(duì)象的屬性乘數(shù)或增量.
subtype : 針對(duì)研發(fā)對(duì)象的某類屬性設(shè)定.
allactions : 似乎是激活某些東西,作用不明.
relativity : 屬于何類屬性加成(乘數(shù)--BasePercent,增量--Absolute),例如對(duì)種植效率加成一般用乘數(shù),對(duì)人口上限加成用增量.
<Target type ='ProtoUnit'>X</Target></Effect> : 科技研發(fā)對(duì)象(用于此描述橫行Effect type不是SetName的另三類科技效果).
proto ='X' : 科技研發(fā)對(duì)象(用于此描述橫行Effect type是SetName的科技效果).
newName : 科技研發(fā)對(duì)象的新名稱代碼(對(duì)應(yīng)SetName,proto)
對(duì)此科技的翻譯:
帝國(guó)改良戰(zhàn)艦.由三桅戰(zhàn)艦升為Imperial Man-of-War戰(zhàn)艦.傷害為原來(lái)150%,生命值為原來(lái)150%.需要木材1500單位,需要黃金1500單位.
引申:
1).如果你想讓此科技的傷害加成屬性對(duì)城鎮(zhèn)中心有效,可在
<Effect type ='Data' amount ='1.50' subtype ='Damage' allactions ='1' relativity ='BasePercent'>
<Target type ='ProtoUnit'>Frigate</Target></Effect>
下面新建一行
<Effect type ='Data' amount ='X' subtype ='Damage' allactions ='1' relativity ='BasePercent'>
<Target type ='ProtoUnit'>(城鎮(zhèn)中心名稱)</Target></Effect>
注意格式最好與原格式對(duì)齊!
2).如果你不想讓此科技對(duì)三桅戰(zhàn)艦生命有加成,則可將
<Effect type ='Data' amount ='1.50' subtype ='Hitpoints' relativity ='BasePercent'>
<Target type ='ProtoUnit'>Frigate</Target></Effect>
刪除.
注意格式最好與原格式對(duì)齊!
這樣,你就可以隨意設(shè)置一個(gè)科技.
2).這就是一個(gè)完整的描述一個(gè)卡片的格式(含義同上).
<Tech name ='HCShipFrigates' type ='Normal'>
<DBID>2223</DBID>
<DisplayNameID>35725</DisplayNameID>
<Cost resourcetype ='Ships'>1.0000</Cost>
<ResearchPoints>40.0000</ResearchPoints>
<Status>UNOBTAINABLE</Status>
<Icon>units\naval\frigate\frigate_icon_64x64</Icon>
<Flag>HomeCity</Flag>
<Effects>
<Effect type ='Data' amount ='1.00' subtype ='FreeHomeCityUnit' unittype ='Frigate' relativity ='Absolute'>
<Target type ='Player'></Target></Effect>
</Effects>
<Flag>HomeCity</Flag> : 在城鎮(zhèn)中心產(chǎn)生該單位.
對(duì)此卡片的翻譯:
從主城運(yùn)送一艘三桅戰(zhàn)艦到戰(zhàn)場(chǎng).
修改amount就是修改運(yùn)送的三桅戰(zhàn)艦數(shù)量.
引申:
如果你還想運(yùn)點(diǎn)兒別的,添加:
<Effects>
<Effect type ='Data' amount ='X' subtype ='FreeHomeCityUnit' unittype ='X' relativity ='Absolute'>
<Target type ='Player'></Target></Effect>
注意格式最好與原格式對(duì)齊!
簡(jiǎn)單的科技/卡片修改就到這里了.
3.stringtable.xml
可以添加,刪除,修改.
自己試著改一改,仿照著添一下,注意代碼必須與techtree.xml或proto.xml的代碼對(duì)應(yīng),否則描述文字將不顯示.
說(shuō)實(shí)話,這一部分沒(méi)什么好講的.下面我們進(jìn)入進(jìn)階篇.
二.復(fù)雜修改
添加新兵種.
以添加"密蘇里"號(hào)戰(zhàn)列艦為例.
首先,選定一個(gè)原身,筆者選了Monitor(炮艦).
在proto.xml中找到Monitor,從
</Unit>
<Unit id ='427' name ='Monitor'>開(kāi)始往下復(fù)制,到Monitor的末尾
</ProtoAction>,粘貼.注意粘貼應(yīng)仿照其他單位的格式.
新兵種的雛形以做好.
下面對(duì)粘貼后的內(nèi)容作修改.
name改為與Monitor不同的名字,如BattleCruiser.
Unit id改為不與任何單位重合的數(shù)字,如999.
DisplayNameID,EditorNameID改為不與任何單位重合的數(shù)字,筆者改的分別是99999,99998.
下面對(duì)DisplayNameID,EditorNameID寫入你所需要的名稱.
打開(kāi)stringtable.xml,仿照其他內(nèi)容新建兩行(即<String _locID ='X'>XXX</String>,注意對(duì)齊).
在這兩行的X處分別寫入99999,99998.
該給這兩個(gè)字串加說(shuō)明了.你可以寫自己喜歡的名稱,筆者在99999那行寫入密蘇里號(hào),99998那行寫入有無(wú)與倫比火力的戰(zhàn)艦.
建立新說(shuō)明部分完畢.
下面,你可以自己隨意修改BattleCruiser的屬性(如將其設(shè)為英雄,讓它像大帆船那樣可以造兵...).
我們創(chuàng)造了一個(gè)新兵種,如何讓它在游戲中出現(xiàn)呢?
你可以通過(guò)卡片,也可以把它造出來(lái).
這里僅介紹通過(guò)卡片得到新兵種的方法.
記得有一個(gè)卡片是運(yùn)來(lái)一艘Monitor吧?我們就在這張卡片上做文章.
打開(kāi)techtree.xml,它的卡片名稱為HCShipMonitors,搜到這張卡片,將unittype的Monitor改為你剛命名的BattleCruiser即可!
(這樣在你使這張卡片時(shí),只會(huì)運(yùn)來(lái)密蘇里號(hào),而不會(huì)運(yùn)來(lái)Monitor.如果你不滿足,可以將卡片修改成既送Monitor又送BattleCruiser.自己試試吧!)
一個(gè)問(wèn)題待解決:這樣新增的兵種將不會(huì)使用任何技能.
2.讓單位擁有生產(chǎn)能力.
修改示例:讓explorer可以建造超級(jí)堡壘.
打開(kāi)Proto.xml.
搜索到描述explorer的部分.
你會(huì)發(fā)現(xiàn)再往下有
<UnitType>AbstractInfantry</UnitType>
<Train row ='0' page ='6' column ='1'>TradingPost</Train>
<Train row ='0' page ='6' column ='0'>TownCenter</Train>
<Train row ='0' page ='6' column ='2'>WarDog</Train>
復(fù)制上面的最后一行,粘貼到它的下一行(注意格式),column改為3,后面的英文單位名稱改為FortFrontier(超級(jí)堡壘)即可!
已經(jīng)可以使英雄具有建造超級(jí)堡壘的能力了,你難道不想讓他建得更快一些嗎?
仍然在explorer的描述部分找到
<ProtoAction>
<Name>Build</Name>
<Rate type ='TradingPost'>3.000000</Rate>
<Rate type ='TownCenter'>1.000000</Rate>
</ProtoAction>
仿照添加一行:<Rate type ='FortFrontier'>X</Rate>,這里的X就是建造速度的乘數(shù)!
對(duì)于沒(méi)有生產(chǎn)能力的單位,在其最后一行UnitType的下一行添加如上描述行(<Train row ='X' page ='X' column ='X'>XXX</Train>)即可!
以上,就是學(xué)習(xí)啦小編給大家介紹的帝國(guó)時(shí)代3修改教程的內(nèi)容,希望大家喜歡。