Cheats de Agente

Com o Patch 1.4.0, os criadores de mods podem agora usar cheats de agente para criar e manipular agentes dinamicamente enquanto executam um teste de mapa no editor. Isto é útil para testar as ideias rapidamente sem precisar configurar dados ou executar ativadores.

Os cheats também podem ser usados para modificar e inspecionar praticamente todos os agentes enquanto o mapa está sendo executado, o que pode ser útil para depurar problemas de tempo de execução do agente.

Os cheats podem ser usados para enviar diversas mensagens recém-ativadas, como AnimDumpDB, AttachDump, HostedPropDump, RefDump e TextureDump. Essas mensagens permitem que os moduladores inspecionem alguns aspectos internos de determinados agentes enquanto o jogo está sendo executado, o que pode ser útil como auxílio adicional da depuração.

Conceitos de cheat de agente

Nomes de referência

O termo "Nome de Referência" é uma abreviação para "Nome de referência do agente", que identifica exclusivamente um tipo de variável de sistema conhecida como referência do agente ("referência do agente" ou apenas "referência" para abreviar). A referência do agente pode ser resolvida para um determinado agente, dependendo 1) do significado do nome de referência, e 2) do contexto em que está sendo usado. Os nomes de referência podem ser usados em muitos cheats, onde for especificado. Sua disponibilidade pode variar, dependendo do contexto em que forem usados:

  • D – a partir dos (D)ados do Agente
  • T – a partir das funções relacionadas ao agente nos a(t)ivadores
  • C – a partir dos (c)heats do agente

Os nomes de referência disponíveis no momento são:

  • ::HoverTarget

C

O agente sob o cursor do mouse.

  • ::LastCreated

DTC

A partir dos ativadores, isto acessa o último agente criado com êxito diretamente através de uma função de ativador (mas não por outros meios, como através de mensagens nos dados como resultado de uma chamada de ativador). A partir de qualquer outro local, ele também inclui os agentes criados explicitamente através da mensagem Criar (por ex., Create SomeActor). Isto é feito para maximizar a consistência entre as diferentes variações do mecanismo LastCreated() nos ativadores, ao mesmo tempo em que tenta cumprir a regra da menor surpresa em qualquer outro lugar.

  • ::LastCreatedActual

DTC

O último agente criado com êxito pelo usuário através de qualquer meio. Inclui agentes criados pela mensagem Criar, solicitações de criação de agente, ou agentes criados internamente pelo sistema (como quando CActorAction cria efeitos de faísca).

  • ::Main

DTC

O agente "principal" do escopo ::User

    • Acessório

O CActorDoodad.

    • Unidade

O CActorUnit.

    • O restante

O primeiro agente criado no escopo.

  • ::PortraitGame

DTC

O agente principal para a janela de retrato do jogo, no momento, independentemente do que está selecionado.

  • ::PortraitGameSelf

DTC

O retrato do agente principal no escopo deste agente. É útil para enviar mensagens a partir de qualquer agente no escopo da unidade para seu agente de retrato. Retorna nada se o retrato for de uma unidade diferente da atual.

  • ::Self

D

O agente que recebe um evento.

  • ::User

TC

Contém o resultado do cheat ActorFrom mais recente.

  • ::global.<RefName>

DTC

Uma referência de agente a partir da tabela de referência global.

  • ::scope.<RefName>

DTC

Uma referência de agente a partir da tabela de referência contida no escopo.

  • ::actor.<RefName>

DTC

Uma referência de agente a partir da tabela de referência contida no agente.

  • TargetKey

TC

O agente representado pela chave do escopo ::User. Somente retorna o primeiro quando houver diversas colisões no conjunto de resultados.


Nomes de referência de ramificação

Alguns cheats (como ActorSendTo) suportam "nomes de referência de ramificação", que permitem que o usuário envie mensagens a nomes de referência que "pertencem" a um determinado agente (por ex., o cheat exige um agente para poder avaliar o nome de referência).

  • ::Creator

DTC

O criador do agente ::User

  • Hosts

Um agente host é aquele que do qual o agente herda os dados como disposição, itens hospedados, etc.

    • ::Host

DTC

O host principal. Usado para orientações e itens hospedados.

    • ::HostImpact

DTC

Usado para posicionar o ponto de impacto de um feixe.

    • ::HostLaunch

DTC

