Arcade

Didacticiel de création de cartes

Triches d’acteur

Avec la mise à jour 1.4, les créateurs de jeux personnalisés (« mods ») peuvent à présent utiliser des triches d’acteur pour créer et manipuler des acteurs à la volée tout en exécutant une carte de test depuis l’éditeur. Cette fonction est utile pour tester rapidement des idées sans avoir à configurer les données ou exécuter des déclencheurs

Les triches peuvent aussi être utilisées pour modifier et inspecter presque n’importe quel acteur pendant le déroulement d’une carte de test, ce qui peut être utile au débogage des problèmes de temps d’exécution des acteurs.

Les triches peuvent être utilisées pour envoyer plusieurs nouveaux messages de vidage, tels que AnimDumpDB (Vider les animations de la base de données), AttachDump (Attacher vidage), HostedPropDump (Vidage de la propriété hébergée), RefDump (Jeter une référence) et TextureDump (Vider la texture). Ces messages permettent aux moddeurs d’inspecter des aspects internes de certains acteurs pendant le déroulement du jeu, ce qui peut représenter une précieuse aide au débogage supplémentaire.

Concepts des triches d’acteur

Noms de référence

L’expression « nom de référence d’acteur » désigne spécifiquement un type de variable système appelée référence d’acteur (« réf. acteur » ou juste « réf. »). Une référence d’acteur peut être résolue en un acteur donné, en fonction de 1) la signification du nom de référence et 2) le contexte dans lequel il est utilisé. Les noms de références peuvent être utilisés avec de nombreuses triches, comme spécifié. Leur disponibilité est variable en fonction de leur contexte d’utilisation:

  • D – depuis les (D)onnées Acteur
  • L – depuis les déc(L)encheurs
  • T – depuis les (T)riches d’acteur

Les noms de référence actuellement disponibles sont :

  • ::HoverTarget

T

L’acteur sous le curseur de la souris.

  • ::LastCreated

DLT

Depuis les déclencheurs, se résout par le dernier acteur créé avec succès directement via une fonction de déclenchement (mais aucun des autres moyens, par exemple par message dans les données comme résultat d’un appel de déclencheur). Depuis partout ailleurs, inclut aussi les acteurs créés explicitement via le message de création (c’est à dire Créer Acteur, Créer une région d’acteur, Créer un domaine d’acteur, etc…). Conçu pour maximiser la cohérence parmi les différentes variations du mécanisme LastCreated() (Dernier créé) dans les déclencheurs tout en cherchant à adhérer au principe de moindre surprise partout ailleurs.

  • ::LastCreatedActual

DLT

Le dernier acteur créé avec succès par l’utilisateur, par n’importe quel moyen. Inclut les acteurs créés avec le message Créer, les créations des requêtes d’acteur, ou les acteurs créés en interne par le système (comme lorsque CActorAction crée des amorces).

  • ::Main

DLT

L’acteur « principal » du ::Domaine utilisateur

    • Bidule

Le CActorDoodad.

    • Unité

La CActorUnit.

    • Le reste

Le premier acteur créé dans le domaine.

  • ::PortraitGame

DLT

L’acteur principal de la fenêtre de portrait en jeu, en ce moment, quelle que soit la sélection.

  • ::PortraitGameSelf

DLT

Le portrait de l’acteur principal dans le domaine de ce dernier. Utile pour envoyer des messages depuis n’importe quel acteur dans le domaine d’une unité vers l’acteur du portrait. Ne renvoie rien si le portrait et pour une unité autre que l’actuelle.

  • ::Self

D

L’acteur destinataire d’un évènement.

  • ::User

LT

Comprend les résultats de la triche ActorFrom (Acteur de) la plus récente.

  • ::global.<RefName>

DLT

Une référence d’acteur de la table de référence globale.

  • ::scope.<RefName>

DLT

Une référence d’acteur de la table de référence du domaine la contenant.

  • ::actor.<RefName>

DLT

Une référence d’acteur de la table de référence de l’acteur la contenant.

  • TargetKey

LT

L’acteur représenté par la clé du ::Domaine utilisateur. Ne renvoie que le premier résultat quand il y en a plusieurs.


Noms de référence de branche

