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.

ACS_NamedExecuteAlways

De Brdoom wiki


bool ACS_NamedExecuteAlways (string script, int map, int s_arg1, int s_arg2, int s_arg3)
ACS_NamedExecuteAlways (string script, int map, int s_arg1, int s_arg2, int s_arg3)

Uso

Variante de ACS_ExecuteAlways para named scripts.

Há uma versão desta função em ACS e outra em DECORATE. Ambas se comportam de forma idêntica.

No entanto, ela não está disponível como um action special: para chamar scripts nomeados a partir de um special de line ou thing, você precisa usar a variante não nomeada (ACS_ExecuteAlways) em UDMF, com o argumento customizado arg0str definido para o nome do script — isso sobrescreverá o primeiro parâmetro.

Parâmetros

  • script: Nome do script a executar
  • map: Mapa que contém o script
  • s_arg1: Primeiro argumento passado para o script
  • s_arg2: Segundo argumento passado para o script
  • s_arg3: Terceiro argumento passado para o script

Valor de retorno

Retorna true se o script pôde ser executado com sucesso, false caso contrário. Deferred scripts são sempre considerados bem-sucedidos.

Exemplos

Este exemplo dá uma cura completa única a um jogador quando ele está quase morto, se o jogador pegou um item especial. O item executa o script, enquanto o script monitora o status do jogador e ativa quando a vida do jogador é reduzida a 1.

Item em Decorate:

Actor AvoidDeath : CustomInventory
{
  Inventory.MaxAmount 0
  +INVENTORY.AUTOACTIVATE
  States
  {
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("AvoidDeathScript", 0)
    Stop
  }
}

Script ACS:

script "AvoidDeathScript" (void)
{
  SetPlayerProperty(0, 1, Predefinição:Const);  // Ativa o modo buddha para o jogador
  while(1) // Loop permanente
  {
    if(GetActorProperty(0, Predefinição:Const) <= 1) // Verifica se o jogador está ferido o suficiente para curar
    {
      SetPlayerProperty(0, 0, Predefinição:Const); // Remove o modo buddha
      GiveInventory("Health", 100);        // e cura o jogador
      terminate;
    }
    ;
  }
}
Script functions
ACS_Execute ACS_NamedExecute
ACS_ExecuteWait ACS_NamedExecuteWait
ACS_ExecuteAlways ACS_NamedExecuteAlways
ACS_ExecuteWithResult ACS_NamedExecuteWithResult
ACS_LockedExecute ACS_NamedLockedExecute
ACS_LockedExecuteDoor ACS_NamedLockedExecuteDoor
ACS_Suspend ACS_NamedSuspend
ACS_Terminate ACS_NamedTerminate
ScriptWait NamedScriptWait
FS_Execute UsePuzzleItem