Aus Starcraft II Map-Editor Wiki
In der UnitData.xml Datei werden Daten zu den Einheiten gespeichert. Zu finden ist diese Datei im Unterverzeichnis GameData\ des MPQ-Archives Base.SC2Data (Mods\Liberty.SC2Mod\).
Struktur
<?xml version="1.0" encoding="us-ascii"?>
<Catalog>
<CUnit>
...
</CUnit>
...
</Catalog>
CUnit
CUnit hat 3 bisher bekannte Attribute:
- id - gibt die UnitId zur späteren Identifizierung der Einheit an.
- parent - ?
- default - ?
Mögliche Einstellungen
CUnit hat viele Einstellungsmöglichkeiten in Form von Child-Nodes.
<CUnit id="Zergling">
<LifeMax value="36"/>
</CUnit>
würde zum Beispiel die Maximalen HP des Zerglings auf 36 einstellen. Als Attribut wird, falls nicht anders angegeben, immer value benutzt.
Hier eine Liste der bekannten Child-Nodes:
| Attribut | Funktion | Werte | Besonderheiten
|
| Name | Gibt den Ingamename der Einheit an | String | -
|
| Description | ? | String | -
|
| DeathRevalRadius | ? | Integer evt. auch Real | -
|
| Race | Gibt die Rasse der Einheit an | "Zerg", "Terr", "Prot" | -
|
| FlagArray | Setzt verschiedene Unit-Flags | "1", "0" (true & false) | Der zu setzende Flag wird mit dem index Attribut bestimmt.
|
| AIEvalFactor | ? | Real | -
|
| Attributes | Setzt verschiedene Einheiten Attribute | "1","0" (true & false) | Das Attribut wird im index Attribut angegeben.
|
| LifeStart | Gibt die HP der Einheit nach dem Erstellen an | Integer, evt. auch Real | -
|
| LifeMax | Gibt die maximale HP der Einheit an | Integer, evt. auch Real | -
|
| LifeRegenRate | Gibt die HP Regenerationsrate an (HP/s) | Real | -
|
| LifeArmorName | Gibt den Namen der Rüstungsart an. | String | -
|
| Sight | Gibt die Sichtweite der Einheit an (?) | Integer, evt. auch Real | -
|
| AttackTargetPriority | ? | Integer, evt. auch Real | -
|
| DamageDealtXP | ? | Integer, evt. auch Real (bisher immer 1) | Da es noch keine Helden gibt, nutzlos
|
| DamageTakenXP | ? | Integer, evt. auch Real (bisher immer 1) | Da es noch keine Helden gibt, nutzlos
|
| KillXP | ? | Integer, evt. auch Real | Da es noch keine Helden gibt, nutzlos
|
| Radius | Gibt die Größe der Einheit an. | Real | -
|
| SeparationRadius | ? | Real | -
|
| SubgroupPriority | ? | Integer | -
|
| MinimapRadius | Gibt die Größe der Einheit auf der Minimap an. (?) | Real | -
|
| EditorCategories | Wird vermutlich erst im Editor verwendet, um die Einheiten in Kategorien einteilen zu können. | String | -
|
| TacticalAI | ? | String | -
|
| LeaderAlias | ? | UnitId | UnitId ist eine bei <CUnit> angegebene Id
|
| SelectAlias | ? | UnitId | UnitId ist eine bei <CUnit> angegebene Id
|
| AIEvaluateAlias | ? | UnitId | UnitId ist eine bei <CUnit> angegebene Id
|
| ReviveType | ? | ? | -
|
| Mover | Gibt den Bewegungstyp an. | MoveId | MoveId ist die in MoverData.xml angegebene Id.
|
| SubgroupAlias | ? | ? | -
|
| Mob | ? | ? | -
|
| EditorFlags | ? Wird vermutl. erst im Editor verwendet. | "1", "0" (true & false) | Der Flag wird im Attribut index angegeben.
|
| PlaneArray | ? | "1", "0" (true & false) | Im index Attribut wird entweder "Air" oder "Ground" eingestellt.
|
| Collide | Gibt die Kollisionsart an (?) | "1", "0" (true & false) | Im index Attribut wird die jewalige Kollisionsart eingestell.
|
| Speed | Gibt die Geschwindigkeit der Einheit an | Real | -
|
| Acceleration | ? | Real | -
|
| LateralAcceleration | ? | Real | -
|
| StationaryTurningRate | ? | Real | -
|
| TurningRate | ? | Real | -
|
| AbilArray | Gibt die Fähigkeiten der Einheit an. | AbilId | Die AbilId wird im Attribut Link eingestellt. Die AbilId entspricht der Id einer Fähigkeit aus AbilData.xml
|
| CardLayouts | Stellt die Buttens für Fähigkeiten und Befehle ein. | Buttons werden über Child-Nodes hinzugefügt, CardId gibt dem Menü eine Id um es als Untermenü zu verwenden.
|
| BehaviorArray | Fügt einer Einheit Behaviors (Fähigkeiten) hinzu. | BehaviorId | Die BehaviorId wird im Attribut Link eingestellt. Die BehaivorId entspricht der Id aus BehaviorData.xml
|
| Fidget | ? | ? | -
|
| Height | Gibt die Flughöhe einer Einheit an | Real | -
|
| EnergyStart | Gibt die Anfangsenergie einer Einheit an. | Integer, evt. auch Real | -
|
| EnergyMax | Gibt die Maximalenergie einer Einheit fest. | Integer, evt. auch Real | -
|
| EnergyRegenRate | Gibt die Energieregenerationsrate an. | Real | -
|
| VisionHeight | ? Gibt vermutlich die Höhe an, aus der eine Einheit sieht, sodass sie über Klippen ect. sehen kann | Integer, evt. auch Real | -
|
| CostResource | Gibt die Ressourcenkosten einer Einheit an. | Integer | index ("Minerals" oder "Vespene") gibt an welche Ressource benötigt wird.
|
| RepairTime | Gibt an wie lange die Reperatur der Einheit dauert. (?) | Real | -
|
| ScoreMake | Gibt an, wie viel Punkte das Bauen der Einheit bringt. (?) | Integer | -
|
| ScoreKill | Gibt an, wie viel Punkte das Töten der Einheit bringt. (?) | Integer | -
|
| GlossaryPriority | ? | Integer | -
|
| GlossaryCategory | ? | "Unit/Category/ZergUnits", "Unit/Category/ProtossUnits", "Unit/Category/TerranerUnits" | -
|
| WeaponArray | Fügt Angriffsarten hinzu. | WeaponId | Die WeaponId wird im Attribut Link eingestellt. Die WeaponId entspricht einer Id aus WeaponData.xml
|
| KillDisplay | ? | "Never", "Always", "Default" | -
|
| LifeArmor | ? | Integer | -
|
| InnerRadius | ? | Real | -
|
| DefaultAcquireLevel | ? | "Defensive", "None" | -
|
| Response | ? | "Flee", "Nothing" | -
|
| AIOverideTargetPriority | ? | Integer | -
|
| Facing | Gibt evt. die Sichtrichtung nach dem Erstellen an. (?) | Real | -
|
| FogVisibility | Gibt an, ob die Einheit für Gegner noch sichtbar ist, auch wenn sie z.Z. nicht gesehen wird. | "Snapshot" | evt. gibt es noch einen anderen Wert, der die Einheit komplett sichtbar macht.
|
| Footprint | Gibt den Verlauf eines Gebäudes an, also wo das man an einem Gebäude vorbei laufen kann und wo es blockiert. | String | Referenz auf die FootprintData.xml
|
| PlacementFootprint | ? | ? | -
|
| ScoreResult | ? | "BuildOrder" | -
|
| TechTreeUnlockedUnitArray | Gibt an, welche Einheiten nach dem Bau freigeschaltet werden. | UnitId | -
|
| ResourceState | Wird von Mineralvorkommen/Vespenegeysieren benutzt. Harvestable = Abbaubar, Raw = Es muss zuerst ein Extraktor ect. gebaut werden. | "Raw", "Harvestable" | -
|
| ResourceType | Wird von Mineralvorkommen/Vespenegeysieren benutzt. | "Mineral", "Vespene" | -
|
| ShieldsStart | Anfangsschildenergie | Integer, evt. auch Real | -
|
| ShieldsMax | Maximale Schildenergie | Integer, evt. auch Real | -
|
| ShieldRegenRate | Schildregenerationsrate | Real | -
|
| ShieldArmorName | Name des Schildes | String | -
|
| Food | Gibt an, wie viel Nahrung die Einheit erzeugt. Ein negativer Wert gibt den Verbrauch an. | Real (+/-) | -
|
| CargoSize | Gibt an, wie viele Plätze die Einheit in einem Transporter verbraucht. | Integer | -
|
| ShieldRegenDelay | Gibt an, nach wie vielen Sekunden die Schildenergie anfängt, sich zu regenerieren (?) | Integer, evt. auch Real | -
|
| GlossaryStrongArray | Gibt an, gegen welche Einheiten eine Einheit effektiv ist. | String | index gibt an wie effektiv ("0","1","2"). removed gibt ? an.
|
| GlossaryWeakArray | Gibt an, gegen welche Einheiten eine Einheit ineffektiv ist. | String | index gibt an wie ineffektiv ("0","1","2"). removed gibt ? an.
|
| Deceleration | ? | Integer, evt. auch Real | -
|
| TacticalAIRange | ? | ? | -
|
| TacticalAIThink | ? | ? | -
|
| Mass | ? | Real | -
|
| EquipmentArray | ? | ? | Sonderattribut: Weapon
|
| StrafeRadius | ? | Integer, evt. auch Real | -
|
| BuiltOn | Gibt an, auf welchen Einheiten ein Gebäude gebaut werden muss. | UnitId | Beispiel: "VespeneGeysir"
|
| ResourceDropOff | Gibt an, welche Rohstoffe an dem Gebäude abgegeben werden können. | Integer | Das Attribut index gibt die Art der Rohstoffe an ("Minerals","Vespene","Terrazine","Custom")
|
| TechAliasArray | ? | ? | -
|
| TauntDuration | ? | Integer | Das Attribut index kann folgende Werte haben: "Cheer", "Dance"
|
| GlossaryAlias | ? | UnitId | Werte von Value: "Barracks","Factory","Starport","VikingFighter","CommandCenter","OrbitalCommand"
|
| AddOnOffsetX | ? | Real | -
|
| AddOnOffsetY | ? | Real | -
|
| AddedOnArray | Wird für die Reaktoren/Techlabs benutzt | UnitId/BehaviorId | In das Attribut UnitLink wird die UnitId eingetrage und in das Attribut BehaviorLink die BehaviorId (siehe BehaviorData.xml)
|
| SpeedMultiplierCreep | ? | Real | -
|
| DeadFootprint | ? | ? | -
|
| DeathTime | ? | Integer (-) ? | -
|
| DeathRevealDuration | ? | Integer ? | -
|
Besondere Attribute
FlagArray
<FlagArray index="NoScore" value="1"/>
Bisher bekannte Werte für Flag:
- NoScore
- AILifetime
- Untargetable
- Undetectable
- Unradarable
- Invulnerable
- Unclickable
- UseLineOfSight
- KillCredit
- NoPortraitTalk
- ArmorDisabledWhileConstructing
- Uncommandable
- Unselectable
- Uncursorable
- Worker
- Turnable
- PreventDefeat
- PreventDestroy
- DefeatReveal
- TownAlert
- CreateVisible
- Destructible
- AICaster
- Cloaked
- AISupport
- PreventReveal
- TownCamera
- PressForwardDisabled
- TurnBeforeMove
- AISiege
- AIDefense
- AIThreatGround
- AIThreatAir
- Buried
- AlwaysThreatens
- Uncloakable
FlagArray kann mehrmals bei einer Einheit verwendet werden.
Attributes
<Attributes index="Light" value="1"/>
Bisher bekannte Werte für index:
- Light
- Biological
- Mechanical
- Armored
- Structure
- Psionic
- Massive
- Robotic
Attributes kann mehrmals bei einer Einheit verwendet werden.
EditorFlags
<EditorFlags index="Flag" value="1"/>
Bisher bekannte Werte für Flag:
- NeutralDefault
- NoPlacement - Wird vermutlich bewirken, dass man die Einheit nicht im Editor plazieren kann.
Collide
<Collide index="Burrow" value="1"/>
<Collide index="Ground" value="1"/>
Bekannte Werte für index:
- Ground
- Flying
- Structure
- Burrow
- Colossus
- Larva
- Burrow3
- FlyingEscorts
AbilArray
<AbilArray Link="BuildInProgress"/>
<AbilArray Link="que5"/>
<AbilArray Link="UpgradeToLair"/>
Link gibt die AbilId aus der AbilData.xml an.
AbilArray verfügt außerdem noch über die Attribute index und removed, die Bedeutung ist jedoch unklar:
<AbilArray index="1" Link="move"/>
<AbilArray index="2" removed="1"/>
<AbilArray index="3" removed="1"/>
<AbilArray index="4" removed="1"/>
<AbilArray index="5" removed="1"/>
(Von der Einheit ChangelingZealot)
CardLayouts
<CardLayouts>
<LayoutButtons Face="Cancel" Type="AbilCmd" AbilCmd="BuildInProgress,Cancel" Row="2" Column="4"/>
<LayoutButtons Face="SwarmSeeds" Type="Passive" Row="2" Column="0"/>
<LayoutButtons Face="Detector" Type="Passive" Requirements="NotUnderConstruction" Row="1" Column="0"/>
...
</CardLayouts>
Face gibt den Button an der verwendet wird.
Row und Column geben die Position des Buttons an (0,0 ist oben links)
Für Type gibt es 6 mögliche Werte:
- AbilCmd
- Passive
- CancelSubmenu
- Submenu
- SelectBuilder
- SelectLarva
AbilCmd
<LayoutButtons Face="zergmissileweapons3" Type="AbilCmd" AbilCmd="evolutionchamberresearch,Research9" Row="0" Column="1"/>
In AbilCmd werden die Fähigkeit und ein Parameter angegebem (Fähigkeit,Parameter) hierzu siehe AbilData.xml
Passive
<LayoutButtons Face="SwarmSeeds" Type="Passive" Row="2" Column="0"/>
<LayoutButtons Face="PointDefense" Type="Passive" AbilCmd="255,255" Row="1" Column="0"/>
Fügt einen Button für eine passive Fähigkeit hinzu.
CancelSubmenu
<LayoutButtons Face="Cancel" Type="CancelSubmenu" AbilCmd="255,255" Row="2" Column="4"/>
Fügt einen Button zu einem Submenu hinzu, der dieses schließen kann. siehe Submenu
Submenu
<LayoutButtons>
<Face value="ProtossBuild"/>
<Type value="Submenu"/>
<AbilCmd value="255,255"/>
<SubmenuCardId value="PBl1"/>
<Row value="2"/>
<Column value="0"/>
</LayoutButtons>
<CardLayouts CardId="PBl1">
<LayoutButtons Face="Nexus" Type="AbilCmd" AbilCmd="ProtossBuild,Build1" Row="0" Column="0"/>
<LayoutButtons Face="Pylon" Type="AbilCmd" AbilCmd="ProtossBuild,Build2" Row="0" Column="1"/>
<LayoutButtons Face="Cancel" Type="CancelSubmenu" AbilCmd="255,255" Row="2" Column="4"/>
...
</CardLayouts>
Erstellt einen Button für ein Submenu, in dem dann Buttons für weitere Fähigkeiten eingefügt werden können. Das Submenu sollte über einen CancelSubmenu Butten verfügen.
Das Beispiel lässt außerdem vermuten, dass
<LayoutButtons>
<Face value="ProtossBuild"/>
<Type value="Submenu"/>
<AbilCmd value="255,255"/>
<SubmenuCardId value="PBl1"/>
<Row value="2"/>
<Column value="0"/>
</LayoutButtons>
das gleiche ist wie
<LayoutButtons Face="ProtossBuild" Type="Submenu" AbilCmd="255,255" SubmenuCardId="PBl1" Row="2" Column="0"/>
was sich auch auf andere Nodes übertragen ließe (eigentlich alle mit value als einziges Attribut).
SelectBuilder
<LayoutButtons Face="SelectBuilder" Type="SelectBuilder" Row="0" Column="0"/>
Selektiert den Builder der dieses Gebäude zur Zeit baut.
SelectLarva
<LayoutButtons Face="Larva" Type="SelectLarva" AbilCmd="255,255" Row="0" Column="0"/>
Selektiert die Larven die dieses Gebäude gespawnt hat. Vermutlich besteht ein Zusammenhang zum SpawnLarva Behavior, bzw. zu den dazugehörigen Effekten.
Autoren: Lordvaldis , Peq