Noções básicas do CloudScript
A chave para aproveitar ao máximo o CloudScript é saber como trabalhar com as entradas disponíveis, ou seja, os args e o contexto do seu manipulador. Por exemplo, aqui está o exemplohelloWorld do CloudScript inicial, carregado como Revisão 1 em todos os títulos recém-criados (também disponível no nosso GitHub, mostrado abaixo).
inputValue e usa o valor dessa chave como parte do texto retornado nas informações do log de depuração da execução.
O parâmetro de entrada context
No entanto, também é possível chamar um CloudScript como resultado de um evento no PlayStream, por meio de uma Regra (Automation->Rules), uma Ação de Entrada/Saída de Segmento (Players->Segments) ou o Serviço de Tarefas (Automation->Tasks). Quando você faz isso, o contexto passado para a função fornece todas as informações necessárias para executar a ação apropriada. Para ler sobre os conceitos básicos de como os eventos do PlayStream funcionam, consulte o nosso blog Introducing PlayStream e, para obter uma lista dos tipos de eventos do PlayStream e suas propriedades, consulte a nossa Referência da API do PlayFab. Para ver essa ação, dê uma olhada no manipuladorhandlePlayStreamEventAndProfile do mesmo CloudScript de exemplo.
-
Há o
playStreamEvent, que você pode ver no código de exemplo acima. OplayStreamEventcontém o evento completo que disparou o manipulador como um objeto JSON, com todos os parâmetros que você vê na documentação de eventos do PlayStream. Assim, por exemplo, se você configurar uma regra no seu título que chamehandlePlayStreamEventAndProfileem qualquerplayer_logged_in event,playStreamEvent.EventNameseriaplayer_logged_inetc. (aqui está o conjunto completo de parâmetros desse evento). -
Em seguida, há o
playerProfile, também mostrado no exemplo anterior. Ele contém informações sobre o jogador que disparou o evento. Você pode encontrar todos os detalhes dos parâmetros do perfil aqui, mas, entre outras coisas, ele contém o conjunto completo de estatísticas do jogador no seu título e quaisquer marcas personalizadas que você tenha atribuído ao jogador, para que você possa usar esses dados para uma tomada de decisão avançada. -
O último elemento do contexto é
triggeredByTask. Ao contrário dos dois primeiros, que são definidos ao usar Regras e gatilhos de Entrada/Saída de Segmento,triggeredByTasksó é aplicável quando o manipulador está sendo executado como resultado de uma tarefa, seja manual ou por temporizador. Ele contém apenas dois parâmetros:
- Name: o nome exclusivo que você deu à tarefa quando a criou.
- ID: o identificador exclusivo gerado automaticamente pelo PlayFab para a tarefa.
playerProfile, mas não terá um playStreamEvent.
E, para uma tarefa executada simplesmente no seu jogo, mas sem nenhum segmento, não haverá um playerProfile, pois a intenção é executar algo mais geral, como definir alguns dados de título para um evento.
Portanto, name é o elemento que você vai querer usar no fluxo de código do seu manipulador para determinar a ação apropriada a ser executada.
PlayStream mais CloudScript
De muitas maneiras, os manipuladores do CloudScript disparados por ações do PlayStream têm ainda mais funcionalidade potencial do que aqueles disparados diretamente por meio de chamadas paraExecuteCloudScript, pois há um conjunto avançado de dados disponibilizado por meio do contexto.
Isso oferece a capacidade de atualizar seus manipuladores após o lançamento com mais lógica que usa elementos do evento ou do perfil do jogador que você não havia previsto originalmente, sem precisar atualizar o código do cliente de forma alguma.
Além disso, continuaremos fazendo acréscimos ao perfil do jogador em atualizações futuras do serviço PlayFab, o que fornecerá ainda mais opções para a lógica do lado do servidor.