Certaines triches (comme ActorSendTo) sont compatibles avec des « noms de référence de branche » qui permettent à l’utilisateur d’envoyer des messages aux noms de référence qui « appartiennent » à un acteur donné (la triche a besoin d’un acteur pour évaluer le nom de référence).

  • ::Creator

DLT

Le créateur de l’::Acteur utilisateur

  • Hosts

Un acteur hôte est un acteur dont un acteur hérite des données, comme le positionnement, des propriétés hôtes, etc.

    • ::Host

DLT

L’hôte principal. Utilisé pour le positionnement et les propriétés hôtes.

    • ::HostImpact

DLT

Utilisé pour placer le point d’impact d’un rayon.

    • ::HostLaunch

DLT

Utilisé pour placer le point de lancement d’un rayon.

    • ::HostReturn

DLT

L’hôte qu’un tentacule utilise comme cible de son voyage de retour.

    • ::Supporter

DLT

Utilisé pour lier la durée de vie d’un acteur à un « second rôle » (généralement pour configurer les évènements qui indiquent à un acteur de mourir quand son second rôle est mort).


Noms de référence de domaine

Certaines triches fonctionnent avec les domaines d’acteur. Il y a des variables de nom de référence de domaine similaires à leurs équivalents pour les acteurs, sauf qu’elles renvoient des domaines d’acteurs au lieu d’acteurs.

  • ::Actor

LT

Le domaine de l’::Acteur utilisateur.

  • ::LastCreated

LT

Le dernier domaine créé par l’utilisateur via une triche ou un code client. Non utilisé depuis les données, puisque les données ne créent pas de domaines.

  • ::PortraitGame

LT

Le domaine de la fenêtre de portrait en jeu.

  • ::Selection

T

Le domaine de l’unité sélectionnée. Renvoie un seul domaine même si plusieurs unités sont sélectionnées.

  • ::User

LT

Contient le résultat de la triche ActorScopeFrom la plus récente. Automatiquement fixé à la valeur ::LastCreated (::Dernier créé) quand cette référence est peuplée avec un nouveau domaine d’acteurs valide.


Clés de contenu

Les messages de création peuvent utiliser de 1 à 3 clés de contenu. Ces dernières activent les déclencheurs et triches afin de créer plus facilement une variété d’instances d’acteurs utilisant la même entrée de données, mais avec des paramètres de « contenu » différents. Par exemple :

ActorCreateAt Model Hydralisk
ActorCreateAt Model Marine

Les deux triches créent un CActorModel appelé « Modèle ». La première le crée avec la ressource « Hydralisk » et la deuxième avec la ressource « Marine ». Les différents types d’acteurs sont compatibles avec différents styles de paramètre de création, au cas par cas. Ce qui suit est une liste d’acteurs compatible avec les paramètres de contenu et l’ordre dans lequel ils sont spécifiés.


CActorBeam ModelLink RefLaunch RefImpact
  • ModelLink – le nom de l’entrée modelData utilisée pour le rayon.
  • RefLaunch – le nom de référence utilisé pour peupler le ::HostLaunch (::Lancement hôte) du rayon.
  • RefImpact – le nom de référence utilisé pour peupler le ::HostImpact (::Impact hôte) du rayon.

CActorList RefName
  • RefName – le nom de référence source à partir duquel peupler la liste.

CActorModel
  • ModelLink – le nom de l’entrée modelData devant être utilisée pour le modèle.
  • Variation – le nombre de variation spécifique pour le modèle, si on le souhaite (choisi aléatoirement sinon).

CActorSound
  • SoundLink – le nom du son devant être utilisé.

CActorSplat
  • ModelLink – le nom de l’entrée modelData devant être utilisée pour le rayon.

Utilisation des triches d’acteurs

L’utilisateur peut saisir des triches d’acteur dans la fenêtre de discussion pendant qu’il exécute sa carte depuis l’éditeur.

Les sorties seront consignées dans les fichiers log Alert.txt, qui se trouvent dans le répertoire « StarCraft II/GameLogs » de l’utilisateur. La date et l’heure sont ajoutées au nom du fichier : on obtient donc des noms du type « 2011-08-08 10.30.05 Alerts.txt ».