Usado para posicionar o ponto de lançamento de um feixe.

    • ::HostReturn

DTC

O host usado por um tentáculo como alvo para sua viagem de volta.

    • ::Supporter

DTC

Usado para vincular a vida útil de um agente a um agente "coadjuvante" (tipicamente para configurar eventos que dizem ao agente para morrer quando seu agente coadjuvante morreu).


Nomes de referência de escopo

Alguns cheats funcionam com escopos de agentes. Há algumas variáveis de nomes de referência de escopo que são similares a seus correspondentes de agentes, exceto que elas são avaliadas para os escopos do agente em vez dos agentes.

  • ::Actor

TC

O escopo do agente ::User.

  • ::LastCreated

TC

O último escopo criado com êxito pelo usuário através de cheat ou código do cliente. É irrelevante a partir dos dados, pois os dados não criam escopos.

  • ::PortraitGame

TC

O escopo da janela de retrato do jogo.

  • ::Selection

C

O escopo da unidade selecionada. Retorna um único escopo, mesmo se múltiplas unidades forem selecionadas.

  • ::User

TC

Contém o resultado do cheat ActorScopeFrom mais recente. É configurado automaticamente para o valor ::LastCreated quando aquela referência for populada com um novo escopo válido de agente.


Chaves de conteúdo

Cria mensagens que usam de 1 a 3 chaves de conteúdo. Elas permitem que os ativadores e cheats criem com mais facilidade uma variedade de instâncias de agente usando as mesmas entradas de dados, mas com diferentes parâmetros de "conteúdo". Por exemplo:

ActorCreateAt Modelo Hidralisca
ActorCreateAt Modelo Soldado

Ambos os cheats criam um CActorModel chamado "Modelo". O primeiro o cria com o elemento "Hidralisca" e o segundo o cria com o elemento "Soldado". Os vários tipos de agente suportam diferentes estilos de parâmetro de criação, variando caso a caso. A seguir está uma lista de agentes que suportam parâmetros de conteúdo, e a ordem na qual eles são especificados.


CActorBeam ModelLink RefLaunch RefImpact
  • ModelLink – o nome da entrada modelData usada para o feixe.
  • RefLaunch - o nome de referência usado para popular o ::HostLaunch do feixe.
  • RefImpact - o nome de referência usado para popular o ::HostImpact do feixe.

CActorList RefName
  • RefName - nome de referência da origem a partir da qual a lista deve ser populada.

CActorModel
  • ModelLink - o nome da entrada modelData usada para o modelo.
  • Variation - a variação específica para o modelo, se desejado (em caso contrário é escolhida aleatoriamente).

CActorSound
  • SoundLink - o nome do som que será usado.

CActorSplat
  • ModelLink - o nome da entrada modelData usada para o feixe.

Utilização do cheat de agente

O usuário pode digitar cheats de agente na linha de bate-papo quando executar seu mapa a partir do editor.

A saída vai para o registro Alert.txt, que pode ser encontrado no diretório "StarCraft II/GameLogs" do usuário. O registro Alert.txt tem um carimbo de data e hora que antecede o nome do arquivo; portanto, um exemplo da vida real seria um nome como este: "2011-08-08 10.30.05 Alerts.txt".

Os atalhos não são suportados no momento, mas poderão ser adicionados no futuro.

Lista de cheats de agente

Na sintaxe fornecida para cada comando, um parâmetro cercado por colchetes curvos {} indica um parâmetro opcional. Quando alguns destes cheats são executados com êxito, os valores de duas variáveis globais, "agente ::User" e "escopo ::User" são definidos, sobre os quais outros cheats podem agir. Os cheats que matam agentes e escopos excluem aqueles agentes e escopos que quebrariam as unidades e efeitos ativos no momento.

ActorCreateAt

Cria um agente no local especificado. Define o agente ::User para este agente e o escopo ::User para seu escopo.

Este cheat é útil para criar diretamente um agente em um mapa de teste, para poder observar suas propriedades e interagir com ele, sem esperar que o mapa encontre uma situação que criaria normalmente o agente. As coordenadas permitem que o usuário posicione agentes precisamente para testes de combate e similares.


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


Exemplos:

ActorCreateAt 50,50 Model Drone ActorCreateAt 50,50 NexusSplat


ActorCreateAtCursor

