當前位置:編程學習大全網 - 源碼下載 - 帝國時代3亞洲王朝我想多造幾個酒館,PROTOY這個文件如何改?

帝國時代3亞洲王朝我想多造幾個酒館,PROTOY這個文件如何改?

帝國時代3的修改方法,其實並不難,主要文件都是解了密的Xml文件,甚至比國家的崛起修改還容易!這是初級篇,主要研究Data目錄下的三個文件的修改,涉及兵種,建築,科技,翻譯等內容。

修改後的效果顯示:

在陸地上的戰船

需要的三個文件:

Data目錄下的

proto.xml

stringtable.xml

techtree.xml

各文件主要內容:

proto.xml:單位的基本屬性

stringtable.xml:顯示語言

techtree.xml:科技和卡片的基本屬性

壹.單壹的文件修改

1.proto.xml

用記事本打開這個文件編輯.

<Unit id ='X' name ='XXX'>

單位的第壹條屬性,不做復雜修改的話,建議不要動.

<DBID>X</DBID>

壹般不做修改

<DisplayNameID>X</DisplayNameID>

在遊戲中顯示的文字代號,與stringtable.xml關聯.

<EditorNameID>X</EditorNameID>

同樣是顯示的文字代碼,但不知在哪裏起作用,壹般不做修改,與stringtable.xml關聯.

<ObstructionRadiusX>***</ObstructionRadiusX>

<ObstructionRadiusZ>***</ObstructionRadiusZ>

單位的實際體積,數值越大,體積越大,當然目標也越大.

<FormationCategory>X</FormationCategory>

有Ranged,protected,body,mobile這幾類

Ranged壹般用於帶遠程攻擊的兵種

protected壹般用於炮兵及幾乎沒有攻擊能力的單位

body壹般用於近戰型步兵

mobile壹般用於騎兵

<MaxVelocity>X</MaxVelocity>

<MaxRunVelocity>X</MaxRunVelocity>

最大行走/跑步速度,數值越大,單位移動越快,很有修改價值

<MovementType>X</MovementType>

單位移動模式,很有修改價值

***分air,water,land三類

air:移動完全不受阻礙,即在天上飛.

water:只能在海裏移動.

land:只能在陸地移動.

<TurnRate>X</TurnRate>

單位轉彎時的速度,數值越大,轉彎越快.

(如果數值過小,單位在轉彎時會先朝目標方向移動,再慢慢把身子轉過去)

<AnimFile>

建議不做修改.

<ImpactType>X</ImpactType>

單位自身類型,如Flesh(人體),Animal(動物),Wood(木制),Stone(石制)...

<Icon>X</Icon>

單位調用的頭像文件,這是顯示在建造命令裏的頭像.

<PortraitIcon>X</PortraitIcon>

單位調用的頭像文件,這是當妳點選某個單位時,它的大&小肖像.

<RolloverTextID>X</RolloverTextID>

語言顯示代碼,這是顯示在建造命令裏或主城模式卡片裏對單位進行描述的語言代碼.

<ShortRolloverTextID>X</ShortRolloverTextID>

語言顯示代碼,當妳將光標移動到某個單位上,顯示的對單位進行描述的語言代碼.

<InitialHitpoints>X</InitialHitpoints>

單位剛被生產出來的初始生命值,如果改為0...

很有修改價值

<MaxHitpoints>X</MaxHitpoints>

單位的最高生命值(未升級的情況下).

很有修改價值

<LOS>X</LOS>

單位視野,數值越大,視野越廣.

很有修改價值

<ProjectileProtoUnit>X</ProjectileProtoUnit>

單位攻擊時發射的投射物,即單位名稱.

有修改價值

<UnitAIType>X</UnitAIType>

單位閑置時(暫時這麽說吧)調用的AI類型.

很有修改價值

<BuildPoints>X</BuildPoints>

<TrainPoints>X</TrainPoints>

建築/單位被產出來需要的時間.數值越大,生產越慢.

(如果將建築物的改為0,則剛放下建築就建成)

很有修改價值

<Bounty>X</Bounty>

<BuildBounty>X</BuildBounty>

單位死亡/生產出來加的經驗值.

很有修改價值

<Cost resourcetype ='XXX'>X</Cost>

生產單位所需資源類型及數目.

很有修改價值

<InitialResource resourcetype ='XXX'>X</InitialResource>

提供資源開采的單位(如樹,銀礦),提供的資源類型及數目.

很有修改價值

<ResourceSubType>Gold</ResourceSubType>

提供資源開采的單位,提供的資源類型及數目(與上條對應).

很有修改價值

<BuildingWorkRate>X</BuildingWorkRate>

建築工作速度(如研究,生產)的乘數.

很有修改價值

<MaxContained>X</MaxContained>

單位提供的駐紮空間.

有修改價值

<AllowedAge>X</AllowedAge>

單位被生產出來的最早時代(0-4).

有修改價值

<Armor type ='X' value ='X'></Armor>

