예제는 섬멸전 유닛 "사신"입니다.
유닛 데이터라서 카탈로그는 미리설정 "유닛"을 선택해주시면 됩니다.
<CUnit id="Reaper">
-> 입력 : "Reaper"
<DeathRevealRadius value="3"/>
-> 필드 경로 : "DeathRevealRadius", 소멸 보이기 반경
대부분 <필드이름 값="값">으로 된 XML은 필드이름을 그대로 쓰면 됩니다.
<Race value="Terr"/>
<Mob value="Multiplayer"/>
<LifeStart value="50"/>
-> 필드 경로 : "LifeStart", 생명력 시작값
<LifeMax value="50"/>
-> 필드 경로 : "LifeMax", 생명력 최대값
<LifeArmorName value="Unit/LifeArmorName/TerranInfantryArmor"/>
<Speed value="2.9531"/>
-> 필드 경로 : "LifeMax", 생명력 최대값
<Acceleration value="1000"/>
<LateralAcceleration value="46.0625"/>
<StationaryTurningRate value="999.8437"/>
<TurningRate value="999.8437"/>
<Height value="0.5"/>
<Food value="-1"/>
<CostCategory value="Army"/>
<CostResource index="Minerals" value="50"/>
-> 필드 경로 : "CostResource[Minerals]", 생산비용:미네랄
<필드이름 인덱스="인덱스" 값="값">은 배열로 생각하고 사용하시면 됩니다.
배열의 인덱스는 숫자 대신 인덱스 필드의 이름을 넣어주시면 됩니다.
<CostResource index="Vespene" value="50"/>
-> 필드 경로 : "CostResource[Vespene]", 생산비용:가스
<RepairTime value="20"/>
<AttackTargetPriority value="20"/>
<DamageDealtXP value="1"/>
<DamageTakenXP value="1"/>
<KillXP value="20"/>
<Radius value="0.375"/>
<SeparationRadius value="0.375"/>
<InnerRadius value="0.375"/>
<CargoSize value="1"/>
<ScoreMake value="100"/>
<ScoreKill value="200"/>
<ScoreResult value="BuildOrder"/>
<SubgroupPriority value="14"/>
<MinimapRadius value="0.375"/>
<FlagArray index="PreventDestroy" value="1"/>
<FlagArray index="UseLineOfSight" value="1"/>
<FlagArray index="AIPressForwardDisabled" value="1"/>
<PlaneArray index="Ground" value="1"/>
<Collide index="Ground" value="1"/>
<Collide index="ForceField" value="1"/>
<Sight value="9"/>
<AbilArray Link="stop"/>
-> 필드 경로 : "AbilArray[0].Link", 능력 배열 0번
<필드이름Array Link="값">은 배열로 생각하고 사용하시면 됩니다.
배열의 인덱스는 위에서 부터 순서대로 0,1,2,3....n입니다.
<AbilArray Link="attack"/>
-> 필드 경로 : "AbilArray[1].Link", 능력 배열 1번
<AbilArray Link="move"/>
-> 필드 경로 : "AbilArray[2].Link", 능력 배열 2번
<BehaviorArray Link="ReaperJump"/>
<CardLayouts>
<LayoutButtons Face="Move" Type="AbilCmd" AbilCmd="move,Move" Row="0" Column="0"/>
-> 필드 경로 : "CardLayouts[0].LayoutButtons[0].Face", 명령창 아이콘
-> 필드 경로 : "CardLayouts[0].LayoutButtons[0].Type", 명령창 종류
-> 필드 경로 : "CardLayouts[0].LayoutButtons[0].AbilCmd", 명령창 연결 능력
-> 필드 경로 : "CardLayouts[0].LayoutButtons[0].Row", 명령창 좌표 행
-> 필드 경로 : "CardLayouts[0].LayoutButtons[0].Column", 명령창 좌표 열
이런 형식이 가장 복잡합니다. <CardLayouts>필드 자체도 배열이며
그속의 <LayoutButtons ...>또한 배열입니다.
그리고 그속의 각각 필드="값"으로 된 데이터로 값을 가져오거나 쓸 수있습니다.
<LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
-> 필드 경로 : "CardLayouts[0].LayoutButtons[1].Face", 명령창 아이콘
-> 필드 경로 : "CardLayouts[0].LayoutButtons[1].Type", 명령창 종류
-> 필드 경로 : "CardLayouts[0].LayoutButtons[1].AbilCmd", 명령창 연결 능력
-> 필드 경로 : "CardLayouts[0].LayoutButtons[1].Row", 명령창 좌표 행
-> 필드 경로 : "CardLayouts[0].LayoutButtons[1].Column", 명령창 좌표 열
<LayoutButtons Face="MoveHoldPosition" Type="AbilCmd" AbilCmd="move,HoldPos" Row="0" Column="2"/>
<LayoutButtons Face="Attack" Type="AbilCmd" AbilCmd="attack,Execute" Row="0" Column="4"/>
<LayoutButtons Face="MovePatrol" Type="AbilCmd" AbilCmd="move,Patrol" Row="0" Column="3"/>
<LayoutButtons Face="JetPack" Type="Passive" AbilCmd="255" Row="1" Column="0"/>
</CardLayouts>
<Attributes index="Light" value="1"/>
<Attributes index="Biological" value="1"/>
<EditorCategories value="ObjectType:Unit,ObjectFamily:Melee"/>
<GlossaryCategory value="Unit/Category/TerranUnits"/>
<GlossaryPriority value="70"/>
<GlossaryStrongArray value="Hydralisk"/>
-> 필드 경로 : "GlossaryStrongArray[0]", 정보창 강한순서
<필드이름Array value="값">은 배열로 생각하고 사용하시면 됩니다.
배열의 인덱스는 위에서 부터 순서대로 0,1,2,3....n입니다.
<GlossaryStrongArray value="Ghost"/>
-> 필드 경로 : "GlossaryStrongArray[1]", 정보창 강한순서
<GlossaryWeakArray value="SiegeTank"/>
<GlossaryWeakArray value="Stalker"/>
<GlossaryWeakArray value="Roach"/>
<WeaponArray Link="P38ScytheGuassPistol"/>
<WeaponArray Link="D8Charge"/>
<Fidget>
<ChanceArray index="Anim" value="33"/>
<ChanceArray index="Idle" value="33"/>
<ChanceArray index="Turn" value="33"/>
</Fidget>
<Mover value="CliffJumper"/>
<!--
<TauntDuration index="Cheer" value="2"/>
<TauntDuration index="Dance" value="2"/>
-->
</CUnit>
오늘 알아본 XML형식은
<필드이름 Value="값"> -> 필드경로 : 필드이름
<필드이름 Index="인덱스" value="값"> -> 필드경로 : 필드이름[인덱스]
<필드이름Array Link="값"> -> 필드경로 : 필드이름Array[n].Link
<필드이름Array Value="값"> -> 필드경로 : 필드이름Array[n]
<필드이름1's>
<필드이름2's Name="값" Type="값">
<필드이름1's>
-> 필드경로 : 필드이름1's[n].필드이름2's[n].Name
-> 필드경로 : 필드이름1's[n].필드이름2's[n].Type
이렇게 5가지가 되겠습니다.
XML을 조금 공부하시면 쉽게 필드경로를 유추하실 수 있습니다.