Persönliche Werkzeuge

UnitData.xml

Aus Starcraft II Map-Editor Wiki

Wechseln zu: Navigation, Suche

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\).

Inhaltsverzeichnis

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