單位護甲類型(ranged,siege,hand)及抵消傷害的百分比.壹種單位能否有多於壹種的護甲,我還沒有試過.

(如0.2表示抵消攻擊傷害的20%)

數值高並不意味著無敵!

這與後面的傷害類型有關,以後我會做說明.

很有修改價值

<BuilderLimit>X</BuilderLimit>

建造壹個該單位的最大建築工數量.

有修改價值

<GathererLimit>X</GathererLimit>

該單位支持的最大采集者數量.

很有修改價值

<PopulationCount>X</PopulationCount>

每個該類單位所占人口.

(如果妳想暴兵,就改為0吧)

很有修改價值

<PopulationCapAddition>X</PopulationCapAddition>

每個該類單位支持的人口.

很有修改價值

<UnitType>XXX</UnitType>

<Flag>XXX</Flag>

非常有修改價值!

可以定義單位最基本的屬性.

如不會被Delete掉(<Flag>NotDeleteable</Flag>),英雄(<UnitType>Hero</UnitType>

)......

以後我會進行說明.

在<UnitType>XXX</UnitType>

的下面,通常有

<Train row ='X' page ='X' column ='X'>XXX</Train>

壹大串

這是對該類單位可以生產單位的設定!非常有用!自己試著改壹改,添壹添,以後我會說明.

在<Flag>XXX</Flag>

的下面,通常有

<Command page ='X' column ='X'>XXX</Command>

這是對該類單位的某些能力(控制按鈕)的設定,非常有用!自己試著改壹改,添壹添,以後我會說明.

在<Tactics>XXX</Tactics>

下面,通常會有

<ProtoAction>

XXX

</ProtoAction>

壹類針對單位動作的設定,非常有用!其關聯很多,自己試著改壹改,以後我會具體說明.

很有修改價值!

<ProtoAction>到</ProtoAction>之間的壹些設定:

<Damage>XXX</Damage> 單位攻擊傷害.

<DamageType>XXX</DamageType> 傷害類型.

<MaxRange>XXX</MaxRange> 射程.

<ROF>XXX</ROF> 攻擊速率(數值越小,速率越高).

<DamageCap>XXX</DamageCap> 不是很明確,似乎是壹次攻擊所能造成的最大傷害,壹般用於艦船,數值=Damage*2

<DamageBonus type ='XXX'>X</DamageBonus> 對某類單位的傷害乘數.

其中XXX與對應單位的UnitType關聯.

<DamageArea>XXX</DamageArea> 攻擊的傷害範圍.

<DamageFlags>XXX</DamageFlags> 未知.

引申,對於采集者的采集速度設定.

搜索"<Unit id ='200' name ='Settler'>"

(采集者),接著搜索"<Name>Gather</Name>",

會出現(下面的數值為原始設定)

<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>

數值越大,采集速度越快.速度單位應是X單位資源/秒*人.

對proto.xml的基本修改就寫到這裏了.

2.techtree.xml

Warning:筆者用的techtree.xml是遊俠網上下的突破9級和卡片使用限制的補丁內的techtree.xml.

在這個文件裏,大多數的科技或卡片以這種形式描述:

<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).這就是壹個完整的描述壹個科技的格式.

以升級三桅戰艦的科技為例說明(以下信息為原設定)

搜索"ImperialManOWar",直到搜到如下描述(這個科技與標準試玩版的相同):

<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> : 科技實際顯示名稱代碼.與stringtable.xml關聯.

<Cost resourcetype ='X'>X</Cost>: 研發此科技需要的資源種類及數量.

<ResearchPoints>X</ResearchPoints> : 研發時間.數值越大,研發越慢.

<Icon>X</Icon> : 科技圖標文件的地址.

<RolloverTextID>X</RolloverTextID> : 語言顯示代碼,即科技描述文字代碼.

<Flag>UpgradeTech</Flag> : 該科技的基本屬性.此為升級單位類科技(為升級單位類科技所必須).

<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>

這可以說是最有價值的修改部分.

</Effects>: 科技描述結束標誌.

Effect type : 科技效果.

有Data,SetName,TechStatus,SetAge四類.

Data : 允許設置研發對象的屬性乘數.

SetName : 允許設置研發對象的新名稱.

TechStatus : 未知.

SetAge : 允許升級時代(Age1-4).如果有這個描述出現,則在<Flag>裏應有<Flag>AgeUpgrade</Flag>與之對應.

amount : 研發對象的屬性乘數或增量.

subtype : 針對研發對象的某類屬性設定.

allactions : 似乎是激活某些東西,作用不明.

relativity : 屬於何類屬性加成(乘數--BasePercent,增量--Absolute),例如對種植效率加成壹般用乘數,對人口上限加成用增量.

<Target type ='ProtoUnit'>X</Target></Effect> : 科技研發對象(用於此描述橫行Effect type不是SetName的另三類科技效果).

proto ='X' : 科技研發對象(用於此描述橫行Effect type是SetName的科技效果).

