请选择 进入手机版 | 继续访问电脑版
跳转到:
打印 上一主题 下一主题

[教程] 帝国时代3修改教程--Protoy.xml

[复制链接]
LV20 ????

三好萌新

阅读权限
255
积分
32711
食物
4275
木材
2070
钱币
3544
茶叶
187
钻石
1325
经验
15287

幸运勋章

跳转到指定楼层
楼主
发表于 2019-10-5 09:44:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在帝国3中,protoy.xml定义单位属性,例如有生命值、移动速度、单位类型、视野、攻击力、建造按钮、研发科技按钮、占用人口数量等属性设定,修改这个文件很简单,记事本打开,然后找到对应单位把<xxxxx>x.000<xxxxx>中的x.000修改掉然后保存就可以了。

用记事本打开游戏目录\data\protoy.xml这个文件:

	<Unit id ='Y' name ='XXX'>
		XXX是单位调用名。Y是Unit ID,没有用的。
		Y其实也不是没有用,实际上就是给你观赏用的。
		从0开始一个单位计一个数;你会发现帝国3里面的单位就是从0计算到1462,而帝国3的自定义的触发程序有一个就是用上了UnitID,也是从0开始计算。
		[(int )] kbUnitCount(int player, int unitTypeID, int stateID ): Returns a quick unit count of units for a player.
		说了一堆你听不懂的事情,总之就是一个单位为0,第十个单位为9,第100个单位为99,第1463个单位为1462。
		

		<DBID>X.0000</DBID>
		单位DBID,貌似没用。



		<DisplayNameID>XXXXX</DisplayNameID>
		在游戏中显示的名字(代号),与stringtabley.xml关联。(在stringtabley.xml搜索中间的五个数字你就会懂了)

		<EditorNameID>XXXXX</EditorNameID>
		在剧情编辑器显示的名字(代号),与stringtabley.xml关联。(在stringtabley.xml搜索中间的五个数字你就会懂了)
		如果没有这语句,剧情编辑器就显示DisplayNameID的名字(代号)。



		<ObstructionRadiusX>X.0000</ObstructionRadiusX>
		<ObstructionRadiusZ>X.0000</ObstructionRadiusZ>
		单位的实际体积,数值越大,体积越大,目标占用位置越大。XXX注:图像与模型不会变大。



		<FormationCategory>X.0000</FormationCategory>
		单位类型,有Ranged,protected,body,mobile这几类
		Ranged一般用于带远程攻击的兵种
		protected一般用于炮兵及几乎没有攻击能力的单位
		body一般用于近战型步兵
		mobile一般用于骑兵
 


		<PopulationCount>X.0000</PopulationCount>
		每个该类单位所占人口。
		注意:俄国军队不能改为0,否则俄国不能出兵的。
		(如果要改为0需要在civs.xml删除沙俄的捆绑出兵方式的语句,具体请点击这里
 


		<PlacementFile>xxxxx.xml</PlacementFile>
		建筑建造位置限制的xml,具体看11-8
 


		<PopulationCapAddition>X.0000</PopulationCapAddition>
		每个该类单位支持的人口。(例如房屋、村庄、神社提供的人口数)
 


		<MaxVelocity>X.0000</MaxVelocity>
		移动速度

		<MaxRunVelocity>X.0000</MaxRunVelocity>
		单位掉队时,追赶队伍的速度。
 


		<MovementType>X.0000</MovementType>
		单位移动模式,共分air,water,land三类
		air:移动完全不受阻碍,即在天上飞;注:修改成air不能捡陆地上的宝藏。
		water:只能在海里移动。
		land:只能在陆地移动。
 


		<TurnRate>X.0000</TurnRate>
		单位转弯时的速度,数值越大,转弯越快。 (如果数值过小,单位在转弯时会先朝目标方向移动,再慢慢把身子转过去)
 


		<AnimFile>xxxxx.xml</AnimFile>单位的动画xml。要用AOE3ED在art1、2、3、4、5.bar提取。
 


		<ImpactType>X.0000</ImpactType>
		单位自身类型,如Flesh(人体),Animal(动物), Wood(木制),Stone(石制)
		这个跟命中单位特效文件有关联,不过你现在是不会懂得啦。
 

		<Icon>icon\xxxx</Icon>		
		单位调用的图标文件,这是显示在建造命令里的图标。
		???我是不是下载错文件了?吓得我赶紧查看了一遍,是帝国3修改圣典没错。


		<PortraitIcon>icon\xxxx</PortraitIcon>		
		单位调用的图标文件,这是当你点选某个单位时,中间的图标。



		<RolloverTextID>XXXXX</RolloverTextID>
		语言显示代码,这是显示在建造命令里或主城模式卡片里对单位进行描述的语言代码。

		↑与stringtabley.xml关联↓。(在stringtabley.xml搜索中间的五个数字)

		<ShortRolloverTextID>XXXXX</ShortRolloverTextID>
		语言显示代码,当你将光标移动到某个单位上,显示的对单位进行描述的语言代码。



		<InitialHitpoints>X.0000</InitialHitpoints>
		单位刚被生产出来的初始生命值。

		<MaxHitpoints>X.0000</MaxHitpoints>
		单位的最高生命值(未升级的情况下)。 



		<DeadReplacement>protoname</DeadReplacement>
		单位死亡后变成XXX,例如你将村民死亡后变成村民,然后等同于不死。



		<LOS>X.0000</LOS>
		单位视野,数值越大,视野越广。



		<ProjectileProtoUnit>X.0000</ProjectileProtoUnit>
		单位攻击时发射的投射物,即单位名称。【实际上在tactics或者在ProtoAction定义】



		<BuildPoints>X.0000</BuildPoints>
		建筑被产出来需要的时间。数值越大,生产越慢。 (如果将建筑物的改为0,则刚放下建筑就建成) 



		<TrainPoints>X.0000</TrainPoints>
		单位被产出来需要的时间。数值越大,生产越慢。



		<Bounty>X.0000</Bounty> 
		单位死亡出来加的经验值。

		<BuildBounty>X.0000</BuildBounty>
		单位生产出来加的经验值。



		<Contain>XXX</Contain>可以驻守的类型
		(注:可以采用单位调用名或标签,例:AbstractVillager村民、AbstractInfantry步兵、AbstractHeavyInfantry重步兵,all全部......具体看教程的单位标签) 



		<MaxContained>X.0000</MaxContained>
		建筑物最大驻守数量。



		<Cost resourcetype ='XXX'>X.0000</Cost>
		生产单位所需资源类型及数目。(food是食物,wood是木头,gold是金子,trade是茶叶,ships是船运,xp经验)



		<InitialResource resourcetype ='XXX'>X.0000</InitialResource> 
		提供资源开采的单位(如树,银矿),提供的资源类型及数目。(food是食物,wood是木头,gold是金子,trade是茶叶,ships是船运,xp经验)
 


		<ResourceSubType>xxxx</ResourceSubType>
		提供资源开采的单位,提供的资源类型及数目 (food,wood,gold,trade,ships,xp,fame<BuildingWorkRate>X.0000</BuildingWorkRate> 
		建筑工作速度(如研究,生产)的乘数。 



		<MaxContained>X.0000</MaxContained>
		单位提供的驻扎空间。



		<Lifespan>X.0000</Lifespan>
		单位存活时间。修改远程导弹发现导弹消失了,就是这个原因——发射物挂掉了


		
		<BuildLimit>X.0000</BuildLimit>
		单位建造上限。注:比较容易与下面的BuilderLimit混淆。



		<AllowedAge>X.0000</AllowedAge>
		单位被生产出来的最早时代(0-4)。0发现时代,1殖民时代2堡垒3工业4帝王


		<Armor type ='XXX' value ='X'></Armor>
		单位护甲类型(ranged,siege,hand)及抵消伤害的百分比,1为对某种伤害全部抵消。 
		要不要尝试一下将护甲改为All呢?然而并没有什么卵用,All在damagetypes.xml没有定义,所以是默认的炮轰、攻城图标,实际上不存在。



		<BuilderLimit>X.0000</BuilderLimit>
		建造一个该单位的最大建造数量(建造人数)。 



		<MinimapIcon>图标路径</MinimapIcon>
		单位在小地图上所显示的图案(因为有人理解能力不行,特意加上了图标.....)

		<MinimapIcon>ui\minimap\t</MinimapIcon>
		贸易站

		<MinimapIcon>ui\minimap\n</MinimapIcon>
		土著贸易站

		<MinimapIcon>ui\minimap\asian_native_site</MinimapIcon>
		亚洲宗教贸易站

		<MinimapIcon>ui\minimap\wonder_16x16</MinimapIcon>
		亚洲奇观

		<MinimapIcon>ui\minimap\towncenter</MinimapIcon>
		市镇中心

		<MinimapIcon>ui\minimap\fort_star_16x16</MinimapIcon>
		堡垒

		<MinimapIcon>ui\minimap\highlighted item</MinimapIcon>
		目标

		<MinimapIcon>ui\minimap\treasure</MinimapIcon>
		宝藏

		<MinimapIcon>ui\minimap\hero</MinimapIcon>
		英雄

		<MinimapIcon>ui\minimap\s</MinimapIcon>
		市镇中心马车	你是不是认为我忘记添加图标了?

		<MinimapIcon>ui\minimap\minimap_gold</MinimapIcon>
		黄金



		<GathererLimit>X.0000</GathererLimit>
		该单位支持的最大采集者数量。 



		<Decay delay ='90000.0000' duration ='90000.0000'></Decay>
		单位/建筑死亡后,尸体/废墟保留:Delay消失延迟时,duration保留时间。



		<WanderDistance>30</WanderDistance>
		大自然单位四处走动范围,需要添加<Flag>Wanders</Flag>才会生效



		<SocketUnitType>TradePostSocket</SocketUnitType>
		建筑只能在贸易站地点上面建造,经试验,改成其它无效。



		<UnitType>XXXXXXXX</UnitType>单位标签与属性。具体看此教程的单位标签。(点一下这个图片)
		单位标签的叫法源于寰宇工作室制作的帝国时代3单位手册,Unittype翻译应为单位类型,但因为单位手册的影响,所以本教程继续使用单位标签这个名称。




		<Flag>XXX</Flag> 定义单位的特殊属性及效果。↓↓↓↓↓
		<Flag>NotDeleteable</Flag>
  不能被delete掉
		<Flag>KnockoutDeath</Flag>
  单位生命值归0后会倒下而不是消失
		<Flag>AllowAutoGarrison</Flag>
  允许按右键自动驻防,没有这句必须使用命令栏的按钮才能驻守到建筑物。
		<Flag>ShowTactics</Flag>
  显示能力按钮
		<Flag>TieToWaterSurface</Flag>
  单位贴在水面或地面上,一般用于船只
		<Flag>StartOnNoUpdate</Flag>
  不允许自动生产单位,可能还有其他效果
		<Flag>DoNotValidateResourceInventory</Flag>
  允许采集指定数量资源(没有这语句,除非开秘籍快速,否则只能收集1资源)
		<Flag>RMCanRotate</Flag>
  作用不明,用在城镇中心上,开局第一个城镇中心会旋转180°
		<Flag>SnapPlacement</Flag>
  会因环境而自动旋转,码头,贸易站专用,给其他建筑用了后不能手动旋转。
		<Flag>CanAutoHeal</Flag>
  允许自动回血
		<Flag>NotPlayerPlaceable</Flag>
  在剧情编辑器隐藏放置该单位的选项
		<Flag>Invulnerable</Flag>
  不能被攻击也不能受到伤害
		<Flag>InvulnerableIfGaia</Flag>
  如果该单位是大自然的单位,那么该单位不能被攻击也不能受到伤害。
		<Flag>DoNotCreateUnitGroupAutomatically</Flag>
  不能创建编队
		<Flag>DoNotShowOnMiniMap</Flag>
  在小地图不显示这个单位
		<Flag>NotSelectable</Flag>
  不能选取该单位
		<Flag>Nugget</Flag>
  宝藏
		<Flag>UnlimitedSupply</Flag>
  自身资源无上限。
		<Flag>HeroName1</Flag>
  设定随机名称必须加上HeroName1或HeroName2才会生效。
		<Flag>HeroName2</Flag>
  设定随机名称必须加上HeroName1或HeroName2才会生效。
		<Flag>PlaceAnywhere</Flag>
  可以任意在任意地方放置单位或建筑,但不代表你能建造建筑在水中或敌人第一城镇附近。
		<Flag>VisibleUnderFog</Flag>
  只要探索了地图,该单位即使不在你的视野内也能在战雾中看见
		<Flag>VisibleUnderFogIfGaia</Flag>
  如果该单位是大自然的单位,只要探索了地图,即使不在你的视野内也能在战雾中看见。
		<Flag>VisibleUnderFogOnlyAfterSeen</Flag>
  在看见此单位后,可以在已探索的地图但没有视野的情况下看见此单位。
		<Flag>GivesLOSToAll</Flag>
  所有玩家都能看见此单位的视野。
		<Flag>Wanders</Flag>
  当该单位为大自然单位的情况下,会在一定范围内自动走动
		<Flag>ForceToGaia</Flag>
  强制设定为大自然单位
		<Flag>AllowOverPopCap</Flag>
  在有空余人口数(最少为1)的情况下,建造此单位可以超出人口上限。
		<Flag>AlwaysAllowOverPopCap</Flag>
  建造此单位必须有空余人口,而且当前人口数量必须<当前人口总数-此单位占用人口点数
		<Flag>YPUsesExtraWorkerSlot</Flag>
  采集资源时,一个单位占用两个采集者位置
		<Flag>HideGarrisonFlag</Flag>
  隐藏驻守情况下的出现的旗帜
		<Flag>DieAtZeroResources</Flag>
  只有自身携带资源归0后才会死亡并且消失。一般与下面的DoNotDieAtZeroHitpoints联合使用。
		<Flag>DoNotDieAtZeroHitpoints</Flag>
  生命值归0后不会死亡,不会消失,但是无法控制,除了技能外无法对其再造成伤害。
		<Flag>ExcludeFromMoveAllMilitary</Flag>
  使用“移动所有军事单位”命令时,不会移动
		<Flag>wallBuild</Flag>
  添加后,建造此单位/建筑的时候,会变成放置墙。
		<Flag>UseAlignedObstructionOnMinimap</Flag>
  城墙那种在小地图上对齐。



		<Train row ='0' page ='X' column ='Y'>A</Train>
		此单位/建筑可以生产的单位。

		<Tech row ='0' page ='X' column ='Y'>A</Tech>
		此单位/建筑可以研究的科技。

		<Command page ='X' column ='Y'>A</Command>
		这是对该类单位的某些能力(控制按钮)的设定。例如最下方的命令按钮,与工厂的自动生产,城墙开门等。

		


pagex01.png






		Y是X行的第几个,protoname是单位调用名,techname是科技调用名,protoPowerName是protounitcommands.xml的调用名
		X的显示值看下表
='0' 训练 ='12' 英国人
='1' 改良 ='13' 法国人
='2' 步兵 ='14' 俄罗斯人
='3' 奇观 ='15' 荷兰人
='4' 骑兵 ='16' 西班牙领事馆
='5' 炮兵 ='17' 葡萄牙人
='6' 建造 ='18' 选择盟友
='7' 购买 ='19' 军队
='8' 出售 ='20' (领事馆的解约科技大按钮)
='9' 战术 ='21' 购买
='10' 命令 ='22' (空白)
='11' 能力(Abilities)




		<Tactics>XXX.tactics</Tactics>
		单位基本属性。单位的战术、技能、攻击、自动采集、等走动都要在这里定义。要用AOE3ED提取(DataPY.bar/data3.bar/data2.bar/data.bar)。
 


	

攻击设定

		<ProtoAction> 
			<Name>XXXXX</Name>
攻击名称
			<Damage>XXX</Damage>
单位攻击力
			<Accuracy>0.9900</Accuracy>
命中率,只能用于近战与弓箭攻击,火枪或炮弹的命中率会在tactics说到。
			<DamageType>XXX</DamageType>
攻击类型;有Hand、Ranged、Siege三种
			<MinRange>XXX</MinRange>
最小射程(例如是4,那么要距离敌方4才能攻击)
			<MaxRange>XXX</MaxRange>
最大射程
			<ROF>XXX</ROF>
攻击速率(数值越小,攻击速度越高)
			<DamageArea>XXX</DamageArea>
攻击的伤害范围
			<DamageBonus type ='A'>X.0000<DageBonus>
对A造成X倍伤害,A为单位标签或者单位调用名。
			<DamageFlags>XXX</DamageFlags> 

范围伤害类型。
GAIAEnemy:只对大自然与敌人造成伤害。
Enemy:只对敌人造成伤害。
没有这句但有上面的<DamageArea>XXX</DamageArea>,那么会打伤自己人;
如果利用在黄坚的技能天火[power.xml定义可攻击类型为All]并且删除了<DamageFlags>XXX</DamageFlags>就可以用来打自己人了。
			<DamageCap>XXX</DamageCap>
带有范围伤害【<DamageArea>XXX</DamageArea>】能造成的最大伤害,如果要一次性摧毁敌人请删除这句。并把范围调高。
		</ProtoAction>

村民自动采集茶叶

		<ProtoAction> 
			<Name>AutoGatherTrade</Name>
自动采集茶叶
			<Type>AutoGather</Type>
			<Rate type ='Trade'>0.030000</Rate>
每秒自动采集0.03茶叶;数值越大,采集速度越快。
		</ProtoAction>

探险家建造建筑倍数,可以加到村民那里去。

		<ProtoAction> 
			<Name>Build</Name>
建造倍数;数值越大,建造速度越快。
			<Rate type ='TradingPost'>3.000000</Rate>
3倍速度建造贸易站
			<Rate type ='TownCenter'>1.000000</Rate>
1倍速度建造城镇中心
			<Rate type ='单位调用名或者标签'>X.000000</Rate>
		</ProtoAction>

治疗设定

		<ProtoAction> 
			<Name>Heal</Name>
治疗
			<Type>Heal</Type>
			<Rate type ='LogicalTypeHealed'>6.000000</Rate>
每秒治疗被治疗者6生命;数值越大治疗速度越快。
			<Rate type ='单位调用名或者标签'>X.000000</Rate>
		</ProtoAction>

村民采集

		<ProtoAction> 
			<Name>Gather</Name>
采集;数值越大,采集速度越快。
			<Rate type ='Tree'>0.500000</Rate>
每秒从树木采集0.5木材
			<Rate type ='Mill'>0.670000</Rate>
每秒从磨坊采集0.67食物(实际为0.67X75%)
			<Rate type ='AbstractMine'>0.600000</Rate>
每秒矿场采集0.6黄金
			<Rate type ='Plantation'>0.50</Rate>
每秒从种植园·采集0.5黄金(实际为0.5X75%)
			<Rate type ='Herdable'>2.000000</Rate>
每秒从畜牧采集2食物
			<Rate type ='Huntable'>0.840000</Rate>
每秒从猎物采集0.84食物
			<Rate type ='BerryBush'>0.670000</Rate>
每秒从浆果采集0.67食物
			<Rate type ='AbstractFarm'>0.670000</Rate>
每秒从农田采集0.67食物
			<Rate type ='AbstractFish'>0.670000</Rate>
每秒从鱼群采集0.67食物【这个是渔船的】
			<Rate type ='AbstractWhale'>0.500000</Rate>
每秒从鲸鱼采集0.5黄金【这个是鲸鱼的】
			<Rate type ='ypRicePaddy' resource ='Food'>0.5000</Rate>
每秒从稻田采集0.5食物
			<Rate type ='ypRicePaddy' resource ='Gold'>0.3400</Rate>
每秒从稻田采集0.34黄金
			<Rate type ='ypBerryBuilding'>0.670000</Rate>
每秒从樱桃园采集0.67食物
			<Rate type ='ypGroveBuilding'>0.500000</Rate>
每秒从芒果园采集0.5木材
			<Rate type ='单位调用名或者标签'>速率X.000000</Rate> 
		</ProtoAction>

银行、工厂等自动采集;数值越大,采集速度越快,可以换成其他的资源。:

		<ProtoAction>
			<Name>AutoGatherCoin</Name>
			<Rate type ='Gold'>5.500000</Rate>
		</ProtoAction>

自动采集黄金
每秒采集5.5黄金
		<ProtoAction>
			<Name>AutoGatherFood</Name>
			<Rate type ='Food'>5.500000</Rate>
		</ProtoAction>

自动采集食物
每秒采集5.5食物

		<ProtoAction>
			<Name>AutoGatherWood</Name>
			<Rate type ='Wood'>5.500000</Rate>
		</ProtoAction>

自动采集木材
每秒采集5.5木材

ProtoAction必须在tactics定义才能生效,否者你直接在protoy城镇中心添加了自动采集食物速率,却不修改tactics的话,城镇中心是不会自动采集食物的。


您需要登录后才可以回帖 登录 | 注册

本版积分规则