Delay
Mais ações
void Delay (int tics);
Uso
Atrasa o script pelo tempo especificado.
Parâmetros
- tics: A quantidade de tempo para esperar em tics.
Exemplos
Delay é um comando muito comum. Uma aplicação útil dele é evitar loops infinitos e o consequente erro “Runaway script x terminated”. Por exemplo:
script 1 ENTER { int health; while (Predefinição:Const) { health = GetActorProperty (0, Predefinição:Const); Print (s:"You have ", d:health, s:" health!"); } }
Este script causará um erro de runaway porque ele tentará dizer ao jogador a vida dele infinitamente em um único tic, sem parar. Adicionar um pequeno delay resultará no efeito desejado: uma atualização inútil de vida que dura para sempre, informando ao jogador a própria vida.
script 1 ENTER { int health; while (Predefinição:Const) { health = GetActorProperty (0, Predefinição:Const); Print (s:"You have ", d:health, s:" health!"); Delay (1); // Espera o próximo frame } }
O outro uso óbvio é atrasar eventos em um script. Por exemplo, o comportamento da porta usada na armadilha para a primeira chave em E1M6 de Doom pode ser simulado com um script assim:
script 12 (int sector, int speed, int seconds)
{
Door_Close (sector, speed);
Delay (35*seconds);
Door_Open (sector, speed);
}
Embora esse comportamento possa ser obtido usando Door_CloseWaitOpen de qualquer forma.