public void ProcessActiveObjectMessage(uint type, byte[] data) { switch (type) { case (uint)ActiveObjectMessage.GENERIC_CMD_SET_PROPERTIES: { proto_server.s2c_object_properties pack = ProtoBuf.Serializer.Deserialize <proto_server.s2c_object_properties>(new MemoryStream(data)); if (!_ActiveObjectMap.ContainsKey(pack.aid)) { LogHelper.ERROR("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_SET_PROPERTIES aid={0} not exist!", pack.aid); return; } _ObjectMessageHandler.ProcessProperty(_ActiveObjectMap[pack.aid], pack); //LogHelper.DEBUG("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_SET_PROPERTIES aid={0} size={1}", pack.aid, data.Length); } break; case (uint)ActiveObjectMessage.GENERIC_CMD_UPDATE_MOVEMENT: { proto_server.s2c_object_movemont pack = ProtoBuf.Serializer.Deserialize <proto_server.s2c_object_movemont>(new MemoryStream(data)); if (!_ActiveObjectMap.ContainsKey(pack.aid)) { LogHelper.ERROR("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_UPDATE_MOVEMENT aid={0} not exist!", pack.aid); return; } _ObjectMessageHandler.ProcessMovemont(_ActiveObjectMap[pack.aid], pack); //LogHelper.DEBUG("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_UPDATE_MOVEMENT aid={0} size={1}", pack.aid, data.Length); } break; case (uint)ActiveObjectMessage.GENERIC_CMD_UPDATE_YAW_PITCH: { proto_server.s2c_object_yaw_and_picth pack = ProtoBuf.Serializer.Deserialize <proto_server.s2c_object_yaw_and_picth>(new MemoryStream(data)); if (!_ActiveObjectMap.ContainsKey(pack.aid)) { LogHelper.ERROR("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_UPDATE_YAW_PITCH aid={0} not exist!", pack.aid); return; } _ObjectMessageHandler.ProcessYawPitch(_ActiveObjectMap[pack.aid], pack); //LogHelper.DEBUG("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_UPDATE_YAW_PITCH aid={0} size={1}", pack.aid, data.Length); } break; case (uint)ActiveObjectMessage.GENERIC_CMD_UPDATE_CONTROL: { proto_server.s2c_object_control_bits pack = ProtoBuf.Serializer.Deserialize <proto_server.s2c_object_control_bits>(new MemoryStream(data)); if (!_ActiveObjectMap.ContainsKey(pack.aid)) { LogHelper.ERROR("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_UPDATE_CONTROL aid={0} not exist!", pack.aid); return; } _ObjectMessageHandler.ProcesssControlBits(_ActiveObjectMap[pack.aid], pack); //LogHelper.DEBUG("ActiveObjectManager", "ProcessActiveObjectMessage GENERIC_CMD_UPDATE_CONTROL aid={0} size={1}", pack.aid, data.Length); } break; default: break; } }
public void ProcesssControlBits(ActiveObject obj, proto_server.s2c_object_control_bits control) { Debug.Log("ProcesssControlBits......"); if (obj is Player && (obj as Player)._Component != null) { uint flagJump = control.flags & (1 << 4); Debug.Log(flagJump); if (flagJump > 0) { (obj as Player)._Component.NeedJump(true); } else { (obj as Player)._Component.NeedJump(false); } } }