Les raccourcis fonctionnent, mais ne sont en fait pas consignés dans le fichier log.

Liste des triches d’acteurs

paramètre optionnel. Lorsque certaines de ces triches sont exécutées avec succès, deux variables globales, les valeurs « ::Acteur utilisateur » et « ::Domaine utilisateur » sont définies et les autres triches peuvent agir à partir de là. Les triches qui tuent les acteurs et domaines excluent ces acteurs et domaines qui interrompraient les unités et effets actuellement actifs.

ActorCreateAt

Crée un acteur à l’endroit désiré. Définit l’::Acteur utilisateur comme cet acteur et le ::Domaine utilisateur comme son domaine.

Cette triche est utile pour créer directement un acteur sur une carte de test afin d’observer ses propriétés et d’interagir avec lui sans attendre que la carte rencontre une situation dans laquelle cet acteur serait normalement créé. Les coordonnées permettent à l’utilisateur de positionner les acteurs de façon précise pour les combats et autres situations semblables.


Syntaxe :
ActorCreateAt x,y actorName {contentName} {content2Name} {content3Name}


Exemples :

ActorCreateAt 50,50 Model Drone ActorCreateAt 50,50 NexusSplat


ActorCreateAtCursor

Crée un acteur (et un domaine d’acteur pour le contenir) à l’emplacement du curseur de la souris. Assigne l’ ::Acteur utilisateur à cet acteur et le ::Domaine utilisateur à son domaine.

Cette triche est utile pour créer directement un acteur sur une carte de test afin d’observer ses propriétés et d’interagir avec lui sans attendre que la carte rencontre une situation dans laquelle cet acteur serait normalement créé. Elle place l’acteur à l’emplacement du curseur, de sorte que l’utilisateur n’a pas besoin d’obtenir des coordonnées spécifiques pour placer l’acteur à un endroit facilement visible.


Syntaxe :
ActorCreateAtCursor actorName {contentName} {content2Name} {content3Name}


Exemples :

ActorCreateAtCursor Model Drone
ActorCreateAtCursor NexusSplat
ActorCreateAtCursor Sound HydraliskAirAttackLaunch


ActorDumpAutoCreates

Vide une liste de tous les acteurs qui sont le résultat de données telles que :

<On Terms="UnitBirth.Marine" Send="Create"/>

Ce type de motif de création d’acteur est appelé auto-création, puisque l’acteur se crée automatiquement en réponse à un message. Il se comporte différemment d’un motif de création tel que celui-ci :

<On Terms="ActorCreation" Send="Create SomeActor"/>

parce que dans ce cas le message de création spécifie de façon explicite un acteur à créer.

ActorDumpAutoCreates peut être utilisé pour déterminer si des acteurs sont créés de façon non intentionnelle par certains évènements.


Syntaxe :
ActorDumpAutoCreates


ActorDumpEvents

Vide une liste de tous les évènements d’acteurs vus par l’::Acteur utilisateur, à l’exception des évènements créés automatiquement.

Ce code de triche peut être utilisé pour effectuer un certain nombre de recherches de texte sur tous les évènements d’acteur dans une carte, si vous souhaitez par exemple trouver tous les acteurs qui répondent à un évènement-signal, quelle que soit leur dépendance.


Syntaxe :
ActorDumpEvents


ActorDumpLeakRisks

Vide une liste d’acteurs ayant une certaine ancienneté et ayant la possibilité de fuir. L’utilisateur peut vérifier si une flamme de canon a plus d’une minute par exemple, car les flammes de canon ne durent jamais aussi longtemps. Certains types d’acteurs ne s’affichent jamais dans la liste des risques de fuite, car ils sont automatiquement nettoyés par le système et ne peuvent donc pas fuir à cause de données corrompues.

Si une carte devient de plus en plus lente, cette commande peut déterminer si une fuite d’acteurs en est la cause.


Syntaxe :
ActorDumpLeakRisks age


ActorDumpLive

Vide une liste d’acteurs actifs de toute la carte, classés par domaine englobant.

Cette commande est utile pour déterminer si un acteur existe, même s’il n’apparaît pas là où il est censé apparaître dans le jeu. Un acteur qui apparaît par erreur à 0,0 sera toujours visible dans la liste des acteurs actifs.


