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.
Revisão de 12h07min de 6 de março de 2026 por MegaManx3 (discussão | contribs) (Criou página com '__NOTOC__ '''ScriptCall''' (str ''classname'', str ''funcname'', ''args'') ==Uso== Executa uma função definida em script. Se o primeiro argumento da função a executar for do tipo {{c|Actor}}, o ativador do script é passado e armazenado nesse argumento. Isso permite que o ativador seja acessado por essa função. ===Parâmetros=== *''classname'': o nome da classe de actor em que a função está definida. *''funcname'': o nome da função a executar. Ap...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

ScriptCall (str classname, str funcname, args)

Uso

Executa uma função definida em script. Se o primeiro argumento da função a executar for do tipo Actor, o ativador do script é passado e armazenado nesse argumento. Isso permite que o ativador seja acessado por essa função.

Parâmetros

  • classname: o nome da classe de actor em que a função está definida.
  • funcname: o nome da função a executar. Apenas funções static são executáveis.
  • args: os argumentos, se houver, a serem passados para a função especificada. Os tipos de argumentos que a função pode ter são int, bool, double, string, name, color e sound. double é passado como um valor de ponto fixo, color como um valor inteiro, e name e sound como strings.

Valor de retorno

O valor que a função executada retorna. O tipo do valor é o mesmo dos tipos dos argumentos passados, além de void.

Exemplos

Este script dá ao jogador um TID único. Isso é obtido executando FindUniqueTid, que é definido em Actor.

script "SetPlayerTID" ENTER
{
    // Apenas se o jogador ainda não tiver um TID.
    if(ActivatorTID() == 0)
    {
        int ptid = ScriptCall("Actor", "FindUniqueTid", 0, 0);
        Thing_ChangeTID(0, ptid);
        Log(s:"TID alterado para ", d:ptid); // Mostra uma mensagem.
    }
}

Note que o ACS já tem uma função que pode obter um TID único. O exemplo acima é para fins educacionais.


Se executada, esta função GivePresent dá ao ativador do script um item e registra uma mensagem. O item é especificado pelo argumento present.

// Em ZScript:
class ExampleClass
{
    static void GivePresent (Actor activator, string present)
    {
        // Apenas jogadores recebem o item.
        if(activator && activator.player)
        {
            activator.A_GiveInventory(present);
            activator.A_Log("You received a wonderful present!", true);
        }
    }
}

// Em ACS:
script "GetGift" (void)
{
    ScriptCall("ExampleClass", "GivePresent", "Soulsphere");
}