Cria um agente (e o escopo de agente que o contém) onde está o cursor do mouse. Define o agente ::User para este agente e o escopo ::User para seu escopo.

Este cheat é útil para criar diretamente um agente em um mapa de teste, para poder observar suas propriedades e interagir com ele, sem esperar que o mapa encontre uma situação que criaria normalmente o agente. Ele coloca o agente na localização do cursor, para o usuário não se preocupar em obter as coordenadas específicas para posicionar o agente em um local prontamente visível.


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


Exemplos:

ActorCreateAtCursor Model Drone
ActorCreateAtCursor NexusSplat
ActorCreateAtCursor Sound HydraliskAirAttackLaunch


ActorDumpAutoCreates

Descarrega uma lista de todos os agentes que são criados como resultados de dados como estes:

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

Este tipo de padrão de criação de agente é chamado auto criação, pois o agente cria a si mesmo automaticamente em resposta a uma mensagem. Isso é diferente de um padrão de criação como este:

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

porque aqui a mensagem Criar está especificando claramente o agente a ser criado.

ActorDumpAutoCreates pode ser usado para acompanhar se os agentes estão sendo criados acidentalmente por determinados eventos.


Sintaxe:
ActorDumpAutoCreates


ActorDumpEvents

Descarrega uma lista de todos os eventos de agente vistos pelo agente ::User, exceto eventos de auto criação.

Este cheat pode ser usado para executar diversas pesquisas de texto em todos os eventos de agente em um mapa, por exemplo, se alguém quiser ver todos os agentes que respondem a um determinado evento de Sinal, independentemente de em qual dependência estão.


Sintaxe:
ActorDumpEvents


ActorDumpLeakRisks

Descarrega uma lista de agentes mais antiga que uma idade particular que tenha a possibilidade de vazamento. O usuário pode verificar se um modelo de explosão tem mais de um minuto de idade, por exemplo, pois flashes de focinheira não costumam durar muito tempo. Alguns tipos de agentes nunca aparecem na lista dos riscos de vazamento, pois são automaticamente limpos pelo sistema e, portanto, não podem sofrer vazamento por maus dados.

Se um mapa ficar cada vez mais lento com o passar do tempo, este cheat pode determinar se o vazamento em agentes é a causa.


Sintaxe:
ActorDumpLeakRisks age


ActorDumpLive

Descarrega uma lista dos agentes vivos em todo o mapa, classificados pelo escopo contido.

Este cheat é útil para determinar se os agentes existem, apesar de não aparecerem onde são esperados no mundo do jogo. Um agente que apareça por engano em 0,0 ainda será mostrado na lista de agentes vivos.


Sintaxe:
ActorDumpLive


ActorFrom

Define um novo agente de ::User a partir de um agente vivo, dado um nome de referência.

Este cheat é crucial para a determinação de diversos agentes no mundo do jogo dentro da referência ::User, para que o usuário possa enviar comandos de cheat a eles.


Sintaxe:
ActorFrom RefName



Exemplos:

ActorFrom ::HoverTarget ActorFrom ::Selection


ActorFromActor

Define o agente ::User para um agente referenciado através de outro agente a um nome de referência de ramificação.

Este cheat é útil para a determinação de diversos agentes pais e filhos no mundo do jogo dentro da referência ::User, para que o usuário possa enviar comandos de cheat a eles. Ele costuma ser usado para executar operações na referência ::Host de um agente.


Sintaxe:
ActorFromActor refName


Exemplos:

ActorFromActor ::Host

Define o agente ::User para o agente que estava hospedando.

ActorFromActor ::Creator

Define o agente ::User para o agente que o criou.


ActorKillAll

Mata todos os agentes, exceto aqueles que são parte de unidades vivas e árvores de efeito.

É útil para limpar um mapa de teste de agentes, para que os agentes individuais possam mais tarde serem testados isoladamente.


Sintaxe:
ActorKillAll


ActorKillClass

Mata todos os agentes de uma classe especificada dentro de um determinado raio do cursor. Se o raio não for especificado, ele será infinito.

Pode ser usado para limpar uma área (ou todo o mapa) de um determinado tipo de agente, se eles estiverem dificultando o foco em um problema que o usuário está investigando. Por exemplo, pode fazer sentido matar todos os agentes acessórios para confirmar se eles são a causa de um problema de desempenho.


Sintaxe:
ActorKillClass class {range}


Exemplos:

