Ativa o menu
Alternar menu de preferências
Alternar menu pessoal
Não autenticado(a)
Your IP address will be publicly visible if you make any edits.

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.