Syntaxe :
ActorDumpLive


ActorFrom

Définit un nouvel ::Acteur utilisateur à partir d’un acteur actif, selon un nom de référence.

Cette commande est primordiale pour intégrer divers acteurs dans le monde du jeu à la référence ::Utilisateur, afin que l’utilisateur puisse leur renvoyer des codes de triche.


Syntaxe :
ActorFrom RefName



Exemples :

ActorFrom ::HoverTarget ActorFrom ::Selection


ActorFromActor

Associe l’::Acteur utilisateur à un acteur référencé via un autre acteur et un nom de référence de branche.

Cette commande est utile pour intégrer divers acteurs pères et fils dans le monde du jeu dans la référence ::Utilisateur, afin que l’utilisateur puisse leur envoyer les commandes de triche. Elle est couramment utilisée pour effectuer des opérations sur la référence ::Hôte d’un acteur.


Syntaxe :
ActorFromActor refName


Exemples :

ActorFromActor ::Host

Associe l’acteur ::Utilisateur à l’acteur qui en était l’hôte.

ActorFromActor ::Creator

Associe l’acteur ::Utilisateur à l’acteur qui l’a créé.


ActorKillAll

Supprime tous les acteurs, à l’exception de ceux faisant partie d’arbres d’effets et d’unités actifs.

Utile pour supprimer tous les acteurs sur une carte de test, afin que les acteurs particuliers puissent ensuite être testés de façon isolée.


Syntaxe :
ActorKillAll


ActorKillClass

Supprime tous les acteurs de la classe spécifiée dans un rayon donné autour du curseur. Si le rayon n’est pas spécifié, il est considéré comme infini.

Cette commande peut être utilisée pour vider une zone (ou toute la carte) d’un type d’acteurs donné, s’ils empêchent l’utilisateur de se concentrer sur un problème à résoudre. Par exemple, il peut être utile de supprimer tous les acteurs bidules pour confirmer s’ils sont à l’origine d’un problème de performances.


Syntaxe :
ActorKillClass class {range}


Exemples :

ActorKillClass Model 15
ActorKillClass Sound


ActorKillLink

Supprime tous les acteurs ayant un lien d’acteur spécifique dans un rayon donné autour du curseur. Si le rayon n’est pas spécifié, il est considéré comme infini.

Cette commande peut être utilisée pour vider une zone (ou toute la carte) de toutes les occurrences d’une entrée d’acteur spécifique, si elles empêchent l’utilisateur de se concentrer sur un problème à résoudre. Par exemple, il peut être utile de supprimer tous les modèles d’un nom particulier dans une attaque à effet de zone (AoE), si un trop grand nombre est créé et obscurcit une autre section de l’effet graphique d’une attaque que l’utilisateur est en train de corriger. L’utilisateur peut également supprimer tous les sons ayant un nom donné afin de vérifier que les autres sons associés à un effet sont audibles.


Syntaxe :
ActorKillLink link {range}


ActorSend

Envoie un message d’utilisateur valide à l’::Acteur utilisateur actuellement actif.

La commande la plus utilisée et la meilleure façon pour les développeurs (internes ou externes) d’interagir avec les acteurs par les commandes de triche.


Syntaxe :
ActorSend message


Exemples :

ActorSend Destroy
ActorSend SetTintColor {255,255,0}


ActorSendTo

Envoie un message à une référence d’acteur système, en utilisant l’::Acteur utilisateur pour aider à résoudre la référence d’acteur système. En d’autre mots, cette routine envoie des messages à des noms de référence de branche (même si cela fonctionne également sur le nom de référence ::Principal).

Cette commande peut être une façon rapide d’envoyer des messages aux acteurs de branche ; l’utilisateur n’a pas besoin d’utiliser au préalable la commande ActorFromActor pour les associer à la référence ::Utilisateur.


Syntaxe :
ActorSendTo refName message


Exemples :

ActorSendTo ::Host SetOpacity 0.5
ActorSendTo ::Main SetTintColor {255,0,0}


ActorScopeDumpLive

Vide une liste de domaines actifs sur la carte entière.

