Seit Patch 1.4.0 können Modder Akteur-Cheats verwenden, um Akteure live zu erstellen und zu manipulieren, während sie eine Testkarte über den Editor ausführen. Diese Funktion ist nützlich, wenn man Ideen schnell testen möchte, ohne Daten oder ausführende Auslöser einzurichten.
Die Cheats können auch dazu verwendet werden, um nahezu jeden Akteur auf einer laufenden Testkarte zu modifizieren oder zu inspizieren, was nützlich sein kann, um Laufzeitfehler von Akteuren zu beheben.
Die Cheats sind außerdem in der Lage, einige neu-implementierte Dump-Nachrichten zu senden, z. B.: Animationsdatenbank-Dump, Anfügungs-Dump, Dump für gehostete Eigenschaften, Referenz-Dump und Textur-Dump. Diese Nachrichten erlauben Moddern, während das Spiel läuft, einige interne Aspekte bestimmter Akteure zu inspizieren, was ebenfalls bei der Fehlerbehebung hilfreich sein kann.
Referenznamen (engl. RefNames)
Der Ausdruck „Referenzname” ist kurz für „Akteurreferenzname” und identifiziert eindeutig eine Art Systemvariable, die als Akteurreferenz bekannt ist (Englische Kürzel: „actor ref" oder nur „ref“). Eine Akteurreferenz kann auf einen vorhandenen Akteur aufgelöst werden, abhängig von 1) der Bedeutung des Referenznamens und 2) dem Kontext, in dem er verwendet wird. Referenznamen können in vielen der Cheats verwendet werden, wie angegeben. Die Verfügbarkeit kann abhängig vom Verwendungskontext variieren:
Derzeit stehen folgende Referenznamen zur Verfügung:
C | Der Akteur unter dem Mauszeiger. | |
| DTC | Von Auslösern wird hier auf den letzten direkt über eine Auslöserfunktion erfolgreich erstellten (aber nicht über andere Wege wie Nachrichten in Daten als Ergebnis eines Auslöseraufrufs) Akteur Bezug genommen. Von überall sonst schließt es auch Akteure ein, die explizit über die „Erstellen”-Nachricht (z. B. Erstellen Beispielakteur) erstellt wurden. Dies soll die Konsistenz zwischen den verschiedenen Variationen des Mechanismus LastCreated() (Zuletzt erstellt) in den Auslösern erhalten, während immer noch versucht wird, sonst überall am Prinzip der geringsten Überraschung festzuhalten. |
| DTC | Der letzte Akteur, der vom Benutzer erfolgreich auf egal welche Weise erstellt wurde. Die schließt auch Akteure ein, die von der „Erstellen“-Nachricht, von Akteuranfragen oder intern vom System erstellt wurden (z. B. wenn CActorAction Squibs erstellt). |
| DTC | Der „Hauptakteur” des Benutzerrahmens |
| CActorDoodad | |
| CActorUnit | |
| Der erste Akteur, der im Rahmen erstellt wurde. | |
| DTC | Der Hauptakteur des Spielporträtfensters im Moment, unabhängig davon, was ausgewählt ist. |
| DTC | Das Porträt des Hauptakteurs in Rahmen dieses Akteurs. Dient dazu, um Nachrichten von jedem Akteur im Rahmen einer Einheit zum Porträt-Akteur zu schicken. Es wird nichts ausgegeben, wenn das Porträt zu einer anderen Einheit als der derzeit ausgewählten gehört. |
| D | Der Akteur, der ein Ereignis empfängt. |
| TC | Enthält das Ergebnis des jüngsten „ActorFrom”-Cheats. |
| DTC | Eine Akteurreferenz aus der globalen Referenztabelle. |
| DTC | Eine Akteurreferenz aus der übergeordneten Rahmenreferenztabelle. |
| DTC | Eine Akteurreferenz aus der übergeordneten Akteurreferenztabelle. |
| TC | Der Akteur, der vom Benutzerrahmen repräsentiert wird. Gibt nur den ersten Wert aus, wenn mehrere Ergebnisse auftreten. |
Einige Cheats (z. B. ActorSendTo) unterstützen „gerichtete Referenznamen”, die den Benutzer Nachrichten an Referenznamen senden lassen, die zu einem gewissen Akteur „gehören” (z. B. wenn der Cheat einen Akteur benötigt, um einen Referenznamen zu bewerten).
| DTC | Der Ersteller des Benutzerakteurs |
| Von einem Host-Akteur übernehmen Akteure Daten, wie z. B. Peilung, gehostete Eigenschaften usw. | |
| DTC | Der Haupt-Host, wird verwendet für Peilung und gehostete Eigenschaften. |
| DTC | Wird verwendet, um den Zielort eines Strahls zu positionieren. |
| DTC | Wird verwendet, um den Startort eines Strahls zu positionieren. |
| DTC | Der Host, der von einem Tentakel als Ziel für den Rückweg verwendet wird. |
| DTC | Wird verwendet, um die Lebensdauer eines Akteurs an einen „unterstützenden” Akteur zu binden (typischerweise, um Ereignisse zu erstellen, die dem Akteur mitteilen, zu sterben, wenn der zugehörige unterstützende Akteur stirbt). |
Einige Cheats arbeiten mit Akteurrahmen. Es gibt Rahmenreferenznamenvariablen, die ihren Akteurgegenstücken ähneln, mit dem Unterschied, dass sich die Evaluierung auf Akteurrahmen bezieht anstatt auf Akteure.
| TC | Der Rahmen des Benutzerakteurs. |
| TC | Der letzte Rahmen, der erfolgreich vom Benutzer über einen Cheat oder Client-Code erstellt wurde. Innerhalb von Daten irrelevant, da Daten keine Rahmen erstellen. |
| TC | Der Rahmen des Spielporträtfensters. |
| C | Der Rahmen der ausgewählten Einheit. Gibt nur einen Rahmen aus, selbst wenn mehrere Einheiten ausgewählt sind. |
| TC | Enthält das Ergebnis des jüngsten „ActorScopeFrom”-Cheats. Wird automatisch auf den Wert von „LastCreated” gesetzt, wenn die Referenz mit einem neuen gültigen Akteurrahmen erfüllt wird. |
„Erstellen”-Nachrichten benötigen 1 bis 3 Inhaltsschlüssel. Diese ermöglichen Auslösern und Cheats, leichter eine Reihe an Akteurinstanzen zu stellen, die denselben Dateneintrag verwenden, jedoch unterschiedliche Inhaltsparameter. Beispiel:
ActorCreateAt Model HydraliskBeide Cheats erstellen ein CActorModel namens „Modell“ (engl. Model). Der erste erstellt es mit dem Asset „Hydralisk” und der zweite mit dem Asset „Space-Marine“ (engl. Marine). Die verschiedenen Akteurarten unterstützen verschiedene Erstellungsparameter-Stile und entscheiden von Fall zu Fall. Danach folgt eine Liste von Akteuren, die Inhaltsparameter unterstützen, und die Reihenfolge, in der sie angegeben werden.
Benutzer können Akteur-Cheats beim Ausführen der Karte über den Editor in die Chat-Zeile eintippen.
Ergebnisse werden in der Logdatei Alert.txt gespeichert, welche sich im Benutzerverzeichnis unter „StarCraft II\GameLogs“ befindet. Die Datei Alert.txt hat ein vorangestelltes Datum und einen Zeitstempel, z. B.: „2011-08-08 10.30.05 Alerts.txt”.
Verknüpfungen werden derzeit noch nicht unterstützt, könnten aber zu einem späteren Zeitpunkt hinzugefügt werden.
In der untenstehenden Syntax sind Parameter in geschwungenen Klammern {} optionale Parameter. Beim erfolgreichen Ausführen einiger dieser Cheats werden Werte für zwei globale Variablen - Benutzerakteur und Benutzerrahmen - gesetzt, mit denen andere Cheats interagieren können. Cheats, die Akteure eliminieren, sowie Rahmen schließen Akteure und Rahmen aus, die derzeit aktive Einheiten und Effekte stören.
ActorCreateAtErstellt einen Akteur an einer bestimmten Position. Stellt den Benutzerakteur auf diesen Akteur ein und den Benutzerrahmen auf den zugehörigen Rahmen.
Dieser Cheat dient dazu, direkt einen Akteur auf einer Testkarte zu erstellen, um seine Eigenschaften zu beobachten und mit ihm zu interagieren, ohne darauf warten zu müssen, dass auf der Karte eine Situation auftritt, in der der Akteur normal erstellt wird. Die Koordinaten helfen dem Benutzer, den Akteur für Kämpfe und Ähnliches präzise zu positionieren.
Syntax:
ActorCreateAt x,y Akteurname {Inhaltsname} {Inhaltsname2} {Inhaltsname3}
Beispiele (engl.):
Erstellt einen Akteur (und einen übergeordneten Akteurrahmen) an der Position des Mauszeigers. Stellt den Benutzerakteur auf diesen Akteur ein und den Benutzerrahmen auf den zugehörigen Rahmen.
Dieser Cheat dient dazu, direkt einen Akteur auf einer Testkarte zu erstellen, um seine Eigenschaften zu beobachten und mit ihm zu interagieren, ohne darauf warten zu müssen, dass auf der Karte eine Situation auftritt, in der der Akteur normal erstellt wird. Der Akteur wird an der Mauszeigerposition erstellt, damit der Benutzer sich nicht um die spezifischen Koordinaten sorgen muss und den Akteur an einer gut sichtbaren Position einfügen kann.
Syntax:
ActorCreateAtCursor Akteurname {Inhaltsname} {Inhaltsname2} {Inhaltsname3}
Beispiele (engl.):
Erstellt eine Liste aller Akteure, die als Ergebnis von Daten wie diesen entstehen:
<On Terms="UnitBirth.Marine" Send="Create"/>Diese Art der Akteurerstellung nennt man “Autocreation” (Selbsterstellung), da der Akteur sich automatisch selbst als Antwort auf eine Nachricht erstellt. Dies unterscheidet sich von der nachstehenden Erstellungsart:
<On Terms="ActorCreation" Send="Create BeliebigerAkteur"/>Hier gibt die „Create”-Nachricht (Erstellen) explizit einen zu erstellenden Akteur an.
ActorDumpAutoCreates können dazu verwendet werden, um nachzuvollziehen, ob Akteure unbeabsichtigt von gewissen Ereignissen erstellt werden.
Syntax:
ActorDumpAutoCreates
Erstellt eine Liste aller Akteurereignisse, die vom Benutzerakteur erfasst werden, „Autocreation”-Ereignisse ausgenommen.
Dieser Cheat kann für verschiedene Textsuchen in allen Akteurereignissen einer Karte verwendet werden, z. B. wenn man alle Akteure einsehen möchte, die auf ein Signalereignis antworten – unabhängig von ihren Abhängigkeiten.
Syntax:
ActorDumpEvents
Erstellt eine Liste von Akteuren eines bestimmten Alters, die ein Speicherleck verursachen könnten. Der Benutzer kann beispielsweise prüfen, ob das Modell eines Mündungsfeuers älter als eine Minute ist, da Mündungsfeuer im Allgemeinen nicht so lange anhalten. Einige Akteurarten werden in der Liste der Speicherleckrisiken nie angezeigt, da sie automatisch durch das System entfernt werden und somit nicht durch Datenfehler ein Speicherleck verursachen können.
Wenn eine Karte mit der Zeit immer langsamer wird, kann dieser Cheat bestimmen, ob Speicherlecks durch Akteure die Ursache dafür sind.
Syntax:
ActorDumpLeakRisks Alter
Erstellt eine Liste von aktiven Akteuren der gesamten Karte, die nach übergeordneten Rahmen sortiert wird.
Dieser Cheat hilft dabei, festzustellen, ob Akteure existieren, obwohl sie sich nicht an der Stelle in der Spielwelt befinden, wo man sie erwartet. Ein Akteur, der sich fälschlicherweise bei 0,0 befindet, wird immer noch in der Liste der aktiven Akteure angezeigt.
Syntax:
ActorDumpLive
Legt einen neuen Benutzerakteur über einen aktiven Akteur mit gegebenen Referenznamen fest.
Dieser Cheat ist unerlässlich, um verschiedene Akteure in der Spielwelt für die Benutzerreferenz festzulegen, damit der Benutzer ihnen Cheat-Befehle erteilen kann.
Syntax:
ActorFrom Referenzname
Beispiele:
Legt den Benutzerakteur auf einen Akteur fest, der über einen anderen Akteur oder und gerichteten Referenznamen referenziert wird.
Dieser Cheat dient dazu, verschiedene Ursprungs- und Ablegerakteure in der Spielwelt für die Benutzerreferenz festzulegen, damit der Benutzer ihnen Cheat-Befehle erteilen kann. Dies wird im Allgemeinen dazu verwendet, um Vorgänge an der Host-Referenz eines Akteurs durchzuführen.
Syntax:
ActorFromActor Referenzname
Beispiele:
Legt den Benutzerakteur auf den Akteur fest, von dem aus er als Host fungierte.
ActorFromActor ::CreatorLegt den Benutzerakteur auf den Akteur fest, der ihn erstellt hat.
Eliminiert alle Akteure außer denen, die zu aktiven Einheiten oder Effektbäumen gehören.
Dient dazu, eine Testkarte von Akteuren zu bereinigen, sodass anschließend einzelne Akteure isoliert getestet werden können.
Syntax:
ActorKillAll
Eliminiert alle Akteure einer angegebenen Klasse in einem bestimmten Radius um den Mauszeiger. Falls kein Radius angegeben wird, wird dieser als unendlich betrachtet.
Kann dazu verwendet werden, einen Bereich (oder die gesamte Karte) von einem bestimmten Akteurtyp zu befreien, falls dieser es erschwert, sich auf ein vom Benutzer untersuchtes Problem zu konzentrieren. Beispielweise kann es sinnvoll sein, alle Doodad-Akteure zu eliminieren, um herauszufinden, ob sie ein Leistungsproblem verursachen.
Syntax:
ActorKillClass Klasse {Bereich}
Beispiele (engl.):
Eliminiert alle Akteure mit einer angegebenen Akteurverknüpfung in einem bestimmten Radius um den Mauszeiger. Falls kein Radius angegeben wird, wird dieser als unendlich betrachtet.
Kann dazu verwendet werden, einen Bereich (oder die gesamte Karte) von einem bestimmten Akteureintrag zu befreien, falls dieser es erschwert, sich auf ein vom Benutzer untersuchtes Problem zu konzentrieren. Beispielsweise kann es sinnvoll sein, alle Modelle eines bestimmten Namens in einem Flächenschadenangriff zu eliminieren, wenn zu viele davon erstellt werden und einen anderen Teil der grafischen Effekte in einem Angriff, bei dem der Benutzer Fehler behebt, verdecken. Oder der Benutzer könnte alle Sounds eines bestimmten Namens eliminieren wollen, um zu hören, ob andere Sounds auch mit einem Effekt verbunden sind.
Syntax:
ActorKillLink Verknüpfung {Bereich}
Sendet eine gültige Benutzernachricht an den derzeit aktiven Benutzerakteur.
Der wohl am meisten verwendete Akteur-Cheat und die Hauptmethode, mit der Entwickler (intern und extern) mit Akteuren über Cheats interagieren.
Syntax:
ActorSend Nachricht
Beispiele (engl.):
Sendet eine Nachricht an eine Systemakteurreferenz unter Verwendung des Benutzerakteurs, um bei der Auflösung der Systemakteurreferenz zu helfen. Mit anderen Worten: Diese Routine sendet Nachrichten an gerichtete Referenznamen (obwohl sie auch mit dem Hauptreferenznamen ::Main funktioniert).
Dieser Cheat kann eine schnelle Möglichkeit sein, gerichteten Akteuren Nachrichten zu senden. Der Benutzer muss nicht zuerst den Cheat ActorFromActor benutzen, um sie in der Benutzerreferenz einzutragen.
Syntax:
ActorSendTo Referenzname Nachricht
Beispiele:
Erstellt eine Liste aktiver Rahmen auf der gesamten Karte.
Dieser Cheat kann verwendet werden, um nach Akteurrahmen zu suchen, die unnötigerweise Ressourcen verbrauchen, aber keine (nützlichen) Akteure mehr beinhalten.
Syntax:
ActorScopeDumpLive
Legt einen neuen Benutzerrahmen über den angegebenen Rahmenreferenznamen fest.
Dieser Cheat ist essenziell, um verschiedene Rahmen in der Spielwelt in die Benutzerrahmenreferenz zu übertragen, damit der Benutzer Akteure in diesem Rahmen leicht finden und ihnen Nachrichten senden kann.
Syntax:
ActorScopeFrom Rahmenname
Beispiele:
Eliminiert den derzeit eingestellten Benutzerakteur und sowie den Benutzerrahmen. Der Befehl kann keine Rahmen für aktive Einheiten oder Effekte eliminieren, um nicht beabsichtigte Ergebnisse zu verhindern.
Dieser Cheat ist eine effiziente Möglichkeit, um einen oder mehrere Akteure, mit denen der Benutzer experimentiert hat, wieder zu entfernen, indem man ihren übergeordneten Rahmen eliminiert (da dadurch auch alle Akteure innerhalb des Rahmens eliminiert werden).
Syntax:
ActorScopeKill
Lässt den aktuell gesetzten Benutzerrahmen verwaisen. Verwaiste Rahmen eliminieren sich automatisch selbst, wenn der letzte Akteur, der ihn aktiv hält, eliminiert wird (z. B. wenn der Todesmodellakteur einer Einheit mit der Animation fertig ist und sich selbst eliminiert). Dieser Befehl lässt keine Rahmen von Einheiten oder Effekten verwaisen, um unvorhergesehene Ergebnisse zu vermeiden.
Dieser Cheat kann genutzt werden, um die Effekte der Nachricht „Verwaister Akteur” bei Akteuren innerhalb des Benutzerrahmens zu testen.
Syntax:
ActorScopeOrphan
Überträgt eine Benutzernachricht an alle Akteure im Benutzerrahmen.
Dies bedient den seltenen Fall, dass ein Benutzer eine Nachricht an alle Akteure eines Rahmens senden möchte.
(Als Anmerkung: Es mag so erscheinen, als sei dieser Cheat eine gute Möglichkeit, alle Modelle in einem Akteurrahmen [beispielsweise] rot einzufärben, generell ist es jedoch besser, Ablegerakteure zu haben, die vom Hauptakteur gehostet werden und die Eigenschaft der Einfärbung erben. Dann sendet man als Benutzer nur noch die Nachrichten zum Einfärben an den Hauptakteur des Rahmens und kann sich auf die Vererbung der Eigenschaften zu verlassen, um die Färbung zu übernehmen. Diese Methode ist meist zweckmäßiger, wenn ein Rahmen über Akteure verfügt, die nicht rot eingefärbt werden sollten. Das Übertragen der Färbenachricht färbt dennoch alle Modelle rot.)
Syntax:
ActorScopeSend Nachricht
Beispiele (engl.):
Gibt den aktuellen Benutzerakteur und Benutzerrahmen aus.
Dies ist von Nutzen, wenn der Benutzer vergisst, auf was die Referenzen aktuell gesetzt sind.
Syntax:
ActorUsersDump
Legt den Benutzerakteur auf den Akteur unter dem Mauszeiger sowie den Benutzerrahmen auf den zugehörigen übergeordneten Akteurrahmen fest.
Dies ist sehr nützlich, wenn man einen beliebigen Akteur in der Spielwelt inspizieren und einsetzen möchte, der nicht zu einem Objekt gehört, das man auswählen kann.
Syntax:
ActorUsersFromHoverTarget
Legt den Benutzerakteur auf den Porträtakteur im Spielporträtfenster sowie den Benutzerrahmen auf den Akteurrahmen für das Spielporträtfenster fest.
Dient dazu, Akteure, die dem Porträtfenster untergeordnet sind, zu inspizieren und einzusetzen.
Syntax:
ActorUsersFromPortraitGame
Legt den Benutzerakteur auf den Hauptakteur der ausgewählten Einheit sowie den Benutzerrahmen auf den zugehörigen übergeordneten Akteurrahmen fest.
Dies ist sehr nützlich, wenn man einen beliebigen Akteur in der Spielwelt inspizieren und einsetzen möchte, der zu einem Objekt gehört, das man auswählen kann.
Syntax:
ActorUsersFromSelection
Eliminiert alle Partikel und Ribbons, die derzeit in der Spielwelt existieren, hält aber andere nicht davon ab, direkt danach wieder zu entstehen – selbst bei Partikelsystemen, bei denen zuvor alle Partikel eliminiert wurden.
Kann dazu verwendet werden, die Spielwelt von verdeckenden Partikel- und Ribboneffekten zu befreien (im Allgemeinen, wenn das Spiel pausiert ist), um Modelle oder andere visuelle Effekte besser untersuchen zu können.
Syntax:
ActorWorldParticleFXDestroy
Der Benutzer kann Akteuren Dump-Nachrichten senden, um ihnen nützliche Informationen zur Fehlerbehebung zu entnehmen.
Syntax:
AliasDump
Listet alle Akteuraliase, die derzeit mit dem Akteur assoziiert werden.
Syntax:
AnimDumpDB
Listet alle für die Modelle verfügbaren Animationen, die gerade mit dem Akteur assoziiert werden. Listet auch die Dauer jeder Animation und ob diese eine Schleife durchläuft oder nicht.
Syntax:
AttachDump
Listet alle Anfügungspunkte die am Modell existieren, das mit dem Akteur assoziiert wird. Listet außerdem die vom Benutzer definierten Anfügungsschlüssel und Zielanfügungsvolumen, die mit jedem Anfügungspunkt assoziiert werden.
Syntax:
HostedPropDump AblegerEinschließen Eigenschaftstyp
Listet alle Informationen, die mit der angegebenen gehosteten Eigenschaft assoziiert werden, falls sie für den Akteur existiert. Wenn der Parameter zum Einschließen von Ablegern 1 ist, werden sowohl die Informationen der Eigenschaft für den Zielakteur als auch die all seiner Ableger gelistet.
Beispiele (engl.):
HostedPropDump 0 TintColorSyntax:
HostedPropDumpAll AblegerEinschließen
Listet alle Informationen, die mit allen gehosteten Eigenschaften die für den Akteur existieren. Wenn der Parameter zum Einschließen von Ablegern 1 ist, wird dasselbe auch für alle Ableger des Akteurs durchgeführt.
Syntax:
RefDump RefName
Listet Fehlerbehebungsinformationen für den über den Referenznamen angegebenen Akteur. Derzeit funktioniert dies nur für Akteurreferenzen in Systemreferenztabellen, also für Referenzen der Formate ::Akteur.Benutzerreferenz, ::Rahmen.Benutzerreferenz und ::global.Benutzerreferenz.
Examples:
Syntax:
RefDump Referenztabellentyp
Listet Fehlerbehebungsinformationen aller Akteurreferenzen in einer Referenztabelle. Der Parameter zum Bestimmen des Referenztabellentyps achtet auf Groß- und Kleinschreibung und erwartet die Werte Akteur (engl. Actor), Rahmen (engl. Scope) oder Global.
Beispiele (engl.):
Listet alle Texturen, die derzeit vom Modell, das mit dem Zielakteur assoziiert wird, verwendet werden. Gibt an, welche mit einem Texturen-Slot assoziiert werden und ob sie ausgetauscht oder durch andere dynamische Texturen ersetzt wurden.
Syntax:
TextureDumpDB
Listet alle Texturen, die mit dem Akteur assoziiert werden und für den dynamischen Austausch auf dem Modell zur Verfügung stehen.
Lade Kommentare ...
Ein Fehler ist beim laden der Kommentare aufgetreten.