newName : 科技研發對象的新名稱代碼(對應SetName,proto)

對此科技的翻譯:

帝國改良戰艦.由三桅戰艦升為Imperial Man-of-War戰艦.傷害為原來150%,生命值為原來150%.需要木材1500單位,需要黃金1500單位.

引申:

1).如果妳想讓此科技的傷害加成屬性對城鎮中心有效,可在

<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'>(城鎮中心名稱)</Target></Effect>

註意格式最好與原格式對齊!

2).如果妳不想讓此科技對三桅戰艦生命有加成,則可將

<Effect type ='Data' amount ='1.50' subtype ='Hitpoints' relativity ='BasePercent'>

<Target type ='ProtoUnit'>Frigate</Target></Effect>

刪除.

註意格式最好與原格式對齊!

這樣,妳就可以隨意設置壹個科技.

2).這就是壹個完整的描述壹個卡片的格式(含義同上).

<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> : 在城鎮中心產生該單位.

對此卡片的翻譯:

從主城運送壹艘三桅戰艦到戰場.

修改amount就是修改運送的三桅戰艦數量.

引申:

如果妳還想運點兒別的,添加:

<Effects>

<Effect type ='Data' amount ='X' subtype ='FreeHomeCityUnit' unittype ='X' relativity ='Absolute'>

<Target type ='Player'></Target></Effect>

註意格式最好與原格式對齊!

簡單的科技/卡片修改就到這裏了.

3.stringtable.xml

可以添加,刪除,修改.

自己試著改壹改,仿照著添壹下,註意代碼必須與techtree.xml或proto.xml的代碼對應,否則描述文字將不顯示.

說實話,這壹部分沒什麽好講的.下面我們進入進階篇.

二.復雜修改

添加新兵種.

以添加"密蘇裏"號戰列艦為例.

首先,選定壹個原身,筆者選了Monitor(炮艦).

在proto.xml中找到Monitor,從

</Unit>

<Unit id ='427' name ='Monitor'>開始往下復制,到Monitor的末尾

</ProtoAction>,粘貼.註意粘貼應仿照其他單位的格式.

新兵種的雛形以做好.

下面對粘貼後的內容作修改.

name改為與Monitor不同的名字,如BattleCruiser.

Unit id改為不與任何單位重合的數字,如999.

DisplayNameID,EditorNameID改為不與任何單位重合的數字,筆者改的分別是99999,99998.

下面對DisplayNameID,EditorNameID寫入妳所需要的名稱.

打開stringtable.xml,仿照其他內容新建兩行(即<String _locID ='X'>XXX</String>,註意對齊).

在這兩行的X處分別寫入99999,99998.

該給這兩個字串加說明了.妳可以寫自己喜歡的名稱,筆者在99999那行寫入密蘇裏號,99998那行寫入有無與倫比火力的戰艦.

建立新說明部分完畢.

下面,妳可以自己隨意修改BattleCruiser的屬性(如將其設為英雄,讓它像大帆船那樣可以造兵...).

我們創造了壹個新兵種,如何讓它在遊戲中出現呢?

妳可以通過卡片,也可以把它造出來.

這裏僅介紹通過卡片得到新兵種的方法.

記得有壹個卡片是運來壹艘Monitor吧?我們就在這張卡片上做文章.

打開techtree.xml,它的卡片名稱為HCShipMonitors,搜到這張卡片,將unittype的Monitor改為妳剛命名的BattleCruiser即可!

(這樣在妳使這張卡片時,只會運來密蘇裏號,而不會運來Monitor.如果妳不滿足,可以將卡片修改成既送Monitor又送BattleCruiser.自己試試吧!)

壹個問題待解決:這樣新增的兵種將不會使用任何技能.

2.讓單位擁有生產能力.

修改示例:讓explorer可以建造超級堡壘.

打開Proto.xml.

搜索到描述explorer的部分.

妳會發現再往下有

<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>

復制上面的最後壹行,粘貼到它的下壹行(註意格式),column改為3,後面的英文單位名稱改為FortFrontier(超級堡壘)即可!

已經可以使英雄具有建造超級堡壘的能力了,妳難道不想讓他建得更快壹些嗎?

仍然在explorer的描述部分找到

<ProtoAction>

<Name>Build</Name>

<Rate type ='TradingPost'>3.000000</Rate>

<Rate type ='TownCenter'>1.000000</Rate>

</ProtoAction>

仿照添加壹行:<Rate type ='FortFrontier'>X</Rate>,這裏的X就是建造速度的乘數!

測試成果吧!

對於沒有生產能力的單位,在其最後壹行UnitType的下壹行添加如上描述行(<Train row ='X' page ='X' column ='X'>XXX</Train>

)即可!

  • 上一篇:阿裏雲如何改變實名認證?阿裏雲如何更換實名認證手機號?
  • 下一篇:生日網頁源代碼
  • copyright 2024編程學習大全網