Aspectos básicos de CloudScript
La clave para sacar el máximo partido a CloudScript es saber cómo trabajar con las entradas que tiene disponibles, es decir, los args y el contexto de su controlador. Por ejemplo, este es el ejemplohelloWorld del CloudScript inicial, cargado como revisión 1 en todos los títulos recién creados (también disponible en nuestro GitHub, que se muestra a continuación).
inputValue y usa el valor de esa clave como parte del texto devuelto en la información del registro de depuración de la ejecución.
El parámetro de entrada context
Sin embargo, también es posible llamar a un CloudScript como resultado de un evento en PlayStream, mediante una regla (Automation->Rules), una acción de entrada/salida de segmento (Players->Segments) o el servicio de tareas (Automation->Tasks). Cuando lo hace, el contexto pasado a la función proporciona toda la información que necesitará para realizar la acción adecuada. Para leer sobre los aspectos básicos del funcionamiento de los eventos de PlayStream, consulte nuestro blog Introducing PlayStream y, para obtener una lista de los tipos de eventos de PlayStream y sus propiedades, consulte nuestra referencia de API de PlayFab. Para ver esta acción, eche un vistazo al controladorhandlePlayStreamEventAndProfile del mismo CloudScript de ejemplo.
-
Está el
playStreamEvent, que puede ver en el código de ejemplo anterior. ElplayStreamEventcontiene el evento completo que desencadenó el controlador como un objeto JSON, con todos los parámetros que ve en la documentación de eventos de PlayStream. Así, por ejemplo, si configura una regla en su título que llame ahandlePlayStreamEventAndProfileen cualquier eventoplayer_logged_in,playStreamEvent.EventNameseríaplayer_logged_in, etc. (aquí está el conjunto completo de parámetros para ese evento). -
A continuación, está el
playerProfile, que también se muestra en el ejemplo anterior. Contiene información sobre el jugador que desencadenó el evento. Puede encontrar todos los detalles de los parámetros del perfil aquí, pero, entre otras cosas, contiene el conjunto completo de estadísticas del jugador en su título y las etiquetas personalizadas que haya asignado al jugador, para que pueda usar esos datos para una toma de decisiones enriquecida. -
El último elemento del contexto es
triggeredByTask. A diferencia de los dos primeros, que se establecen al usar reglas y desencadenadores de entrada/salida de segmento,triggeredByTasksolo es aplicable cuando el controlador se ejecuta como resultado de una tarea, ya sea manual o con temporizador. Contiene solo dos parámetros:
- Name: el nombre único que le dio a su tarea cuando la creó.
- ID: el identificador único generado automáticamente por PlayFab para su tarea.
playerProfile, pero no tendrá un playStreamEvent.
Y para una tarea que simplemente se ejecuta en su juego pero sin ningún segmento, no habrá un playerProfile, ya que la intención es ejecutar algo más general, como establecer algunos datos del título para un evento.
Por lo tanto, el nombre es el elemento que le conviene usar en el flujo de código de su controlador para determinar la acción adecuada que se debe realizar.
PlayStream más CloudScript
En muchos sentidos, los controladores de CloudScript desencadenados por acciones de PlayStream tienen incluso más funcionalidad potencial que los desencadenados directamente mediante llamadas aExecuteCloudScript, ya que hay un conjunto enriquecido de datos disponible a través del contexto.
Esto le brinda la posibilidad de actualizar sus controladores después del lanzamiento con más lógica que use elementos del evento o del perfil del jugador que no había previsto originalmente, sin necesidad de actualizar el código del cliente de ninguna manera.
Además, seguiremos realizando incorporaciones al perfil del jugador en futuras actualizaciones del servicio de PlayFab, lo que proporcionará incluso más opciones para la lógica del lado servidor.