Detalles de implementación del mensaje del día de Cloud Gem - Lumberyard Guía del usuario

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

Detalles de implementación del mensaje del día de Cloud Gem

En esta sección se describe la entidad, el componente, el script de Lua y los recursos utilizados por el mensaje de del día de la gema en la nube.

Entidad y componente

El ejemplo de Message of the Day utiliza una entidad denominada MOTDMenu de que contiene el CloudGemMessageOfTheDayClientComponent.


        Mensaje de la entidad del día y componente del cliente

El CloudGemMessageOfTheDayClientComponent El componente proporciona a la entidad acceso a las operaciones de la API del cliente de juego para que pueda recibir resultados de devolución de llamada.

El script motdmainmenu.lua

El MOTDmenu entidad también contiene una Lua del componente de script que ejecuta el dev\CloudGemSamples\Scripts\motdmainmenu.lua del archivo de comandos.

El siguiente código del script muestra cómo CloudGemMessageOfTheDayRequestBus se utiliza para llamada GetPlayerMessages.

function motdmainmenu:OnAction(entityId, actionName) Debug.Log(tostring(entityId) .. ": " .. actionName) if actionName == "GetMessages" then if CloudGemMessageOfTheDayRequestBus.Event == nil then Debug.Log("No Message Request Event found") return end local timeVal = os.date("%b %d %Y %H:%M") local lang = "Eng" Debug.Log(timeVal); CloudGemMessageOfTheDayRequestBus.Event.GetPlayerMessages(self.entityId, timeVal, lang, nil) end end

El siguiente código del script muestra la CloudGemMessageOfTheDayNotificationBus y las funciones de devolución de llamada de resultados OnGetPlayerMessagesRequestSuccess(response) y OnGetPlayerMessagesRequestError(errorMsg) que se conecta a.

function motdmainmenu:OnActivate() ... self.notificationHandler = CloudGemMessageOfTheDayNotificationBus.Connect(self, self.entityId) end ... function motdmainmenu:OnGetPlayerMessagesRequestSuccess(response) Debug.Log("GetPlayerMessages succeeded") self.messageQueue = {} self.displayTimer = 0.0 Debug.Log("Response messages: "..tostring(#response.list)); --This is a callback from C++ with an object containing a vector called list. --Therefore we cannot treat it as a regular Lua table and must rely on the reflected methods and operators of the reflected vector class --for msgCount = 1, table.getn(response) do -- Debug.Log(response[msgCount]) -- table.insert(self.messageQueue, response[msgCount]) for msgCount = 1, #response.list do Debug.Log(tostring(response.list[msgCount].message)) table.insert(self.messageQueue, response.list[msgCount]) end end function motdmainmenu:OnGetPlayerMessagesRequestError(errorMsg) Debug.Log("GetPlayerMessages Error") end

Recursos del mensaje del día de Cloud Gem

El Cloud Canvas La muestra Message of the Day (Mensaje del día) tiene un grupo de recursos que contiene un Amazon DynamoDB tabla denominada tabla principal, que es la base de datos de los mensajes. Las entradas de la tabla se introducen en un ID de mensaje único generado por el servidor. Cada entrada tiene los siguientes atributos.

Atributos de la tabla principal
Atributo [EMPTY] Descripción
UniqueMsgID string El ID de mensaje único generado por el servidor.
startTime datetime Hora a la que el mensaje debe comenzar a aparecer.
endTime datetime Hora a la que el mensaje caduca.
priority integer La prioridad relativa del mensaje. 0 es el valor más alto prioridad.
message string El cuerpo del mensaje. El tamaño de la cadena está limitado a 768 caracteres.