Pt-br/Inputs and Outputs

Entradas e Saídas (coletivamente "E/S") são os meios pelos quais se comunicam entre si em . Entidades têm dois métodos de comunicação: enviar uma "saída" para outra entidade ou receber uma "entrada" de outra entidade. Por exemplo, uma entidade pode enviar uma saída quando é morta para a entrada de outra entidade, o que faz com que ela mude de cor. Essa mesma saída também pode ser usada para disparar a entrada de geração de outra entidade. As saídas são correspondidas às entradas por meio de uma "conexão", que controla quais dados extras são retransmitidos para o receptor, quanto atraso há antes que a saída seja recebida e se a saída deve ser permitida para ser enviada novamente mais tarde. As saídas podem ser vinculadas a qualquer entrada e vice-versa. Isso permite interações complexas e poderosas entre entidades.
Considere uma entidade . Ela pode ser configurada para "disparar" sua saída OnTimer quando atinge seu limite de tempo, o que "dispara" (ou "chama") a entrada ShowSprite de um . Quando o timer atinge seu limite, o sprite aparece. Usando as propriedades de conexão, você também pode fazer com que a saída seja disparada após um atraso de dois segundos, ou disparada uma vez, mas nunca mais.
== Entradas ==
Entradas são comandos que fazem com que uma entidade altere o que está fazendo. Eles são "acionados" (ou "chamados") por saídas - eles não podem ser manipulados diretamente.
Você pode visualizar uma lista de eventos de entrada que uma entidade está recebendo na aba Entradas do . Clicar no botão "marcar" levará você à entidade da qual a entrada está sendo recebida.
# 
== Saídas ==
Saídas são eventos que disparam quando o estado de uma entidade muda. Por exemplo, um terá uma saída para atingir seu fim, um uma saída para ser pressionado e uma uma saída para fechar.
Os eventos de saída são criados na aba Saídas do . Esta interface fornece uma lista das saídas já emitidas da entidade, campos de configuração para as selecionadas no momento e botões para criar novas e excluir as antigas. Finalmente, o botão no canto inferior esquerdo rotulado como "mark" levará você para a entidade de destino da saída atual.
Os campos de configuração de saída são:
; Nome da saída
: Qual evento faz com que a saída dispare. Por exemplo, uma entidade pode disparar uma saída OnTrigger quando um jogador pisa nela.
; Entidade de destino
: O ou da entidade que receberá a entrada. Aceita o caractere * como curinga de pesquisa.
:* Um nome em negrito significa que o targetname aponta para várias entidades
:* Um nome vermelho significa que o targetname não aponta para nada 
; Nome da entrada
: A entrada na entidade de destino que será acionada. Isso também será sensível ao contexto. Por exemplo, se estiver enviando uma saída para uma entidade Porta, algumas das entradas disponíveis serão "Fechar" ou "Abrir".
; Parâmetros
: Você pode passar dados para a entidade de destino com parâmetros. Um parâmetro pode ser qualquer coisa: quão alto tocar , o de outra entidade ou talvez . Tudo depende do que a entrada aceita. Se não aceitar nada, este campo ficará acinzentado.
: Algumas saídas, como o OutValue do , geram parâmetros por si mesmas. Para usar um parâmetro gerado, deixe o campo com a leitura <none>. 
; Atraso de tempo
: O número de segundos para esperar após o evento de saída ocorrer antes de disparar.
; Disparar apenas uma vez
: A saída será excluída após disparar se esta opção estiver marcada.
== Configurando um gatilho simples ==
Este é um exemplo de como fazer um gatilho simples usando entradas e saídas, para que um som seja reproduzido quando o jogador entra em uma área específica.
Abra um mapa e adicione um (no campo Nome, digite "ambient_1"). Vá em suas Propriedades do Objeto e escolha um arquivo de som para ele reproduzir, e na aba Sinalizadores defina como "Iniciar Silencioso". Selecione a textura "tools/toolstrigger" e crie um pincel de cubo com esta textura. Clique com o botão direito neste pincel e usando o comando "", transforme-o em uma entidade . Vá para a aba Saídas e clique no botão Adicionar....
Defina "Minha saída chamada" como "OnStartTouch". Isso faz com que a saída (e, portanto, o gatilho) ocorra quando o jogador começa a tocar neste pincel no jogo.
Defina "Targets entities named" como "ambient_1" usando a seta suspensa. Isso faz com que a saída do gatilho tenha como alvo o ambient_generic que você colocou anteriormente.
Defina "Via this input" como "PlaySound". Isso escolhe a ação PlaySound da lista de ações do ambient_generic de destino, o que, é claro, faz com que seu som comece a tocar.
Clique no botão Aplicar para salvar suas alterações no gatilho e feche-o. Agora temos o gatilho configurado para que, assim que o jogador o tocar, ele envie um comando para o ambient_generic que o faça começar a tocar seu som.
Se você abrir as propriedades para o ambient_generic, você pode ver como a Saída do gatilho foi automaticamente convertida para uma Entrada para o ambient_generic.
Se você quiser compilar e testar seu novo gatilho, certifique-se de ter todos os fundamentos (início do player, iluminação, etc.) e de ter atribuído um efeito sonoro ao ambient_generic.
== Depuração ==
O Source fornece várias ferramentas de depuração para quando uma cadeia de E/S não está funcionando como esperado.
A mais importante delas é a própria caixa de diálogo de propriedades do objeto. Entradas e saídas inválidas são destacadas em vermelho na lista de entradas ou saídas da entidade; os ícones de E/S na parte inferior da caixa de diálogo também mudam de acordo. Saídas inválidas também aparecem em (). É uma boa ideia verificar se há problemas antes de cada compilação.
Fora do Hammer, há uma série de comandos e variáveis ​​ que ajudarão você a detectar erros enquanto seu mapa estiver em execução:
; developer <0-2>
: relata todas as E/S de entidade para o console, e a menos que você esteja jogando em um que habilite (que é necessário para todos os comandos abaixo). Se você estiver no developer 2, você também verá as últimas oito linhas do console exibidas na parte superior da tela.
; ent_messages_draw <>
: Isso exibe as mesmas informações do modo de desenvolvedor, exceto que em vez de aparecer no console, é desenhado no mundo 3D no local das entidades em questão.
; ent_fire < ou > <input> <parameter>
: Este comando extremamente útil permite que você dispare manualmente entradas em qualquer entidade a qualquer momento. Se você quiser destrancar uma porta antes do tempo, você digitaria ent_fire my_door unlock, seguido se você estiver com preguiça por ent_fire my_door open.
: Assim como o campo "output target" no Hammer, ent_fire suporta nomes de classe e curingas. Se você quiser ent_fire npc_* ignite, você pode! 
; ent_pause
: Este comando pausa todas as entidades no mapa, exceto o jogador; envie-o novamente para despausar. Ele foi projetado para uso com ent_step.
; ent_step <número de passos>
: Quando usado com ent_pause, este comando faz com que as entidades executem um número especificado de passos de E/S antes de pausar novamente (o padrão é 1).
== Veja também ==
* - Algumas informações sobre como entradas e saídas funcionam internamente podem ser encontradas aqui.
* 
* 
* 
* 
* 
* - Lista de parâmetros de entidades, entradas e saídas (coisas avançadas)