ACS_NamedExecuteAlways
Mais ações
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;
}
;
}
}