ActorKillClass Model 15
ActorKillClass Sound


ActorKillLink

Mata todos os agentes de um link de agente especificado dentro de um determinado raio do cursor. Se o raio não for especificado, ele será infinito.

Pode ser usado para limpar uma área (ou todo o mapa) de todas as instâncias de uma determinada entrada de agente, se elas estiverem dificultando o foco em um problema que o usuário está investigando. Por exemplo, pode fazer sentido matar todos os modelos com um determinado nome em uma área de efeito (AdE) de ataque, se muitos tiverem sido criados e estiverem obstruindo outra parte do efeito gráfico para um ataque que o usuário está depurando. Ou o usuário pode matar todos os sons de um determinado nome para ver se consegue ouvir outros sons também associados ao efeito.


Sintaxe:
ActorKillLink link {range}


ActorSend

Envia uma mensagem válida de usuário para o agente ::User ativo no momento.

Este é de longe o cheat de agente mais usado, e a principal forma em que os desenvolvedores (internos ou externos) interagem com os agentes através de cheats.


Sintaxe:
ActorSend message


Exemplos:

ActorSend Destroy
ActorSend SetTintColor {255,255,0}


ActorSendTo

Envia uma mensagem para uma referência de agente de sistema, usando o agente ::User para ajudar a resolver a referência de agente de sistema. Isto é, esta rotina envia mensagens a nomes de referência de ramificação (apesar de também funcionar no nome de referência ::Main).

Este cheat pode ser um atalho para enviar mensagens a agentes de ramificação; o usuário não precisa usar primeiro o cheat ActorFromActor para defini-los na referência ::User.


Sintaxe:
ActorSendTo refName message


Exemplos:

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


ActorScopeDumpLive

Descarrega uma lista de escopos vivos em todo o mapa.

Este cheat pode ser útil para procurar escopos de agentes que estão consumindo recursos sem necessidade, mas não têm mais nenhum agente (útil) neles.


Sintaxe:
ActorScopeDumpLive


ActorScopeFrom

Define um novo escopo ::User a partir do nome de referência do escopo especificado.

Este cheat é crucial para enviar vários escopos no mundo do jogo para a referência de escopo de ::User, para que o usuário possa encontrar e enviar rapidamente mensagens a qualquer um dos agentes naquele escopo.


Sintaxe:
ActorScopeFrom scopeName


Exemplos:

ActorScopeFrom ::PortraitGame
ActorScopeFrom ::Selection


ActorScopeKill

Mata o agente ::User e o escopo ::User definidos no momento. Este comando não pode matar escopos de unidades ou efeitos vivos, para evitar resultados inesperados.

Este cheat é um modo eficiente de matar um ou mais agentes que o usuário tenha experimentado, apenas matando seu escopo que o contém (visto que ele mata todos os agentes dentro do escopo).


Sintaxe:
ActorScopeKill


ActorScopeOrphan

Torna órfão o escopo ::User definido no momento. Um escopo órfão mata a si mesmo automaticamente quando o último agente que o mantém vivo morre (como quando o agente do modelo de morte de uma unidade termina a animação e se mata). Este comando não pode tornar órfãos escopos de unidades ou efeitos, para evitar resultados inesperados.

Este cheat pode ser usado para testar os efeitos da mensagem ActorOrphan nos agentes dentro do escopo ::User.


Sintaxe:
ActorScopeOrphan


ActorScopeSend

Transmite uma mensagem de usuário a todos os agentes no escopo ::User.

É útil nos raros casos em que o usuário quer enviar uma mensagem a todos os agentes no escopo.

(Além disso, mesmo que este cheat possa parecer um bom modo de definir como vermelho a tonalidade de todos os modelos no escopo de agente [por exemplo], costuma ser melhor ter agentes filhos hospedados fora do agente ::Main e herdar a propriedade tintColor. Em seguida o usuário só precisa enviar as mensagens SetTintColor para o agente ::Main do escopo, e confiar na herança hostedProp para penetrar a alteração de cor. Este último método é bem superior quando o escopo pode ter agentes que não deveriam ser tingidos de vermelho (como efeitos de faíscas de impacto do inimigo) junto com os agentes que devem ser vermelhos. A transmissão da mensagem tintColor transforma todos os modelos no escopo em vermelho, sem exceção).


Sintaxe:
ActorScopeSend message