Cette commande est utile pour chercher des domaines d’acteurs qui consomment des ressources inutilement, et ne contiennent plus aucun acteur (utile).


Syntaxe :
ActorScopeDumpLive


ActorScopeFrom

Définit un nouveau ::Domaine utilisateur à partir d’un nom de référence de domaine spécifié.

Cette commande est primordiale pour intégrer des domaines divers à la référence de ::Domaine utilisateur dans le monde du jeu, afin que l’utilisateur puisse trouver et envoyer facilement des messages à n’importe quel acteur du domaine.


Syntaxe :
ActorScopeFrom scopeName


Exemples :

ActorScopeFrom ::PortraitGame
ActorScopeFrom ::Selection


ActorScopeKill

Supprime l’::Acteur utilisateur et le ::Domaine utilisateur actuellement définis. Cette commande ne peut pas supprimer de domaines aux unités ou effets actifs dans le but d’empêcher des résultats inattendus.

Cette commande est efficace pour détruire un ou plusieurs acteurs avec lesquels l’utilisateur a conduit des tests, en ne supprimant que leur domaine englobant (puisque cela détruit tous les acteurs au sein du domaine).


Syntaxe :
ActorScopeKill


ActorScopeOrphan

Rend orphelin l’ensemble actuel ::Domaine utilisateur. Un domaine orphelin se tue lui-même automatiquement quand le dernier acteur qui le maintient en vie meurt (comme lorsque l’acteur du modèle de mort d’une unité achève son animation et se tue). Cette commande ne rend pas orphelins les domaines issus d’unités ou d’effets afin d’empêcher des résultats inattendus.

Cette triche peut être utilisée pour tester les effets du message ActorOrphan sur les acteurs à l’intérieur du ::Domaine utilisateur.


Syntaxe :
ActorScopeOrphan


ActorScopeSend

Diffuse un message utilisateur à tous les acteurs dans le ::Domaine utilisateur.

Utile dans les rares situations où l’utilisateur veut envoyer un message à tous les acteurs dans un domaine.

À propos, bien qu’il puisse sembler que cette triche soit un bon moyen de colorer tous les modèles dans un domaine d’acteurs en rouge (par exemple), il vaut généralement mieux expulser des acteurs enfants à partir de l’::Acteur principal et leur faire hériter de la propriété tintColor. Ensuite l’utilisateur envoie simplement les messages SetTintColor à l’::Acteur principal du domaine et compte sur l’héritage de hostedProp pour propager le changement de couleur. Cette dernière méthode est généralement meilleure quand un domaine peut avoir des acteurs qui ne devraient pas être colorés en rouge (comme les amorces d’impacts ennemis) et aussi des acteurs qui doivent être rouges. La diffusion du message tintColor message rend tous les modèles du domaine rouges sans faire de différence.


Syntaxe :
ActorScopeSend message


Exemples :

ActorScopeSend Destroy


ActorUsersDump

Renvoie l’ensemble actuel ::Acteur utilisateur et ::Domaine utilisateur.

Cela est utile si l’utilisateur oublie comment ces références sont actuellement définies.


Syntaxe :
ActorUsersDump


ActorUsersFromHoverTarget

Définit l’ ::Acteur utilisateur comme l’acteur sous le curseur. Définit le ::Domaine utilisateur comme le domaine d’acteurs comprenant cet acteur.

Très utile pour pouvoir inspecter et gérer tout acteur dans le monde du jeu qui n’appartient pas à un objet pouvant être sélectionné.


Syntaxe :
ActorUsersFromHoverTarget


ActorUsersFromPortraitGame

Définit l’ ::Acteur utilisateur comme l’acteur de la fenêtre de portrait en jeu. Définit le ::Domaine utilisateur comme le domaine d’acteurs pour la fenêtre de portrait en jeu.

Utile pour pouvoir inspecter et gérer les acteurs contenus dans la fenêtre de portrait.


Syntaxe :
ActorUsersFromPortraitGame


ActorUsersFromSelection

Définit l’ ::Acteur utilisateur en ::Acteur principal pour l’unité sélectionnée. Définit le ::Domaine utilisateur comme le domaine d’acteurs comprenant cet acteur.

Très utile pour pouvoir inspecter et gérer tout acteur dans le monde du jeu qui appartient à un objet pouvant être sélectionné.


