QQ资源网-专注分享互联网优质资源,让我们生活更精彩!

首 页

栏目分类:
  • QQ游戏攻略
  • QQ游戏动态
  • 手机游戏
  • 英雄联盟
  • 穿越火线
  • 地下城与勇士
  • 当前位置:QQ资源网QQ游戏QQ游戏攻略

    文明6魔法兵种该怎么创建? Civilization6魔法兵种创建教程

    时间:2016-10-31 分类:QQ游戏攻略 人气: 105 编辑:Admin_qqzy

    文明6魔法兵种该怎么创建? Civilization6魔法兵种创建教程

    首先打开Sid Meier's Civilization VI\Base\Assets\Gameplay\Data下的Units.xml

    下面所有红字部分都是我们需要添加的代码,就不再一一指明了。

    首先我们再<Types>下创建一个新单位wizard

    搜索<Types>

    <Types>
    <Row Type="UNIT_WIZARD" Kind="KIND_UNIT"/>
    <!-- Civilian-->
    <Row Type="UNIT_SETTLER" Kind="KIND_UNIT"/>
    <Row Type="UNIT_BUILDER" Kind="KIND_UNIT"/>
    <Row Type="UNIT_TRADER" Kind="KIND_UNIT"/>
    <Row Type="UNIT_MISSIONARY" Kind="KIND_UNIT"/>
    <Row Type="UNIT_APOSTLE" Kind="KIND_UNIT"/>

    然后写入AI

    搜索<UnitAiInfos>,这里添加的是和普通的远程单位一样的AI。

    <UnitAiInfos>
    <Row UnitType="UNIT_WIZARD" AiType="UNITAI_COMBAT"/>
    <Row UnitType="UNIT_WIZARD" AiType="UNITTYPE_RANGED"/>
    <Row UnitType="UNIT_WIZARD" AiType="UNITTYPE_LAND_COMBAT"/>

    <!-- Civilian-->
    <Row UnitType="UNIT_SETTLER" AiType="UNITAI_SETTLE"/>
    <Row UnitType="UNIT_SETTLER" AiType="UNITTYPE_CIVILIAN"/>
    <Row UnitType="UNIT_BUILDER" AiType="UNITAI_BUILD"/>
    <Row UnitType="UNIT_BUILDER" AiType="UNITTYPE_CIVILIAN"/>
    <Row UnitType="UNIT_TRADER" AiType="UNITTYPE_CIVILIAN"/>

    然后选择替代兵种

    搜索<UnitReplaces>,这里我没有添加任何代码,因为不打算用它来替代任何单位。有需要的同学按照下面的格式添加,蓝色字体部分为特色单位,绿色字体部分为需要替代的普通单位。

    <UnitReplaces>
    <Row CivUniqueUnitType="UNIT_GREEK_HOPLITE" ReplacesUnitType="UNIT_SPEARMAN"/>
    <Row CivUniqueUnitType="UNIT_EGYPTIAN_CHARIOT_ARCHER" ReplacesUnitType="UNIT_HEAVY_CHARIOT"/>
    <Row CivUniqueUnitType="UNIT_SPANISH_CONQUISTADOR" ReplacesUnitType="UNIT_MUSKETMAN"/>
    <Row CivUniqueUnitType="UNIT_ROMAN_LEGION" ReplacesUnitType="UNIT_SWORDSMAN"/>

    添加单位类型

    搜索<TypeTags>

    <TypeTags>
    <Row Type="UNIT_WIZARD" Tag="CLASS_RANGED"/>
    <Row Type="UNIT_BARBARIAN_HORSEMAN" Tag="CLASS_LIGHT_CAVALRY"/>
    <Row Type="UNIT_BARBARIAN_HORSE_ARCHER" Tag="CLASS_RANGED_CAVALRY"/>
    <Row Type="UNIT_SCOUT" Tag="CLASS_RECON"/>
    <Row Type="UNIT_SCOUT" Tag="CLASS_REVEAL_STEALTH"/>
    <Row Type="UNIT_RANGER" Tag="CLASS_RECON"/>
    <Row Type="UNIT_WARRIOR" Tag="CLASS_MELEE"/>
    <Row Type="UNIT_SWORDSMAN" Tag="CLASS_MELEE"/>
    <Row Type="UNIT_MUSKETMAN" Tag="CLASS_MELEE"/>

    然后就是添加具体的单位数据了,搜索<Units>

    <Units>
    <Row UnitType="UNIT_WIZARD" BaseMoves="2" Cost="50" AdvisorType="ADVISOR_CONQUEST" BaseSightRange="2" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_LAND_COMBAT" Name="LOC_UNIT_WIZARD_NAME" Description="LOC_UNIT_WIZARD_DESCRIPTION" PurchaseYield="YIELD_GOLD" PromotionClass="ROMOTION_CLASS_RANGED" Maintenance="1" Combat="15" RangedCombat="25" Range="2" PrereqTech="TECH_ARCHERY" MandatoryObsoleteTech="TECH_BALLISTICS"/>
    <Row UnitType="UNIT_SETTLER" BaseMoves="2" Cost="80" AdvisorType="ADVISOR_GENERIC" BaseSightRange="3" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_CIVILIAN" FoundCity="true" PopulationCost="1" PrereqPopulation="2" Name="LOC_UNIT_SETTLER_NAME" Description="LOC_UNIT_SETTLER_DESCRIPTION" CanCapture="False" CostProgressionModel="COST_PROGRESSION_PREVIOUS_COPIES" CostProgressionParam1="20" PurchaseYield="YIELD_GOLD" PSeudoYieldType="SEUDOYIELD_UNIT_SETTLER"/>
    <Row UnitType="UNIT_BUILDER" BaseMoves="2" Cost="50" AdvisorType="ADVISOR_GENERIC" BaseSightRange="2" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_CIVILIAN" Name="LOC_UNIT_BUILDER_NAME" Description="LOC_UNIT_BUILDER_DESCRIPTION" CanCapture="False" CostProgressionModel="COST_PROGRESSION_PREVIOUS_COPIES" CostProgressionParam1="4" PurchaseYield="YIELD_GOLD" BuildCharges="3"/>
    <Row UnitType="UNIT_TRADER" BaseMoves="2" IgnoreMoves="true" Cost="40" AdvisorType="ADVISOR_GENERIC" BaseSightRange="2" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_CIVILIAN" Name="LOC_UNIT_TRADER_NAME" Description="LOC_UNIT_TRADER_DESCRIPTION" CanCapture="False" CostProgressionModel="COST_PROGRESSION_GAME_PROGRESS" CostProgressionParam1="400" PurchaseYield="YIELD_GOLD" PseudoYieldType="SEUDOYIELD_UNIT_TRADE" MakeTradeRoute="true" PrereqCivic="CIVIC_FOREIGN_TRADE"/>

    这里的数据比较多,来一一说明一下。

    UnitType="UNIT_WIZARD"这里不用多说,这行代码是哪个单位就靠它来识别了

    BaseMoves="2"移动力为2

    Cost="50"生产消耗的锤子为50

    AdvisorType="ADVISOR_CONQUEST"这里应该影响的是顾问建议的类型,没啥用

    BaseSightRange="2"视野范围为2

    ZoneOfControl="false"是否有ZOC,也就是游戏里走到近战单位边上会不能继续移动,远程单位一般没有ZOC功能。如果需要带有ZOC则把"false"改成“ture”

    Domain="DOMAIN_LAND"表示这是一个陆地单位

    FormationClass="FORMATION_CLASS_LAND_COMBAT"表示这是一个陆军战斗单位

    Name="LOC_UNIT_WIZARD_NAME" 单位名称,可以在对应的语言翻译文件里关联,比如汉化就是需要对应这个名称

    Description="LOC_UNIT_WIZARD_DESCRIPTION" 单位简介,作用同上,建造列表上面的说明。

    PurchaseYield="YIELD_GOLD"可以用金钱购买的意思,需要需要改成用信仰购买的话把"YIELD_GOLD"改成"YIELD_FAITH"

    PromotionClass="ROMOTION_CLASS_RANGED"单位晋升类型,就是单位升级后可以选择的那个列表,这里是远程单位和弓箭手一样的类型。

    Maintenance="1"维护费为1

    Combat="15" 单位的战斗力为15,对于远程单位来讲就是防御力,近战单位进攻防御都靠他

    RangedCombat="25"远程攻击力位25

    Range="2" 射程2,一般来讲只有远程单位需要它

    PrereqTech="TECH_ARCHERY"前提科技弓箭,为啥?因为这段文字完全是从弓箭手那里复制过来的。。。不需要的可以直接删除前提科技则开局即可建造

    MandatoryObsoleteTech="TECH_BALLISTICS"过时科技,同上

    如需要添加为某个文明的特色单位,则需要在加上TraitType="XXXXX",这里的XXXX指的是对应文明的或者领袖的特性,不是让你写5个X,当然你也可以完全写个新的特性然后加到某个文明、城邦甚至小野都可以。

    如需要添加需求的资源类型,则需要在里面机上StrategicResource="XXXXX"同上这里不是让你写5个X,而是某种资源的代码。。。不写则表示不需要战略资源

    接着添加单位升级信息,搜索<UnitUpgrades>,这里是升级成弩手。。。需要升级成别的兵种可以DIY

    <UnitUpgrades>
    <Row Unit="UNIT_WIZARD" UpgradeUnit="UNIT_CROSSBOWMAN"/>
    <!--Recon-->
    <Row Unit="UNIT_SCOUT" UpgradeUnit="UNIT_RANGER"/>
    <!--Melee-->
    <Row Unit="UNIT_WARRIOR" UpgradeUnit="UNIT_SWORDSMAN"/>
    <Row Unit="UNIT_SWORDSMAN" UpgradeUnit="UNIT_MUSKETMAN"/>
    <Row Unit="UNIT_MUSKETMAN" UpgradeUnit="UNIT_INFANTRY"/>
    <Row Unit="UNIT_SPEARMAN" UpgradeUnit="UNIT_PIKEMAN"/>
    <Row Unit="UNIT_PIKEMAN" UpgradeUnit="UNIT_AT_CREW"/>

    如果需要添加建筑信息,比如需要寺庙才能建造,搜索<Unit_BuildingPrereqs>

    <Unit_BuildingPrereqs>
    <Row Unit="UNIT_WIZARD" PrereqBuilding="BUILDING_TEMPLE"/>
    <Row Unit="UNIT_MISSIONARY" PrereqBuilding="BUILDING_SHRINE"/>
    <Row Unit="UNIT_APOSTLE" PrereqBuilding="BUILDING_TEMPLE"/>
    <Row Unit="UNIT_APOSTLE" PrereqBuilding="BUILDING_STAVE_CHURCH"/>
    <Row Unit="UNIT_INQUISITOR" PrereqBuilding="BUILDING_TEMPLE"/>
    <Row Unit="UNIT_INQUISITOR" PrereqBuilding="BUILDING_STAVE_CHURCH"/>
    <Row Unit="UNIT_MILITARY_ENGINEER" PrereqBuilding="BUILDING_ARMORY"/>
    <Row Unit="UNIT_ARCHAEOLOGIST" PrereqBuilding="BUILDING_MUSEUM_ARTIFACT" NumSupported="1"/>
    </Unit_BuildingPrereqs>

    到这里units.xml就修改完了,这个时候这个单位已经存在于你的游戏里了,只是还没有制定模型、图标、对应的汉化单位名称。所以我们继续

    下面是找到D:\Sid Meier's Civilization VI\Base\Assets\Text\Translations,如果你需要改简体中文的,打开Vanilla_zh_Hans_CN.xml,其他语言请打开对应文件

    <GameData>
    <LocalizedText>
    <Replace Tag="LOC_UNIT_WIZARD_NAME" Language="zh_Hans_CN">
    <Text>魔法师</Text>
    </Replace>
    <Replace Tag="LOC_UNIT_WIZARD_DESCRIPTION" Language="zh_Hans_CN">
    <Text>用魔法战斗的远程单位</Text>
    </Replace>
    <Replace Tag="LOC_BUILDING_TLACHTLI_NAME" Language="zh_Hans_CN">
    <Text>蹴球场</Text>
    </Replace>
    <Replace Tag="LOC_BUILDING_HueY_TEOCALLI_NAME" Language="zh_Hans_CN">
    <Text>休伊神庙</Text>
    </Replace>

    想改成什么名字可以自行替换。

    接下来的重点就是单位模型,毕竟模型对了才叫魔法兵种嘛

    代开Sid Meier's Civilization VI\Base\ArtDefs下的UNIT.ARTDEF

    搜索UNIT_APOSTLE,这是使徒的模型代码

    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::ArtDefReFerenceValue">
    <m_ElementName text="Scattered"/>
    <m_RootCollectionName text="UnitFormationTypes"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>false</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Formation"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="UnitCombat"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>false</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="UnitCombat"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="UnitFormationTypes"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="EscortFormation"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text="UNIT_ANCIENTEMBARK"/>
    <m_RootCollectionName text="Units"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text="Units"/>
    <m_ParamName text="EmbarkedUnit"/>
    </Element>
    <Element class="AssetObjects::BoolValue">
    <m_bValue>false</m_bValue>
    <m_ParamName text="DoNotDisplayCharges"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="UnitCulture"/>
    <m_ArtDefPath text="Cultures.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Culture"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="Era"/>
    <m_ArtDefPath text="Eras.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Era"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="Units"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="roxyUnit"/>
    </Element>
    <Element class="AssetObjects::BoolValue">
    <m_bValue>false</m_bValue>
    <m_ParamName text="layDeathOnDestroy"/>
    </Element>
    <Element class="AssetObjects::IntValue">
    <m_nValue>-500</m_nValue>
    <m_ParamName text="DisplayLevel"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections>
    <Element>
    <m_CollectionName text="Members"/>
    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::FloatValue">
    <m_fValue>1.000000</m_fValue>
    <m_ParamName text="Scale"/>
    </Element>
    <Element class="AssetObjects::IntValue">
    <m_nValue>4</m_nValue>
    <m_ParamName text="Count"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text="Apostle"/>
    <m_RootCollectionName text="UnitMemberTypes"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text="Units"/>
    <m_ParamName text="Type"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections/>
    <m_Name text="Members1"/>
    </Element>
    </Element>
    <Element>
    <m_CollectionName text="Audio"/>
    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::StringValue">
    <m_Value text=""/>
    <m_ParamName text="XrefName"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections/>
    <m_Name text="Entry"/>
    </Element>
    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::StringValue">
    <m_Value text="Apostle"/>
    <m_ParamName text="XrefName"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections/>
    <m_Name text="MISSIONARY"/>
    </Element>
    </Element>
    </m_ChildCollections>
    <m_Name text="UNIT_APOSTLE"/>
    </Element>

    直接把上面一大段代码全部复制下来,在下面粘贴

    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text="Scattered"/>
    <m_RootCollectionName text="UnitFormationTypes"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>false</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Formation"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="UnitCombat"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>false</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="UnitCombat"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="UnitFormationTypes"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="EscortFormation"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text="UNIT_ANCIENTEMBARK"/>
    <m_RootCollectionName text="Units"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text="Units"/>
    <m_ParamName text="EmbarkedUnit"/>
    </Element>
    <Element class="AssetObjects::BoolValue">
    <m_bValue>false</m_bValue>
    <m_ParamName text="DoNotDisplayCharges"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="UnitCulture"/>
    <m_ArtDefPath text="Cultures.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Culture"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="Era"/>
    <m_ArtDefPath text="Eras.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="Era"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text=""/>
    <m_RootCollectionName text="Units"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text=""/>
    <m_ParamName text="roxyUnit"/>
    </Element>
    <Element class="AssetObjects::BoolValue">
    <m_bValue>false</m_bValue>
    <m_ParamName text="layDeathOnDestroy"/>
    </Element>
    <Element class="AssetObjects::IntValue">
    <m_nValue>-500</m_nValue>
    <m_ParamName text="DisplayLevel"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections>
    <Element>
    <m_CollectionName text="Members"/>
    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::FloatValue">
    <m_fValue>1.000000</m_fValue>
    <m_ParamName text="Scale"/>
    </Element>
    <Element class="AssetObjects::IntValue">
    <m_nValue>4</m_nValue>
    <m_ParamName text="Count"/>
    </Element>
    <Element class="AssetObjects::ArtDefReferenceValue">
    <m_ElementName text="Apostle"/>
    <m_RootCollectionName text="UnitMemberTypes"/>
    <m_ArtDefPath text="Units.artdef"/>
    <m_CollectionIsLocked>true</m_CollectionIsLocked>
    <m_TemplateName text="Units"/>
    <m_ParamName text="Type"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections/>
    <m_Name text="Members1"/>
    </Element>
    </Element>
    <Element>
    <m_CollectionName text="Audio"/>
    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::StringValue">
    <m_Value text=""/>
    <m_ParamName text="XrefName"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections/>
    <m_Name text="Entry"/>
    </Element>
    <Element>
    <m_Fields>
    <m_Values>
    <Element class="AssetObjects::StringValue">
    <m_Value text="Apostle"/>
    <m_ParamName text="XrefName"/>
    </Element>
    </m_Values>
    </m_Fields>
    <m_ChildCollections/>
    <m_Name text="MISSIONARY"/>
    </Element>
    </Element>
    </m_ChildCollections>
    <m_Name text="UNIT_WIZARD"/>
    </Element>

    重点是紫色部分的单位代码要改成我们创建的自定义单位的代码也就是UNIT_WIZARD,其他部分原封不动即可。

    最后需要制定单位的图标,单位的图标修改是在Sid Meier's Civilization VI\Base\Assets\UI\Icons下的Icons_UnitFlags.xml、Icons_UnitPortraits.xml、Icons_Units.xml,似乎版子里已经有大神讲过怎么修改了,这里就不赘述了。其实修改代码很简单,无非是直接模仿原来的格式复制下来再改个名字,有需要的话微调一下数值什么的。

    关键词:文明6 魔法兵种 Civilization6

    关于本站 | 网站帮助 | 广告合作 | 网站声明 | 网站地图

    Copyright 2013-2023 QQZYWANG.com 〖QQ资源网〗 版权所有 蜀ICP备14006635号-1 | 川公网安备 51013102000013号

    声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议请与本站联系 本站为非赢利性网站 不接受任何赞助和广告