Examples:

ActorScopeSend Destroy


ActorUsersDump

Retorna o agente ::User e o escopo ::User definidos no momento.

Isto é útil se o usuário esquecer para o que estas referências estão definidas no momento.


Sintaxe:
ActorUsersDump


ActorUsersFromHoverTarget

Define o agente ::User para o agente sob o cursor. Define o escopo ::User para o escopo de agente que contém aquele agente.

É muito útil para poder inspecionar e operar sobre qualquer agente no mundo do jogo que não pertença a um objeto selecionável.


Sintaxe:
ActorUsersFromHoverTarget


ActorUsersFromPortraitGame

Define o agente ::User para o agente de retrato na janela de retrato do jogo. Define o escopo ::User para o escopo de agente na janela de retrato do jogo.

É útil para poder inspecionar e operar sobre os agentes contidos na janela de retrato.


Sintaxe:
ActorUsersFromPortraitGame


ActorUsersFromSelection

Define o agente ::User para o agente ::Main para a unidade selecionada. Define o escopo ::User para o escopo de agente que contém aquele agente.

É muito útil para poder inspecionar e operar sobre qualquer agente no mundo do jogo que pertença a um objeto selecionável.


Sintaxe:
ActorUsersFromSelection


ActorWorldParticleFXDestroy

Mata todas as partículas e faixas que existem no momento no mundo do jogo. Ele não evita que novas partículas e faixas sejam geradas logo em seguida – mesmo de sistemas de partículas que tenham tido todas as partículas mortas.

Pode ser usado para limpar imediatamente o mundo de partículas que atrapalhem a visão e efeitos (FX) de faixas (em geral quando o jogo está pausado), para inspecionar de perto os modelos ou outra parte de algum efeito visual.


Sintaxe:
ActorWorldParticleFXDestroy

Mensagens de descarga de agente

O usuário pode enviar mensagens de descarga de agente aos agentes para obter deles informações úteis relacionadas à depuração.


AliasDump

Sintaxe:
AliasDump

Imprime todas as réplicas de agente associadas no momento ao agente.


AnimDumpDB

Sintaxe:
AnimDumpDB

Imprime todas as animações disponíveis para o modelo associado ao agente. Imprime a duração de cada animação, e também se é uma animação em ciclos.


AttachDump

Sintaxe:
AttachDump

Imprime todos os pontos de anexação existentes no modelo associado ao agente. Também imprime todas as chaves de anexação especificadas pelo usuário e os volumes de anexação alvo associados a cada ponto de anexação.


HostedPropDump

Sintaxe:
HostedPropDump IncludeChildren PropType

Imprime todas as informações associadas ao hostedProp especificado se ele existir no agente. Se o parâmetro IncludeChildren for 1, ele imprime as informações daquele equipamento para o agente alvo junto com todos os filhos.

Exemplos:

HostedPropDump 0 TintColor
HostedPropDump 1 TeamColor


HostedPropDumpAll

Sintaxe:
HostedPropDumpAll IncludeChildren

Imprime todas as informações associadas aos itens hospedados que existirem no agente. Se o parâmetro IncludeChildren for 1, ele também faz o mesmo para todos os filhos do agente alvo.


RefDump

Sintaxe:
RefDump RefName

Imprime informações de depuração sobre o agente especificado pelo refName. No momento, isto só funciona para referências de agente em tabelas de referência de sistema, isto é, referências nos formatos ::actor.someUserRef, ::scope.someUserRef e ::global.someUserRef.


Exemplos:

RefDump ::actor.someUserRef


RefTableDump

Sintaxe:
RefDump RefTableType

Imprime informações de depuração sobre todas as referências de agente em uma determinada tabela de referência. O parâmetro RefTableType diferencia maiúsculas de minúsculas e espera os tokens Agente, Escopo ou Global.


Exemplos:

RefDumpAll Actor


TextureDump

Sintaxe:
TextureDump

Imprime todas as texturas que estão sendo usadas pelo modelo associado ao agente alvo. Indica quais estão associadas a posições de textura e se elas foram trocadas e substituídas por outras texturas dinâmicas.


TextureDumpDB

Sintaxe:
TextureDumpDB

Imprime todas as texturas disponíveis para a troca de textura dinâmica no modelo associado ao agente alvo.

Carregando Comentários...

Um erro ocorreu durante o carregamento.