private void HandlePacket(CSVCMsgGameEvent message) { CSVCMsgGameEventList.DescriptorT descriptor; if (!_gameEvents.TryGetValue(message.Eventid, out descriptor)) { return; } GameEventHandler handler; if (_gameEventHandlers.TryGetValue(message.Eventid, out handler)) { handler(this, message); } if (descriptor.Name == "player_footstep") { return; } var builder = new StringBuilder(); builder.AppendFormat("{0}", descriptor.Name); builder.AppendLine(); if (descriptor.Keys.Count > 0) { for (var i = 0; i < descriptor.Keys.Count; ++i) { var keyDesc = descriptor.Keys[i]; var keyVal = message.Keys[i]; builder.AppendFormat(" {0}: ", keyDesc.Name); switch ((GameEventType)keyVal.Type) { case GameEventType.String: builder.AppendFormat("\"{0}\"", keyVal.ValString); break; case GameEventType.Float: builder.Append(keyVal.ValFloat); break; case GameEventType.Long: builder.Append(keyVal.ValLong); break; case GameEventType.Short: builder.Append(keyVal.ValShort); break; case GameEventType.Byte: builder.Append(keyVal.ValByte); break; case GameEventType.Bool: builder.Append(keyVal.ValBool); break; case GameEventType.Uint64: builder.Append(keyVal.ValUint64); break; case GameEventType.Wstring: builder.AppendFormat("\"{0}\"", Encoding.Unicode.GetString(keyVal.ValWstring)); break; default: builder.Append("?"); break; } builder.AppendLine(); } } Debug.Log(builder); }
private static CSVCMsgGameEvent.KeyT GetGameEventValue(CSVCMsgGameEvent message, int index) { return(message.Keys[index]); }