Syntaxe :
ActorUsersFromSelection


ActorWorldParticleFXDestroy

Tue tous les rubans et particules existant actuellement dans le monde du jeu. Cela n’empêche pas que d’autres soient générés immédiatement après – même par des systèmes de particules dont toutes les particules viennent d’être tuées.

Can be used to immediately clear the world of obscuring particle and ribbon FX (typically while the game is paused), in order to closely inspect models or some other part of some visual FX.


Syntaxe :
ActorWorldParticleFXDestroy

Messages de vidage des acteurs

L’utilisateur peut envoyer des messages de vidage des acteurs aux acteurs pour en obtenir des informations utiles en cas de résolution de bugs.


AliasDump

Syntaxe :
AliasDump

Imprime une liste de tous les alias d’acteurs actuellement associés à l’acteur.


AnimDumpDB

Syntaxe :
AnimDumpDB

Imprime une liste de toutes les animations disponibles pour le modèle associé à l’acteur. Imprime la durée de chaque animation, ainsi que la présence d’une boucle ou non.


AttachDump

Syntaxe :
AttachDump

Imprime une liste de tous les points d’attache disponibles pour le modèle associé à l’acteur. Imprime également les clés d’attache spécifiées par l’utilisateur et les volumes d’attache cibles associés à chaque point d’attache.


HostedPropDump

Syntaxe :
HostedPropDump IncludeChildren PropType

Imprime toutes les informations associées au « hostedProp » spécifié (s’il existe pour l’acteur). Si le paramètre IncludeChildren est égal à 1, les informations concernant cette propriété sont imprimées pour l’acteur cible ainsi que tous ses enfants.

Exemples :

HostedPropDump 0 TintColor
HostedPropDump 1 TeamColor


HostedPropDumpAll

Syntaxe :
HostedPropDumpAll IncludeChildren

Imprime les informations associées à toutes les propriétés hébergées qui existent pour l’acteur. Si le paramètre IncludeChildren est égal à 1, l’opération est reproduite pour tous les enfants de l’acteur cible.


RefDump

Syntaxe :
RefDump RefName

Imprime les informations aidant à la résolution de bugs pour l’acteur spécifié par refName. Actuellement, cela ne fonctionne que pour les références d’acteurs dans les tables de référence système, c’est à dire les références au format ::actor.someUserRef, ::scope.someUserRef et ::global.someUserRef.


Exemples :

RefDump ::actor.someUserRef


RefTableDump

Syntaxe :
RefDump RefTableType

Imprime les informations aidant à la résolution de bugs pour toutes les références d’acteurs dans une table de références donnée. Le paramètre RefTableType est sensible à la casse et accepte les variables Actor, Scope et Global.


Exemples :

RefDumpAll Actor


TextureDump

Syntaxe :
TextureDump

Imprime une liste de toutes les textures actuellement utilisées par le modèle associé à l’acteur cible. Indique lesquelles sont associées à un emplacement de texture et si elles ont été remplacées par d’autres textures dynamiques.


TextureDumpDB

Syntaxe :
TextureDumpDB

Imprime une liste de toutes les textures disponibles pour un échange de texture dynamique sur le modèle associé à l’acteur cible.

Signaler le message # écrit par
Raison
Explication (256 caractères max.)

Signalé !

[Fermer]

Commentaires (4)

Connectez-vous pour donner votre avis.
Chinook #686
Chinook
07/05/2013
pfff j'en ai crée une moi
Connectez-vous pour donner votre avis.
Particule #426
Particule
12/11/2012
C'est pas très bien introduit tout ces codes bien compliqués ! J'y comprend pas grand chose non plus. Si le but est de tester sa propre map, je pense que s'est plus simple de vite se créer un déclencheur. Ou de modifier sa map dans le module "Terrain".
Vous auriez pas un exemple concret ?
Connectez-vous pour donner votre avis.
zergilullos #406
zergilullos
02/06/2012
moi je voudras créer une map on fait comment ?
Connectez-vous pour donner votre avis.
Gallen #233
Gallen
01/05/2012
je comprend rien!!
je ne peux pas faire ma map quand meme!!-_-'